public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: David Miller <davem@davemloft.net>,
	cornelia.huck@de.ibm.com, rusty@au1.ibm.com, nab@linux-iscsi.org,
	pbonzini@redhat.com, thuth@linux.vnet.ibm.com,
	dahi@linux.vnet.ibm.com, netdev@vger.kernel.org,
	linux-api@vger.kernel.org
Subject: [PATCH v7 39/46] tun: add VNET_LE flag
Date: Sun, 30 Nov 2014 17:12:32 +0200	[thread overview]
Message-ID: <1417359787-10138-40-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1417359787-10138-1-git-send-email-mst@redhat.com>

virtio 1.0 modified virtio net header format,
making all fields little endian.

Users can tweak header format before submitting it to tun,
but this means more data copies where none were necessary.
And if the iovec is in RO memory, this means we might
need to split iovec also means we might in theory overflow
iovec max size.

This patch adds a simpler way for applications to handle this,
using new "little endian" flag in tun.
As a result, tun simply byte-swaps header fields as appropriate.
This is a NOP on LE architectures.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/uapi/linux/if_tun.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/uapi/linux/if_tun.h b/include/uapi/linux/if_tun.h
index 277a260..18b2403 100644
--- a/include/uapi/linux/if_tun.h
+++ b/include/uapi/linux/if_tun.h
@@ -57,6 +57,7 @@
 #define IFF_ONE_QUEUE	0x2000
 #define IFF_VNET_HDR	0x4000
 #define IFF_TUN_EXCL	0x8000
+#define IFF_VNET_LE	0x10000
 #define IFF_MULTI_QUEUE 0x0100
 #define IFF_ATTACH_QUEUE 0x0200
 #define IFF_DETACH_QUEUE 0x0400
-- 
MST


  parent reply	other threads:[~2014-11-30 15:12 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-30 15:09 [PATCH v7 00/46] linux: towards virtio-1 guest support Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 01/46] virtio: add low-level APIs for feature bits Michael S. Tsirkin
