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:
Turn on the new ethtool private flag "phv-bit" (disabled by default).
Enabling this flag sets the phv_en port capability.
Change the interface device features by turning on the ethtool device feature "tx-vlan- stag-hw-insert" (disabled by default).
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.