On 1/29/17, 10:02 AM, David Ahern wrote:
> On 1/28/17 6:00 PM, Roopa Prabhu wrote:
>>> 4. Route Appends
>>>    - IPv6 allows nexthops to be appended to an existing route. In this
>>>      case one notification is sent per nexthop added
>> thanks for listing all of these...I think you mentioned this case to me..
>> but I don't remember now why this notification is
>> sent per nexthop added. This is an update to an existing multipath route.
>> so seems like the notification should be a RTM_NEWROUTE with the full 
>> RTA_MULTIPATH route
>> (similar to route add)
> It could be; it's a question of what should userspace get -- the full route 
> or the change? Append to me suggests the latter - userspace is told what 
> changed. It is simpler kernel code wise to send the full new route. The 
> append changes were done after our conversation. ;-)
ok, yeah. you listing all the cases here made it more simpler to understand in 
the context of other notifications :). I would prefer all
RTM_NEWLINK notifications (ie new add or update to an existing 
route..replace/append), contain the full route via RTA_MULTIPATH.

>
>> Same holds for replace, I know the code might be tricky here...but the route 
>> replace
>> is also an update to an existing multipath route and hence should be a 
>> RTM_NEWROUTE
>> with the full multipath route (RTA_MULTIPATH) that changed (from userspace 
>> semantics POV)
> It is. The only change on a replace is the encoding of all routes in 
> RTA_MULTIPATH which is the point of this patch set. On successful replace, 
> only 1 notification is sent with the full route.
ok, good.
>
>> I don't have a better solution, but with the above still being different, 
>> wondering
>> if its worth the risk changing the api for just a few notifications.
> Data centers are moving to L3, and multipath is a big part of that. Anyone 
> who looks at ip -6 route enough knows it gets painful mentally pulling the 
> individual routes into a single one. In addition, using RTA_MULTIPATH is more 
> efficient at scale.
>
> Furthermore, I have a follow on patch set that returns the route matched on 
> an ip route get lookup. Returning the full multipath route is an important 
> part to understanding the full context of the route to an address.

ok, sure.  If we are moving to RTA_MULTIPATH, I just want to make sure all the 
notifications consistently move to multipath.

so, to summarize and to get on the same page as you,
- all RTM_NEWLINK notifications will contain RTA_MULTIPATH when the route in 
the kernel is a multipath route:
            - since ipv6 allows add/append of a single nexthop, the 
notification for the first nexthop may go out without a RTA_MULTIPATH
- RTM_DELETE will also contain RTA_MULTIPATH when the user tries to delete the 
full route with RTA_MULTIPATH
            - since ipv6 allows deleting of a single nexthop, RTM_DELETE may 
contain a single nexthop delete ie without RTA_MULTIPATH (this is just to 
continue
                supporting the single nexthop delete support that ipv6 has)

Thanks.

Reply via email to