[quagga-dev 687] Re: kernel routing socket handling problems
gdt at ir.bbn.com
Sat Jan 10 15:21:01 GMT 2004
Thanks for the pointers.
This is a bug about semantic processing of up/down events, rather than
a problem in handling the routing socket. The kernel_socket.c code
just calls an if_down routine. (Not saying it shouldn't be fixed,
just that it is a separate issue.) up/down is much milder than
Is this still a problem with quagga?
This is about what to do when an interface goes away. The patch looks
sane at first glance (I didn't study it carefully), but I think here
we should also set the ifindex to -1 so that when the named interface
is resurrected it will match this structure even if the ifindex is
different. I suppose the invariant of 'interface structure for
interface which does not exist in the kernel must have ifindex == -1,
and structures for which the interface does exist in the kernel must
have the same ifindex as the kernel' should be documented in the code.
That's about netlink, not 'the routing socket', but certainly if Linux
emits new netlink messages that aren't of interest then zebra should
gracefully ignore them. That said, there is merit to logging unknown
messages, since then we learn something when they pop up and can then
choose whether we wish to ignore them or not.
A patch to ignore the wireless status netlink messages should be very
easy to generate (complete with a comment about why we don't care
about these messages, following HACKING from CVS :-).
More information about the Quagga-dev