aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/if_tun.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2008-07-03 03:46:16 -0700
committerDavid S. Miller <davem@davemloft.net>2008-07-03 03:46:16 -0700
commit5228ddc98fa49b3cedab4024e269d62410a0d806 (patch)
tree0d3cceeac55ec09b0fa593666bc03373954b3d9a /include/linux/if_tun.h
parenttun: Interface to query tun/tap features. (diff)
downloadlinux-dev-5228ddc98fa49b3cedab4024e269d62410a0d806.tar.xz
linux-dev-5228ddc98fa49b3cedab4024e269d62410a0d806.zip
tun: TUNSETFEATURES to set gso features.
ethtool is useful for setting (some) device fields, but it's root-only. Finer feature control is available through a tun-specific ioctl. (Includes Mark McLoughlin <markmc@redhat.com>'s fix to hold rtnl sem). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Max Krasnyansky <maxk@qualcomm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/if_tun.h')
-rw-r--r--include/linux/if_tun.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/if_tun.h b/include/linux/if_tun.h
index 94f76a112303..3f0a0995d449 100644
--- a/include/linux/if_tun.h
+++ b/include/linux/if_tun.h
@@ -41,6 +41,7 @@
#define TUNSETLINK _IOW('T', 205, int)
#define TUNSETGROUP _IOW('T', 206, int)
#define TUNGETFEATURES _IOR('T', 207, unsigned int)
+#define TUNSETOFFLOAD _IOW('T', 208, unsigned int)
/* TUNSETIFF ifr flags */
#define IFF_TUN 0x0001
@@ -48,6 +49,12 @@
#define IFF_NO_PI 0x1000
#define IFF_ONE_QUEUE 0x2000
+/* Features for GSO (TUNSETOFFLOAD). */
+#define TUN_F_CSUM 0x01 /* You can hand me unchecksummed packets. */
+#define TUN_F_TSO4 0x02 /* I can handle TSO for IPv4 packets */
+#define TUN_F_TSO6 0x04 /* I can handle TSO for IPv6 packets */
+#define TUN_F_TSO_ECN 0x08 /* I can handle TSO with ECN bits. */
+
struct tun_pi {
unsigned short flags;
__be16 proto;