aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/uapi/linux/if_tun.h
diff options
context:
space:
mode:
authorGreg Kurz <gkurz@linux.vnet.ibm.com>2015-04-24 14:50:36 +0200
committerMichael S. Tsirkin <mst@redhat.com>2015-06-01 15:48:56 +0200
commit8b8e658b16336f0f50aba733f51db636ef121f50 (patch)
tree07e2259234babcd1c2f535ff43e1bede107f74d2 /include/uapi/linux/if_tun.h
parentvhost: cross-endian support for legacy devices (diff)
downloadwireguard-linux-8b8e658b16336f0f50aba733f51db636ef121f50.tar.xz
wireguard-linux-8b8e658b16336f0f50aba733f51db636ef121f50.zip
macvtap/tun: cross-endian support for little-endian hosts
The VNET_LE flag was introduced to fix accesses to virtio 1.0 headers that are always little-endian. It can also be used to handle the special case of a legacy little-endian device implemented by a big-endian host. Let's add a flag and ioctls for big-endian devices as well. If both flags are set, little-endian wins. Since this is isn't a common usecase, the feature is controlled by a kernel config option (not set by default). Both macvtap and tun are covered by this patch since they share the same API with userland. Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'include/uapi/linux/if_tun.h')
-rw-r--r--include/uapi/linux/if_tun.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h
index 50ae24335444..3cb5e1d85ddd 100644
--- a/include/uapi/linux/if_tun.h
+++ b/include/uapi/linux/if_tun.h
@@ -50,6 +50,12 @@
#define TUNGETFILTER _IOR('T', 219, struct sock_fprog)
#define TUNSETVNETLE _IOW('T', 220, int)
#define TUNGETVNETLE _IOR('T', 221, int)
+/* The TUNSETVNETBE and TUNGETVNETBE ioctls are for cross-endian support on
+ * little-endian hosts. Not all kernel configurations support them, but all
+ * configurations that support SET also support GET.
+ */
+#define TUNSETVNETBE _IOW('T', 222, int)
+#define TUNGETVNETBE _IOR('T', 223, int)
/* TUNSETIFF ifr flags */
#define IFF_TUN 0x0001