> But with such patch the kernel becomes a nice healthchecking daemon :))
Moving gated to kernel is not a nice idea.
> In this patch the dead gateways are flushed exactly at the same
> time when all other (non-static) dead routes are flushed, i.e. when the
> device is removed (fib_num_down_nh_devs, sorry for the bad func name, it is
> incorrect, may be the comments too). This ugly function tries to
> distinguish whether a prefsrc was deleted or the device was marked down.
> We try to preserve the dead routes only when the device is marked down.
> And not only for multipath routes.
fib_sync_down() makes exactly the same thing. Just remove check
for multipath, uncomment fib_sync_up() and live in peace.
> The real problem is that the multipath routes can conatin dead
> paths. This is not mine, I see it as a 2.2 (may be 2.4 too)
I see, this is bug and this bug is fatal for 2.4. Sigh... need to fix.
> about nh_ifname or similar solution. Then the new device can replace the
> old one, by name.
"name" is not something distinguishing devices. Index is.
> You'll correct me if I'm wrong :)
You are right, unfortunately. nh_dev must be cleared on device unregister,
otherwise kernel will lockup at module unload.