Since 802.1ad was introduced back in 3.10, stacked vlan has been getting common on Linux. It can be used not only inside a data center network, but also in integrating Linux into Metro Ethernet, which often consists of 802.1ad switches.
However, there still remain a couple of challenges around stacked vlan.
Stacked vlan device has no offloading features, or there are not even any in-kernel infrastructure to enable them. Tx/Rx vlan offloads, checksum offload, and TSO/UFO would be beneficial for performance, if any.
MTU (Tx/Rx buffers size)
Most drivers have 4 bytes extra buffers in additon to MTU to handle vlan tags. This is not suitable once we use multiple vlan tags, where the receive buffer size is not sufficient and packets are dropped by oversize error on NIC by default.
This discussion focuses how to handle these issues.