summaryrefslogtreecommitdiffstats
path: root/drivers/net/Kconfig
diff options
context:
space:
mode:
authorGreg Kurz2015-04-24 14:50:36 +0200
committerMichael S. Tsirkin2015-06-01 15:48:56 +0200
commit8b8e658b16336f0f50aba733f51db636ef121f50 (patch)
tree07e2259234babcd1c2f535ff43e1bede107f74d2 /drivers/net/Kconfig
parentvhost: cross-endian support for legacy devices (diff)
downloadkernel-qcow2-linux-8b8e658b16336f0f50aba733f51db636ef121f50.tar.gz
kernel-qcow2-linux-8b8e658b16336f0f50aba733f51db636ef121f50.tar.xz
kernel-qcow2-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 'drivers/net/Kconfig')
-rw-r--r--drivers/net/Kconfig14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index df51d6025a90..71ac0ece2d75 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -244,6 +244,20 @@ config TUN
If you don't know what to use this for, you don't need it.
+config TUN_VNET_CROSS_LE
+ bool "Support for cross-endian vnet headers on little-endian kernels"
+ default n
+ ---help---
+ This option allows TUN/TAP and MACVTAP device drivers in a
+ little-endian kernel to parse vnet headers that come from a
+ big-endian legacy virtio device.
+
+ Userspace programs can control the feature using the TUNSETVNETBE
+ and TUNGETVNETBE ioctls.
+
+ Unless you have a little-endian system hosting a big-endian virtual
+ machine with a legacy virtio NIC, you should say N.
+
config VETH
tristate "Virtual ethernet pair device"
---help---