Simon Arlott wrote: > On 15/07/07 16:07, Patrick McHardy wrote: > >>>>Changing an existing route: >>>># ip -6 r show 2002::/16 >>>>2002::/16 dev sit0 metric 1024 expires 4482618sec mtu 1480 advmss 7140 >>>>hoplimit 4294967295 >>>># ip -6 r change 2002::/16 dev sit0 mtu 1280 >>>>RTNETLINK answers: File exists > > ^ This is clearly a bug, since I'm trying to change an existing route > and it gives an error as if it tried to add it.
Agreed. >>>>Adding a route using "change": >>>># ip -6 r change 2002::/17 dev sit0 mtu 1280 >>>># ip -6 r show 2002::/17 >>>>2002::/17 dev sit0 metric 1024 expires 21334368sec mtu 1280 advmss 1220 >>>>hoplimit 4294967295 > > ^ This shouldn't be possible! That one will probably be impossible to fix since IPv6 has never checked for NLM_F_EXCL, doing to now might break things. >>There is a difference between "add" and "change". "add" will only add a >>new address if there isn't already one with the same identity, "change" >>will allow to change attributes of an existing address, like flags, >>lifetime, ..., or behave similar to "add" in case the address doesn't >>already exist. >> >>What kind of behaviour are you expecting? > > > That "change" would actually change not simply add. It won't let me > change anything and in fact can only add instead. The code looks like it would support it properly. Please add a few printks to inet6_rtm_newaddr to find out what goes wrong. > Compare it to ipv4 where "change" never adds - "replace" is "change, or > add". (Also, "replace" doesn't work for v6 either). IPv4 doesn't check any netlink flags, so I don't think that is correct. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html