As i40e hardware can be reconfigured to support QinQ stripping and insertion, this patch set is to enable that together with using the reserved 16 bits in 'struct rte_mbuf' for the second vlan tag. Corresponding command is added in testpmd for testing. Note that no need to rework vPMD, as nothings used in it changed.
v2 changes: * Added more commit logs of which commit it fix for. * Fixed a typo. * Kept the original RX/TX offload flags as they were, added new flags after with new bit masks, for ABI compatibility. * Supported double vlan stripping/insertion in examples/ipv4_multicast. v3 changes: * update documentation (Testpmd Application User Guide). Helin Zhang (7): ixgbe: remove a discarded source line mbuf: use the reserved 16 bits for double vlan i40e: support double vlan stripping and insertion i40evf: add supported offload capability flags app/testpmd: add test cases for qinq stripping and insertion examples/ipv4_multicast: support double vlan stripping and insertion doc: update testpmd command app/test-pmd/cmdline.c | 78 ++++++++++++++++++++++++--- app/test-pmd/config.c | 21 +++++++- app/test-pmd/flowgen.c | 4 +- app/test-pmd/macfwd.c | 3 ++ app/test-pmd/macswap.c | 3 ++ app/test-pmd/rxonly.c | 3 ++ app/test-pmd/testpmd.h | 6 ++- app/test-pmd/txonly.c | 8 ++- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 14 ++++- drivers/net/i40e/i40e_ethdev.c | 52 ++++++++++++++++++ drivers/net/i40e/i40e_ethdev_vf.c | 13 +++++ drivers/net/i40e/i40e_rxtx.c | 81 ++++++++++++++++++----------- drivers/net/ixgbe/ixgbe_rxtx.c | 1 - examples/ipv4_multicast/main.c | 1 + lib/librte_ether/rte_ethdev.h | 2 + lib/librte_mbuf/rte_mbuf.h | 10 +++- 16 files changed, 255 insertions(+), 45 deletions(-) -- 1.9.3