Thread (4 messages) 4 messages, 3 authors, 2004-11-26

Re: IPv6 and netlink

From: "David S. Miller" <davem@davemloft.net>
Date: 2004-11-23 21:42:57

On Tue, 23 Nov 2004 23:22:50 +0200
Hasso Tepper [off-list ref] wrote:
While debugging IPv6 RIB in Quagga routing software I discovered some issues 
with kernel rtnetlink messages.

1) RTM_NEWROUTE message with prefix ff00::/8 (if interface goes up or down) 
is sent with rtm_type set to RTN_UNICAST. It's multicast route, so why not 
RTN_MULTICAST? Is it bug?
What kernel version?  I remember fixing this bug.
We should not be emitting rtnetlink messages for
these any more.
2) If address is added to the interface, route is created by kernel to route 
prefix to the intarface. In IPv4 these routes have rtm_protocol set to 
RTPROT_KERNEL if announced it via rtnetlink, but that's not the case with 
IPv6. It doesn't matter if address is added by the user or it's the link 
local address (fe80::/64 route). Is it intentional or bug?

3) Not really rtnetlink related, but if this address is removed from 
interface, route created by kernel (when address was added) isn't removed 
from table. Is it intentional?
I remember fixing these problems too at some point.

In net/ipv6/route.c:rt6_fill_node(), if the RTF_ADDRCONF flag is
set on the route (which is will be set for link-local address
addition routes done by the addrconf layer) then we will set
RTPROT_KERNEL on it.

For every address deleted on an ipv6 interface we invoke
net/ipv6/addrconf.c:ipv6_ifa_notify() with event set to
RTM_DELADDR.  That causes ip6_del_rt() to be invoked for
that link-local address's route.

In the end, I think you're just using an ancient kernel
which didn't have these bug fixes added.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help