Hardware Accelerated 802.1ad VLAN (Q-in-Q Tunneling)

Linux Kernel Upstream Release Notes v5.17

Q-in-Q tunneling allows the user to create a Layer 2 Ethernet connection between two servers. The user can segregate a different VLAN traffic on a link or bundle different VLANs into a single VLAN. Q-in-Q tunneling adds a service VLAN tag before the user's 802.1Q VLAN tags.
For Q-in-Q support in virtualized environments (SR-IOV), please refer to " Q-in-Q Encapsulation per VF in Linux (VST) " .


To enable device support for accelerated 802.1ad VLAN:

  1. Turn on the new ethtool private flag "phv-bit" (disabled by default).


    $ ethtool --set-priv-flags eth1 phv-bit on

    Enabling this flag sets the phv_en port capability.

  2. Change the interface device features by turning on the ethtool device feature "tx-vlan- stag-hw-insert" (disabled by default).


    $ ethtool -K eth1 tx-vlan-stag-hw-insert on

    Once the private flag and the ethtool device feature are set, the device will be ready for 802.1ad VLAN acceleration.


    The "phv-bit" private flag setting is available for the Physical Function (PF) only.
    The Virtual Function (VF) can use the VLAN acceleration by setting the "tx-vlan-stag-hw-insert" parameter only if the private flag "phv-bit" is enabled by the PF. If the PF enables/disables the "phv-bit" flag after the VF driver is up, the configuration will take place only after the VF driver is restarted.

© Copyright 2023, NVIDIA. Last updated on Nov 27, 2023.