[dpdk-dev] [PATCH v2 00/20] enhance tx checksum offload API

Olivier Matz olivier.matz at 6wind.com
Wed Feb 4 10:25:05 CET 2015


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.

- 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



More information about the dev mailing list