aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/xen
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@parallels.com>2013-08-21 14:32:21 +0400
committerDavid S. Miller <davem@davemloft.net>2013-08-21 12:21:45 -0700
commit849c9b6f93cc4cb5eb59301b6380a7a81b43f414 (patch)
treecb938256bfd152792ccf4457eb80a2eb1575a7b6 /include/uapi/xen
parenttun: Report whether the queue is attached or not (diff)
downloadlinux-dev-849c9b6f93cc4cb5eb59301b6380a7a81b43f414.tar.xz
linux-dev-849c9b6f93cc4cb5eb59301b6380a7a81b43f414.zip
tun: Allow to skip filter on attach
There's a small problem with sk-filters on tun devices. Consider an application doing this sequence of steps: fd = open("/dev/net/tun"); ioctl(fd, TUNSETIFF, { .ifr_name = "tun0" }); ioctl(fd, TUNATTACHFILTER, &my_filter); ioctl(fd, TUNSETPERSIST, 1); close(fd); At that point the tun0 will remain in the system and will keep in mind that there should be a socket filter at address '&my_filter'. If after that we do fd = open("/dev/net/tun"); ioctl(fd, TUNSETIFF, { .ifr_name = "tun0" }); we most likely receive the -EFAULT error, since tun_attach() would try to connect the filter back. But (!) if we provide a filter at address &my_filter, then tun0 will be created and the "new" filter would be attached, but application may not know about that. This may create certain problems to anyone using tun-s, but it's critical problem for c/r -- if we meet a persistent tun device with a filter in mind, we will not be able to attach to it to dump its state (flags, owner, address, vnethdr size, etc.). The proposal is to allow to attach to tun device (with TUNSETIFF) w/o attaching the filter to the tun-file's socket. After this attach app may e.g clean the device by dropping the filter, it doesn't want to have one, or (in case of c/r) get information about the device with tun ioctls. Signed-off-by: Pavel Emelyanov <xemul@parallels.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/uapi/xen')
0 files changed, 0 insertions, 0 deletions