Bug 68511
Summary: | IPv6: default route for link local address is not added while assigning a address | ||
---|---|---|---|
Product: | Networking | Reporter: | Sohny Thomas (sohnythomas) |
Component: | IPV6 | Assignee: | Hideaki YOSHIFUJI (yoshfuji) |
Status: | NEW --- | ||
Severity: | normal | CC: | hannes, szg00000 |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.10.11 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Sohny Thomas
2014-01-10 11:37:32 UTC
I have found the issue to be caused by this checkin http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/net/ipv6?id=62b54dd91567686a1cb118f76a72d5f4764a86dd According to this change : He removes adding a link local route if any other address is added , applicable across all interface though he mentioned only lo interface I have found the following change fixes this issue diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index f62c72b..a8a4df9 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1763,6 +1763,16 @@ static int addrconf_ifid_infiniband(u8 *eui, struct net_device *dev) return 0; } +static void addrconf_add_lroute(struct net_device *dev) +{ + struct in6_addr addr; + + ipv6_addr_set(&addr, htonl(0xFE800000), 0, 0, 0); + addrconf_prefix_route(&addr, 64, dev, 0, 0); +} + + + static int __ipv6_isatap_ifid(u8 *eui, __be32 addr) { if (addr == 0) @@ -2010,8 +2020,10 @@ static struct inet6_dev *addrconf_add_dev(struct net_device *dev) return ERR_PTR(-EACCES); /* Add default multicast route */ - if (!(dev->flags & IFF_LOOPBACK)) + if (!(dev->flags & IFF_LOOPBACK)){ addrconf_add_mroute(dev); + addrconf_add_lroute(dev); + } return idev; } I have sent a patch accordingly on the lkml list Hi! Could you raise this issue on netdev@vger.kernel.org along with your patch and Cc the author of the patch? IMHO it looks good. Thanks! Hi , Thanks I had sent CC to author of the earlier code and he has CCed to netdev. I have just replied to his queries. Thanks |