• Michael S. Tsirkin's avatar
    tun: add ioctl to modify vnet header size · d9d52b51
    Michael S. Tsirkin authored
    virtio added mergeable buffers mode where 2 bytes of extra info is put
    after vnet header but before actual data (tun does not need this data).
    In hindsight, it would have been better to add the new info *before* the
    packet: as it is, users need a lot of tricky code to skip the extra 2
    bytes in the middle of the iovec, and in fact applications seem to get
    it wrong, and only work with specific iovec layout.  The fact 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,
    and future proofs the interface against further extensions,
    by making the size of the virtio net header configurable
    from userspace. As a result, tun driver will simply
    skip the extra 2 bytes on both input and output.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
    d9d52b51
tun.c 37.1 KB