Re: ip tuntap del
On Fri, Sep 6, 2013 at 7:14 AM, Zenaan Harkness <zen@freedbms.net> wrote:
> Anyone know why ip tuntap del requires the "mode"?
>
> # ifconfig tapz
> tapz: error fetching interface information: Device not found
> # ip tuntap add mode tap tapz
> # ifconfig tapz
> tapz Link encap:Ethernet HWaddr 06:b8:f7:41:bf:08
> BROADCAST MULTICAST MTU:1500 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)
>
> # ip tuntap del tapz
> ioctl(TUNSETIFF): Invalid argument
> # ifconfig tapz
> tapz Link encap:Ethernet HWaddr 06:b8:f7:41:bf:08
> BROADCAST MULTICAST MTU:1500 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)
>
> # ip tuntap del mode tap tapz
> # ifconfig tapz
> tapz: error fetching interface information: Device not found
>
> We see that when deleting a tap device, we still have to include the
> mode. From a user perspective that ought to be superfluous. Perhaps it
> is some kernel driver optimization thing, which has not bee papered
> over by ip command. A minor point in the scheme of things I guess.
>
> So could the Usage output be made a little more accurate (possibly
> not, without duplicating it for each of add and del subcommands):
>
> # ip tuntap help
> Usage: ip tuntap { add | del } [ dev PHYS_DEV ]
> [ mode { tun | tap } ] [ user USER ] [ group GROUP ]
> [ one_queue ] [ pi ] [ vnet_hdr ]
>
> Where: USER := { STRING | NUMBER }
> GROUP := { STRING | NUMBER }
I came across this a while ago and meant to file a bug report because
the "usage" output doesn't correspond to the actual usage - and
didn't... :(
> Also, how can I find out what one_queue, pi and vnet_hdr options could be?
>From some very terse notes that I'd made (I mustn't have found much
via Google...):
one_queue: by default tuntap uses multiple queues (descriptors) to
parallelize the sending or receiving of packets
pi: provide packet information (default!)
vnet_hdr: allow sending and receiving large packets because tuntap is
in the kernel
Reply to: