On 2/26/18 3:28 PM, Wei Wang wrote: > On Sun, Feb 25, 2018 at 11:47 AM, David Ahern <dsah...@gmail.com> wrote: >> Introduce fib6_nh structure and move nexthop related data from >> rt6_info and rt6_info.dst to fib6_nh. References to dev, gateway or >> lwtstate from a FIB lookup perspective are converted to use fib6_nh; >> datapath references to dst version are left as is. >> > > My understanding is that after your whole patch series, sibling routes > will still have their own fib6_info. Does it make sense to make this > fib6_nh as an array in fib6_info so that sibling routes will share > fib6_info but will have their own fib6_nh as a future improvement? It > matches ipv4 behavior. And I think it will make the sibling route > handling code easier?
I was not planning to. IPv6 allowing individual nexthops to be added and deleted is very convenient. I do agree the existing sibling route linkage makes the code much more complicated than it needs to be. After this set, I plan to send patches for nexthops as separate objects - which will have an impact on how multipath routes are done. With nexthop objects there will be 1 prefix route pointing to a nexthop object that is multipath (meaning it points in turn to a series of nexthop objects). This provides the simplification (no sibling linkage) without losing the individual nexhtop add / delete option.