[dpdk-dev] [PATCH 00/12] add TSO support
Olivier Matz
olivier.matz at 6wind.com
Mon Nov 10 16:59:14 CET 2014
This series add TSO support in ixgbe DPDK driver. This is the third
version of the series, but as the previous version [1] was posted several
months ago and included a mbuf rework that is now in mainline, it can
be considered as a new patch series. I'm open to comments on this
patchset, especially on the API (see [2]).
This series first fixes some bugs that were discovered during the
development, adds some changes to the mbuf API (new l4_len and
tso_segsz fields), adds TSO support in ixgbe, reworks testpmd
csum forward engine, and finally adds TSO support in testpmd so it
can be validated.
The new fields added in mbuf try to be generic enough to apply to
other hardware in the future. To delegate the TCP segmentation to the
hardware, the user has to:
- set the PKT_TX_TCP_SEG flag in mbuf->ol_flags (this flag implies
PKT_TX_TCP_CKSUM)
- if it's IPv4, set the PKT_TX_IP_CKSUM flag and write the IP checksum
to 0 in the packet
- fill the mbuf offload information: l2_len, l3_len, l4_len, tso_segsz
- calculate the pseudo header checksum and set it in the TCP header,
as required when doing hardware TCP checksum offload
The test report will be added as an answer to this cover letter and
could be linked in the concerned commits.
[1] http://dpdk.org/ml/archives/dev/2014-May/002537.html
[2] http://dpdk.org/ml/archives/dev/2014-November/007940.html
Olivier Matz (12):
igb/ixgbe: fix IP checksum calculation
ixgbe: fix remaining pkt_flags variable size to 64 bits
mbuf: move vxlan_cksum flag definition at the proper place
mbuf: add help about TX checksum flags
mbuf: remove too specific PKT_TX_OFFLOAD_MASK definition
mbuf: add functions to get the name of an ol_flag
mbuf: generic support for TCP segmentation offload
ixgbe: support TCP segmentation offload
testpmd: fix use of offload flags in testpmd
testpmd: rework csum forward engine
testpmd: support TSO in csum forward engine
testpmd: add a verbose mode csum forward engine
app/test-pmd/cmdline.c | 243 ++++++++++--
app/test-pmd/config.c | 15 +-
app/test-pmd/csumonly.c | 740 +++++++++++++++++++-----------------
app/test-pmd/macfwd.c | 5 +-
app/test-pmd/macswap.c | 5 +-
app/test-pmd/rxonly.c | 36 +-
app/test-pmd/testpmd.c | 3 +-
app/test-pmd/testpmd.h | 24 +-
app/test-pmd/txonly.c | 9 +-
examples/ipv4_multicast/main.c | 3 +-
lib/librte_mbuf/rte_mbuf.h | 130 +++++--
lib/librte_pmd_e1000/igb_rxtx.c | 16 +-
lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 3 +-
lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 222 ++++++++---
lib/librte_pmd_ixgbe/ixgbe_rxtx.h | 19 +-
15 files changed, 921 insertions(+), 552 deletions(-)
--
2.1.0
More information about the dev
mailing list