Message ID | 20201208092253.1996011-1-idosch@idosch.org |
---|---|
Headers | show |
Series | mlxsw: Add support for Q-in-VNI | expand |
From: Ido Schimmel <idosch@idosch.org> Date: Tue, 8 Dec 2020 11:22:40 +0200 > From: Ido Schimmel <idosch@nvidia.com> > > This patch set adds support for Q-in-VNI over Spectrum-{2,3} ASICs. > Q-in-VNI is like regular VxLAN encapsulation with the sole difference > that overlay packets can contain a VLAN tag. In Linux, this is achieved > by adding the VxLAN device to a 802.1ad bridge instead of a 802.1q > bridge. > > From mlxsw perspective, Q-in-VNI support entails two main changes: > > 1. An outer VLAN tag should always be pushed to the overlay packet > during decapsulation > > 2. The EtherType used during decapsulation should be 802.1ad (0x88a8) > instead of the default 802.1q (0x8100) > > Patch set overview: > > Patches #1-#3 add required device registers and fields > > Patch #4 performs small refactoring to allow code re-use > > Patches #5-#7 make the EtherType used during decapsulation a property of > the tunnel port (i.e., VxLAN). This leads to the driver vetoing > configurations in which VxLAN devices are member in both 802.1ad and > 802.1q/802.1d bridges. Will be handled in the future by determining the > overlay EtherType on the egress port instead > > Patch #8 adds support for Q-in-VNI for Spectrum-2 and newer ASICs > > Patches #9-#10 veto Q-in-VNI for Spectrum-1 ASICs due to some hardware > limitations. Can be worked around, but decided not to support it for now > > Patch #11 adjusts mlxsw to stop vetoing addition of VXLAN devices to > 802.1ad bridges > > Patch #12 adds a generic forwarding test that can be used with both veth > pairs and physical ports with a loopback > > Patch #13 adds a test to make sure mlxsw vetoes unsupported Q-in-VNI > configurations Series applied, thank you.
From: Ido Schimmel <idosch@nvidia.com> This patch set adds support for Q-in-VNI over Spectrum-{2,3} ASICs. Q-in-VNI is like regular VxLAN encapsulation with the sole difference that overlay packets can contain a VLAN tag. In Linux, this is achieved by adding the VxLAN device to a 802.1ad bridge instead of a 802.1q bridge.