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

Reply via email to