[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070906210550.GA13542@wq.cz>
Date: Thu, 6 Sep 2007 23:05:50 +0200
From: Milan Kocian <milon@...cz>
To: Thomas Graf <tgraf@...g.ch>
Cc: David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH 1/1] ipv6: corrects sended rtnetlink message
On Thu, Sep 06, 2007 at 12:47:11PM +0200, Thomas Graf wrote:
> * Milan Kocian <milon@...cz> 2007-08-29 23:51
> > Because RTM_NEWLINK is used to notify about device status change
> > (as I see in net/core/rtnetlink.c) and RTM_DELLINK to inform about
> > NETDEV_UNREGISTER. Why should it be else in ipv6 subsystem ? And
> > userspace programs (quagga) suppose it. Now userspace get two rtnetlink's
> > 'LINK' messages on 'ip l s down' event. First is RTM_NEWLINK from
> > net/core/rtnetlink.c and second is RTM_DELLINK from ipv6.
>
> The logic behind is quite simple, we notify via RTM_NEWLINK whenever
> a device changes any of its attributes.
>
I agree but ipv6 sends on device change (NETDEV_DOWN) RTM_DELLINK message.
BTW when ipv6 send LINK message on NETDEV_UNREGISTER event, why doesn't
send message on NETDEV_REGISTER event? No symmetry ?
> > quagga story:
> > On NEWLINK (flag IFF_UP is down) message quagga flushes all routes from RIB
> > but leaves ip adresses. On DELLINK message q. flushes routes and addresses.
> > On 'ip l s up' event ipv6 sends addresses and routes again but ipv4 not
> > (it sends only routes). Thus q. stays without knowledge about ipv4's addresses
> > after 'ip l s down/up' commands.
> >
> > git change:
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=979ad663125af4be120697263038bb06ddbb83b4
>
> It is arguable whether this change is correct, the purpose is clearly
> to notify that IPv6 is no longer available on this interface without
> implying anything beyond that.
ok. However, if I understand, LINK messages handle device changes not
protocol changes. Or not ?
>
> Fortunately, all unregister events have the ifi_change field set to ~0U
> whereas the "IPv6 disabled" notification sets the ifi_chagne field to
> 0 making it trivial to differ between the two cases. So quagga can
> simply ignore (RTM_DELLINK && !ifi_change) notifications.
Now I ignore (RTM_DELLINK && ifi_family==AF_INET6) :-). But it's only workaround
till next change.
>
> > IMHO second possibility is to remove rtnetlink notification about
> > NETDEV_DOWN/_UNREGISTER from ipv6 subsystem because it is duplicate message.
>
> Please make sure nobody is relying on this notification, IPv6 includes
> more information in link messages, someone may be relying on this. If
> not, feel free to remove the notification.
>
Hard to find it. I can try to look at other routing sw (probably most using it)
about handling with RTM_DELLINK.
Howerer when was made change from RTM_NEWLINK to RTM_DELLINK without protests,
we can try remove message :-)
Regards,
--
Milan Kocian
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists