[Cerowrt-devel] atomic route updates?

Dave Taht dave.taht at gmail.com
Wed Apr 24 11:46:44 EDT 2013


There is a possibly related bug being discussed on the babel-users list
with an easy fix.

Not sure what kernel versions it happens on.
On Apr 24, 2013 11:39 AM, "Robert Bradley" <robert.bradley1 at gmail.com>
wrote:

> On 20/04/13 10:56, Dave Taht wrote:
>
>> iproute2's ip/iproute2.c code has a function called iproute_modify,
>> which to a blurring eye appears to be capable of doing an atomic route
>> update via it's netlink interface.
>>
>> "        if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0)
>>                  return iproute_modify(RTM_NEWROUTE, NLM_F_REPLACE,
>>                                        argc-1, argv+1);
>>          if (matches(*argv, "replace") == 0)
>>                  return iproute_modify(RTM_NEWROUTE,
>> NLM_F_CREATE|NLM_F_REPLACE,
>>                                        argc-1, argv+1);"
>>
>> The babel  native daemon and the quagga-re code, however, does a
>> delete/add, which results in packets dropping on the floor when a
>> route changes.
>>
>>
> I think quagga-RE would take a lot of work, as you'd need to teach it
> about modifying routes.  The standalone babeld looks promising though, and
> I have a basic patch up on GitHub (git://github.com/rb12345/**babeld.git<http://github.com/rb12345/babeld.git>).
>  One issue is that it seems difficult to actually flush the IPv6 route
> cache, at least on Ubuntu, as writes to /proc/sys/net/ipv6/route/flush
> appear to be ignored.  The iproute2 approach is to query all cached routes
> and misuse its internal print_route function to remove each route when
> flushing the IPv6 cache.
>
> At the moment, the code compiles fine, and I am in the process of testing
> it here.
>
> --
> Robert Bradley
>
> ______________________________**_________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.**bufferbloat.net<Cerowrt-devel at lists.bufferbloat.net>
> https://lists.bufferbloat.net/**listinfo/cerowrt-devel<https://lists.bufferbloat.net/listinfo/cerowrt-devel>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20130424/5aef31e4/attachment-0002.html>


More information about the Cerowrt-devel mailing list