• Jason Wang's avatar
    tuntap: hardware vlan tx support · 6680ec68
    Jason Wang authored
    Inspired by commit f09e2249 (macvtap: restore
    vlan header on user read). This patch adds hardware vlan tx support for
    tuntap. This is done by copying vlan header directly into userspace in
    tun_put_user() instead of doing it through __vlan_put_tag() in
    dev_hard_start_xmit(). This eliminates one unnecessary memmove() in
    vlan_insert_tag() for 802.1ad and 802.1q traffic.
    
    pktgen test shows about 20% improvement for 802.1q traffic:
    
    Before:
      662149pps 317Mb/sec (317831520bps) errors: 0
    After:
      801033pps 384Mb/sec (384495840bps) errors: 0
    
    Cc: Basil Gor <basil.gor@gmail.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6680ec68
tun.c 55.5 KB