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" 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). > 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@lists.**bufferbloat.net > https://lists.bufferbloat.net/**listinfo/cerowrt-devel >