Subject: Re: [Bugme-new] [Bug 14839] New: Trying to use a TUN device fir IPv6 traffic, cannot set destination address.

From: Andrew Morton <[email-masked]>
Date: Tue, 22 Dec 2009 15:12:38 -0800

(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Sat, 19 Dec 2009 10:35:18 GMT
[email-masked] wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=14839
> 
>            Summary: Trying to use a TUN device fir IPv6 traffic, cannot
>                     set destination address.
>            Product: Networking
>            Version: 2.5
>     Kernel Version: 2.6.31.6
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: IPV6
>         AssignedTo: [email-masked]
>         ReportedBy: [email-masked]
>         Regression: No
> 
> 
> I am modifying a program that uses a TUN device for IPv4 traffic so that the
> same TUN device can also be used for IPv6 traffic. Using ioctl SIOCSIFADDR will
> add an IPv6 address but ioctl SIOCSDSTADDR to add an IPv6 destination address
> always results in error ENODEV (19 No such device).
> 
> I searched around the source and found addrconf_set_dstaddr in addrconf.c which
> seems to be the routine called to set the destination address. However, the
> routine only sets a destination address for a SIT device, otherwise if returns
> ENODEV.
> 
> Below is the ifconfig output for the TUN device:-
> $ ifconfig tun3
> tun3      Link encap:UNSPEC  HWaddr
> 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
>           inet addr:192.168.3.235  P-t-P:192.168.250.235  Mask:255.255.255.255
>           inet6 addr: fd00::3:235/128 Scope:Global
>           UP POINTOPOINT RUNNING  MTU:1344  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:500 
>           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
> 
> BTW, ifconfig cannot add an IPv6 destination address either, the code has a
> comment saying that the support needs to be written.
> 
> Can a TUN device be used for IPv6 traffic? I cannot find a definitive answer,
> only 'should'. Or is that nobody has ever wanted to use a TUN device for IPv6
> traffic, and so the kernel support has not been written? Or am I doing
> something wrong?
>