Subject: Re: unregister_netdevice: waiting for tun6to4 to become free.

From: Andre Tomt <[email-masked]>
Date: Thu, 23 Sep 2004 10:07:25 +0200

Andre Tomt wrote:
> (CC'ed to netdev)
> 
> <snip>
> 
> I can taste the bug now :-)
> 
> Me and Thomas Graf have been discussing this a bit off-list; so for 
> those on netdev, this is my current setup:
> 
> server A sets up a sit tunnel to server B. server B has a sit tunnel to 
> Provider. All communication between A, B and Provider is going over 
> ethernet on the physical layer.
> 
> server B is the one getting stuck in "waiting for <device> to become 
> free.." when ifdown'ing (ip tunnel del) the interface to Provider.
> 
> 
> If I boot with net.ipv6.conf.default.forward = 1 in sysctl.conf - but 
> then after the boot do echo 1 > /proc/sys/net/ipv6/conf/all/forward (to 
> actually get it running)
> 
> we'll crash and burn when taking down the interface.
> 
> Only setting /proc/sys/net/ipv6/conf/all/forward = 1, but never touch 
> default, it goes down cleanly.
> 
> I have the ipv6/conf/default/forwarding set in sysctl.conf on all the 
> routers, and it seems zebra sets the ipv6/conf/all/forwarding later on.
> 

Possibly important note:

if I set up both conf.all and conf.default (order does not matter) 
before the tunnel devices are created, everything works as expected.

eg. in sysctl.conf:
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1

if default is set first, then tunnels created, followed by setting 
"all"; everything breaks down on ifdown.

pretty neat :)