<p dir="ltr">There is a possibly related bug being discussed on the babel-users list  with an easy fix.</p>
<p dir="ltr">Not sure what kernel versions it happens on.</p>
<div class="gmail_quote">On Apr 24, 2013 11:39 AM, "Robert Bradley" <<a href="mailto:robert.bradley1@gmail.com">robert.bradley1@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 20/04/13 10:56, Dave Taht wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
iproute2's ip/iproute2.c code has a function called iproute_modify,<br>
which to a blurring eye appears to be capable of doing an atomic route<br>
update via it's netlink interface.<br>
<br>
"        if (matches(*argv, "change") == 0 || strcmp(*argv, "chg") == 0)<br>
                 return iproute_modify(RTM_NEWROUTE, NLM_F_REPLACE,<br>
                                       argc-1, argv+1);<br>
         if (matches(*argv, "replace") == 0)<br>
                 return iproute_modify(RTM_NEWROUTE, NLM_F_CREATE|NLM_F_REPLACE,<br>
                                       argc-1, argv+1);"<br>
<br>
The babel  native daemon and the quagga-re code, however, does a<br>
delete/add, which results in packets dropping on the floor when a<br>
route changes.<br>
<br>
</blockquote>
<br>
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://<a href="http://github.com/rb12345/babeld.git" target="_blank">github.com/rb12345/<u></u>babeld.git</a>).  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.<br>

<br>
At the moment, the code compiles fine, and I am in the process of testing it here.<br>
<br>
-- <br>
Robert Bradley<br>
<br>
______________________________<u></u>_________________<br>
Cerowrt-devel mailing list<br>
<a href="mailto:Cerowrt-devel@lists.bufferbloat.net" target="_blank">Cerowrt-devel@lists.<u></u>bufferbloat.net</a><br>
<a href="https://lists.bufferbloat.net/listinfo/cerowrt-devel" target="_blank">https://lists.bufferbloat.net/<u></u>listinfo/cerowrt-devel</a><br>
</blockquote></div>