2014-12-01  9:08   ` Cornelia Huck
2014-11-30 15:09 ` [PATCH v7 02/46] virtio: use u32, not bitmap for features Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 03/46] mic_virtio: robust feature array size calculation Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 04/46] virtio: add support for 64 bit features Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 05/46] virtio: assert 32 bit features in transports Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 06/46] virtio_ccw: add support for 64 bit features Michael S. Tsirkin
2014-12-01  7:52   ` David Hildenbrand
2014-11-30 15:09 ` [PATCH v7 07/46] virtio: add virtio 1.0 feature bit Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 08/46] virtio: memory access APIs Michael S. Tsirkin
2014-12-01  9:56   ` Cornelia Huck
2014-11-30 15:09 ` [PATCH v7 09/46] virtio_ring: switch to new " Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 10/46] virtio_config: endian conversion for v1.0 Michael S. Tsirkin
2014-12-01  7:57   ` David Hildenbrand
2014-11-30 15:10 ` [PATCH v7 11/46] virtio: allow transports to get avail/used addresses Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 12/46] virtio: set FEATURES_OK Michael S. Tsirkin
2014-12-01 10:11   ` Cornelia Huck
2014-11-30 15:10 ` [PATCH v7 13/46] virtio: simplify feature bit handling Michael S. Tsirkin
2014-12-01  8:06   ` David Hildenbrand
2014-12-01 10:12   ` Cornelia Huck
2014-11-30 15:10 ` [PATCH v7 14/46] virtio: add legacy feature table support Michael S. Tsirkin
2014-12-01 11:23   ` Cornelia Huck
2014-11-30 15:10 ` [PATCH v7 15/46] virtio_net: v1.0 endianness Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 16/46] virtio_blk: v1.0 support Michael S. Tsirkin
2014-12-01  8:16   ` David Hildenbrand
2014-12-01  9:26     ` Michael S. Tsirkin
2014-12-01 11:33       ` Cornelia Huck
2014-12-01 11:46         ` Michael S. Tsirkin
2014-12-01 12:02           ` Cornelia Huck
2014-12-01 12:19             ` Michael S. Tsirkin
2014-12-01 12:34             ` Michael S. Tsirkin
2014-12-01 12:40               ` Cornelia Huck
2014-12-01 12:51                 ` Michael S. Tsirkin
2014-12-01 13:00                   ` Cornelia Huck
2014-12-01 13:47                     ` Michael S. Tsirkin
2014-12-01 14:19                       ` Cornelia Huck
2014-12-01  9:28     ` Michael S. Tsirkin
2014-12-01 10:01       ` David Hildenbrand
2014-12-01 11:28         ` Cornelia Huck
2014-11-30 15:10 ` [PATCH v7 17/46] KVM: s390: Set virtio-ccw transport revision Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 18/46] KVM: s390: virtio-ccw revision 1 SET_VQ Michael S. Tsirkin
2014-12-01  8:20   ` David Hildenbrand
2014-11-30 15:10 ` [PATCH v7 19/46] KVM: s390 allow virtio_ccw status writes to fail Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 20/46] KVM: s390: enable virtio-ccw revision 1 Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 21/46] virtio_blk: make serial attribute static Michael S. Tsirkin
2014-12-01 11:34   ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 22/46] virtio_blk: fix race at module removal Michael S. Tsirkin
2014-12-01 11:36   ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 23/46] virtio_net: pass vi around Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 24/46] virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 25/46] virtio_net: stricter short buffer length checks Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 26/46] virtio_net: bigger header when VERSION_1 is set Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 27/46] virtio_net: enable v1.0 support Michael S. Tsirkin
2014-12-01 11:40   ` Cornelia Huck
2014-12-01 11:47     ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 28/46] vhost: make features 64 bit Michael S. Tsirkin
2014-11-30 15:44   ` Sergei Shtylyov
2014-12-01  4:12     ` Ben Hutchings
2014-12-01  9:19       ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 29/46] vhost: add memory access wrappers Michael S. Tsirkin
2014-12-01 12:13   ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 30/46] vhost/net: force len for TX to host endian Michael S. Tsirkin
2014-12-01 12:20   ` Cornelia Huck
2014-12-01 12:33     ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 31/46] vhost: virtio 1.0 endian-ness support Michael S. Tsirkin
2014-12-01 12:33   ` Cornelia Huck
2014-12-01 12:37     ` Michael S. Tsirkin
2014-12-01 12:42       ` Cornelia Huck
2014-12-01 12:49         ` Michael S. Tsirkin
2014-12-01 15:45     ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 32/46] vhost/net: virtio 1.0 byte swap Michael S. Tsirkin
2014-12-01 12:35   ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 33/46] vhost/net: larger header for virtio 1.0 Michael S. Tsirkin
2014-12-01 12:35   ` Cornelia Huck
2014-11-30 15:12 ` [PATCH v7 34/46] virtio_net: disable mac write " Michael S. Tsirkin
2014-12-01 11:41   ` Cornelia Huck
2014-11-30 15:12 ` [PATCH v7 35/46] vhost/net: enable " Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 36/46] vhost/net: suppress compiler warning Michael S. Tsirkin
2014-12-01 12:37   ` Cornelia Huck
2014-12-01 13:48     ` Michael S. Tsirkin
2014-12-01 14:21       ` Cornelia Huck
2014-12-01 15:12         ` Michael S. Tsirkin
2014-12-01 15:18           ` Cornelia Huck
2014-11-30 15:12 ` [PATCH v7 37/46] tun: move internal flag defines out of uapi Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 38/46] tun: drop most type defines Michael S. Tsirkin
2014-11-30 15:12 ` Michael S. Tsirkin [this message]
2014-11-30 15:12 ` [PATCH v7 40/46] tun: TUN_VNET_LE support, fix sparse warnings for virtio headers Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 41/46] macvtap: TUN_VNET_LE support Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 42/46] virtio_scsi: v1.0 support Michael S. Tsirkin
2014-12-01 12:50   ` Cornelia Huck
2014-12-01 12:53     ` Michael S. Tsirkin
2014-12-01 12:54       ` Michael S. Tsirkin
2014-12-01 12:55       ` Cornelia Huck
2014-11-30 15:12 ` [PATCH v7 43/46] virtio_scsi: move to uapi Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 44/46] virtio_scsi: export to userspace Michael S. Tsirkin
2014-11-30 21:43   ` Prabhakar Lad
2014-11-30 15:13 ` [PATCH v7 45/46] vhost/scsi: partial virtio 1.0 support Michael S. Tsirkin
2014-11-30 15:13 ` [PATCH v7 46/46] af_packet: virtio 1.0 stubs Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1417359787-10138-40-git-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=dahi@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    --cc=netdev@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rusty@au1.ibm.com \
    --cc=thuth@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox