[dpdk-dev] [RFC 0/2] TAP TSO Implementation

Ophir Munk ophirmu at mellanox.com
Fri Mar 9 22:10:24 CET 2018


This RFC suggests TAP TSO (TSP segmentation offload) implementation in SW.
It uses dpdk library rte_gso which is also used by testpmd.
Dpdk rte_gso library segments large TCP payloads (e.g. 64K bytes)
into smaller MTU size buffers.
By supporting TSO offload capability in software a TAP device can be used
as a failsafe sub device and be paired with another PCI device which
supports TSO capability in HW.

This RFC includes 2 commits:
1. Calculation of IP/TCP/UDP checksums for multi segments packets.
Previously checksum offload was skipped if the number of packet segments
was greater than 1.
This commit removes this limitation. It is required before supporting TAP TSO
since the generated small TCP packets may be composed by themselves by more than
one segment.
2. Core TAP TSO implementation: calling rte_gso_segment() segments
large TCP packets.
To be added: creation of a small private mbuf pool in TAP required by librte_gso.
The number of buffers will be 64 - each of 128 bytes length.

Ophir Munk (2):
  net/tap: calculate checksum for multi segs packets
  net/tap: implement TAP TSO

 drivers/net/tap/Makefile      |   2 +-
 drivers/net/tap/rte_eth_tap.c | 183 +++++++++++++++++++++++++++++++++---------
 drivers/net/tap/rte_eth_tap.h |   4 +
 3 files changed, 150 insertions(+), 39 deletions(-)

-- 
2.7.4



More information about the dev mailing list