> -----Original Message----- > From: Olivier Matz [mailto:olivier.matz at 6wind.com] > Sent: Wednesday, February 04, 2015 5:25 PM > To: dev at dpdk.org > Cc: Ananyev, Konstantin; Liu, Jijiang; Zhang, Helin; olivier.matz at 6wind.com > Subject: [PATCH v2 00/20] enhance tx checksum offload API > > The goal of this series is to clarify and simplify the mbuf offload API. > > - simplify the definitions of PKT_TX_IP_CKSUM and PKT_TX_IPV4, each > flag has now only one meaning. No impact on the code. > > - add a feature flag for OUTER_IP_CHECKSUM (from Jijiang's patches) > > - remove the PKT_TX_UDP_TUNNEL_PKT flag: it is useless from an API point > of view. It was added because i40e need this info for some reason. We > have 3 solutions: > > - remove the flag and adapt the driver to the API (the choice I made > for this series). > > - remove the flag and stop advertising OUTER_IP_CHECKSUM in i40e > > - keep this flag, penalizing performance of drivers that do not > require the flag. It would also mean that drivers won't support > outer IP checksum for all tunnel types, but only for the tunnel > types having a flag.
This flag is removed in this patch set, the reason is that we have done some tests for validating L4 tunnel type(L4TUNT) and found checksum offload works well with L4TUNT=0 for VXLAN, MAC over GRE, ip over GRE, IP in IP(we only tested IPv4); but FVL designer suggest that we should follow FVL datasheet. Anyway, once we find the 'L4TUNT=0' is not fit for other cases, and we still need the PKT_TX_UDP_TUNNEL_PKT flag. > - a side effect of this API clarification is that there is only one > way for doing one operation. If the hardware has several ways to > do the same operation, a choice has to be made in the driver. > > The series also provide some enhancements and fixes related to this API > rework: > > - new tunnel types to testpmd csum forward engine. > - fixes in i40e to adapt to new api and support more tunnel types. > > [1] http://dpdk.org/ml/archives/dev/2015-January/011127.html > > Changes in v2: > - fix test of rx offload flag in parse_vlan() pointed out by Jijiang > > Jijiang Liu (2): > ethdev: add outer IP offload capability flag > i40e: advertise outer IPv4 checksum capability > > Olivier Matz (18): > mbuf: remove PKT_TX_IPV4_CSUM > mbuf: enhance the API documentation of offload flags > i40e: call i40e_txd_enable_checksum only for offloaded packets > i40e: remove the use of PKT_TX_UDP_TUNNEL_PKT flag > mbuf: remove PKT_TX_UDP_TUNNEL_PKT flag > testpmd: replace tx_checksum command by csum > testpmd: move csum_show in a function > testpmd: add csum parse_tunnel command > testpmd: rename vxlan in outer_ip in csum commands > testpmd: introduce parse_ipv* in csum fwd engine > testpmd: use a structure to store offload info in csum fwd engine > testpmd: introduce parse_vxlan in csum fwd engine > testpmd: support gre tunnels in csum fwd engine > testpmd: support ipip tunnel in csum forward engine > testpmd: add a warning if outer ip cksum requested but not supported > testpmd: fix TSO when using outer checksum offloads > i40e: fix offloading of outer checksum for ip in ip tunnels > i40e: add debug logs for tx context descriptors > > app/test-pmd/cmdline.c | 234 ++++++++++++++------- > app/test-pmd/csumonly.c | 417 +++++++++++++++++++++++++-------- > ----- > app/test-pmd/testpmd.h | 9 +- > lib/librte_ether/rte_ethdev.h | 1 + > lib/librte_mbuf/rte_mbuf.c | 1 - > lib/librte_mbuf/rte_mbuf.h | 49 +++-- > lib/librte_pmd_i40e/i40e_ethdev.c | 3 +- > lib/librte_pmd_i40e/i40e_rxtx.c | 55 +++-- > 8 files changed, 519 insertions(+), 250 deletions(-) > > -- > 2.1.4 Acked-by: Jijiang Liu <Jijiang.liu at intel.com>