Bug 7817

Summary: commit edfe21a29b1dca9ce5a938317868066d2e21c385 breaks IPv6 address autoconfiguration
Product: Networking Reporter: Michael Gernoth (gernoth)
Component: IPV6Assignee: Hideaki YOSHIFUJI (yoshfuji)
Status: CLOSED CODE_FIX    
Severity: normal    
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.19.2 Subsystem:
Regression: --- Bisected commit-id:
Attachments: .config of the used kernel
Fix joining all-node multicast group.

Description Michael Gernoth 2007-01-13 05:37:31 UTC
Most recent kernel where this bug did *NOT* occur: 2.6.19.1
Distribution: Debian Testing
Hardware Environment: About 100 different x86 boxes
Software Environment: no special software involved, just the kernel. No modules are loaded on the 
affected machines (everything needed is built into the kernel)

Problem Description:
After booting kernel 2.6.19.2 on our machines they no longer do IPv6 address autoconfiguration, 
although router advertisments can be seen on that interface:
14:19:14.254410 fe80::212:1eff:fe08:e040 > ip6-allnodes: icmp6: router advertisement(chlim=64, 
pref=medium, router_ltime=1800, reachable_time=0, retrans_time=0)(src lladdr: 00:12:1e:08:e0:40)
[ndp opt] (len 56, hlim 255)

ip -6 addr output is:
1: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qlen 1000
    inet6 fe80::209:3dff:fe10:ccda/64 scope link
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qlen 1000
    inet6 fe80::209:3dff:fe10:ccdb/64 scope link
       valid_lft forever preferred_lft forever
3: lo: <LOOPBACK,UP,10000> mtu 16436
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
(eth0 sees the advertisments)

Manually setting the address and default-route works.
Reverting commit edfe21a29b1dca9ce5a938317868066d2e21c385 fixes this problem.

Steps to reproduce:
1. Upgrade to 2.6.19.2
2. Configure an interface for IPv4
3. The linklocal IPv6 address for the interface appears in ip -6 addr
4. Wait for a router advertisment
5. No Global IPv6 address and no IPv6 default route is set
Comment 1 Michael Gernoth 2007-01-13 05:39:39 UTC
Created attachment 10066 [details]
.config of the used kernel
Comment 2 Andrew Morton 2007-01-13 13:38:14 UTC
> On Sat, 13 Jan 2007 05:44:39 -0800 bugme-daemon@bugzilla.kernel.org wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=7817
> 
>            Summary: commit edfe21a29b1dca9ce5a938317868066d2e21c385 breaks
>                     IPv6 address autoconfiguration
>     Kernel Version: 2.6.19.2
>             Status: NEW
>           Severity: high
>              Owner: yoshfuji@linux-ipv6.org
>          Submitter: gernoth@informatik.uni-erlangen.de
> 
> 
> Most recent kernel where this bug did *NOT* occur: 2.6.19.1
> Distribution: Debian Testing
> Hardware Environment: About 100 different x86 boxes
> Software Environment: no special software involved, just the kernel. No modules are loaded on the 
> affected machines (everything needed is built into the kernel)
> 
> Problem Description:
> After booting kernel 2.6.19.2 on our machines they no longer do IPv6 address autoconfiguration, 
> although router advertisments can be seen on that interface:
> 14:19:14.254410 fe80::212:1eff:fe08:e040 > ip6-allnodes: icmp6: router advertisement(chlim=64, 
> pref=medium, router_ltime=1800, reachable_time=0, retrans_time=0)(src lladdr: 00:12:1e:08:e0:40)
> [ndp opt] (len 56, hlim 255)
> 
> ip -6 addr output is:
> 1: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qlen 1000
>     inet6 fe80::209:3dff:fe10:ccda/64 scope link
>        valid_lft forever preferred_lft forever
> 2: eth1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qlen 1000
>     inet6 fe80::209:3dff:fe10:ccdb/64 scope link
>        valid_lft forever preferred_lft forever
> 3: lo: <LOOPBACK,UP,10000> mtu 16436
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> (eth0 sees the advertisments)
> 
> Manually setting the address and default-route works.
> Reverting commit edfe21a29b1dca9ce5a938317868066d2e21c385 fixes this problem.
> 
> Steps to reproduce:
> 1. Upgrade to 2.6.19.2
> 2. Configure an interface for IPv4
> 3. The linklocal IPv6 address for the interface appears in ip -6 addr
> 4. Wait for a router advertisment
> 5. No Global IPv6 address and no IPv6 default route is set
> 
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.

Comment 3 Hideaki YOSHIFUJI 2007-01-14 06:24:25 UTC
Created attachment 10070 [details]
Fix joining all-node multicast group.

Because we need to have dev->ip6_ptr initialized before we call
ipv6_dev_mc_inc(), defer joining all-node multicast group after initialization
of dev->ip6_ptr.
Comment 4 Michael Gernoth 2007-01-14 10:19:03 UTC
This patch fixes the problem for me.
Thanks.
Comment 5 M G Berberich 2007-01-15 09:27:55 UTC
Works for me too. Thanks