Question on TX offload
Jie Hai
haijie1 at huawei.com
Tue Dec 3 08:41:49 CET 2024
Hi, all maintainers and developers,
Since the hns3 NIC support TSO for UDP (not UDP Fragmentation)
and for ipv6 headers with extension header,
When I test it with testpmd, it cannot be performed.
The TCP segmentation flag is set only for the packets whose next header
of L3 is TCP.
I checked some information on the TSO and have doubts about current
support for both cases.
The commit
7238e63bce52 ("ethdev: add support for device offload capabilities")
introduces TX offload including DEV_TX_OFFLOAD_UDP_TSO and
DEV_TX_OFFLOAD_TCP_TSO. The former evolves into UDP fragmentation
and the latter TCP segmentation.
[1].RTE_ETH_TX_OFFLOAD_UDP_TSO -- RTE_MBUF_F_TX_UDP_SEG
UDP Fragmentation Offload
[2].RTE_ETH_TX_OFFLOAD_TCP_TSO -- RTE_MBUF_F_TX_TCP_SEG
TCP segmentation offload, related to TCP packets.
While the commit message see the TCP segmentation offload as
Transmited segmentation offload.[1]Does the TCP segmentation
offload contains UDP packets?
There are many drivers support UDP segmatention offload similar to
TCP segmatention offload, for example,
atlantic、bnxt、cxgb4、hns3、i40e、iavf、ice、idpf、igb、ixgbe、mlx5, etc.
Please refer to Linux kernel include/linux/netdev_features.h
NETIF_F_GSO_UDP_L4_BIT, /* ... UDP payload GSO (not UFO) */
My questions are:
[1]. Does the TCP segmentation offload(RTE_ETH_TX_OFFLOAD_TCP_TSO )
contains UDP packets?
If yes, then the testpmd app should add flag for UDP packets.
If no, a new offload should be added.
Considering that maybe not all drivers support both of TCP and UDP
Segmentation, How about distinguish the three capabilities and flags?
[1].RTE_ETH_TX_OFFLOAD_TCP_TSO -- RTE_MBUF_F_TX_TCP_SEG
TCP segmentation offload, related to TCP as L4.
[2].RTE_ETH_TX_OFFLOAD_UDP_TSO -- RTE_MBUF_F_TX_UDP_SEG
UDP segmentation offload, related to UDP as L4.
[3].RTE_ETH_TX_OFFLOAD_UFO -- RTE_MBUF_F_TX_UFO_SEG
UDP Fragmentation Offload
[2]. TSO can be performed on packets with Ipv6 headers with extenstion?
If yes, documention and testpmd app should be updated.
If no, maybe documention should be updated more detailed.
Thanks,
Jie Hai
More information about the dev
mailing list