[dpdk-users] Checksum offloading changes in DPDK v.19?

David Aldrich david.aldrich.ntml at gmail.com
Mon Apr 26 17:31:11 CEST 2021


Hi

Since upgrading from DPDK 18.11.9 to 19.11.8 UDP TX checksum offloading has
stopped working on our X722 device.

I enable offloading as follows:

First I check the device capability:

struct rte_eth_dev_info dev_info;
rte_eth_dev_info_get(a_portId, &dev_info);
if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MULTI_SEGS) == 0)
        fatal("Socket_setupPort failed: Ethernet device lacks capabability:
DEV_TX_OFFLOAD_MULTI_SEGS");
if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IPV4_CKSUM) == 0)
        fatal("Socket_setupPort failed: Ethernet device lacks capabability:
DEV_TX_OFFLOAD_IPV4_CKSUM");
if ((dev_info.tx_offload_capa & DEV_TX_OFFLOAD_UDP_CKSUM) == 0)
        fatal("Socket_setupPort failed: Ethernet device lacks capabability:
DEV_TX_OFFLOAD_UDP_CKSUM");

Then I enable offloading:

struct rte_eth_conf local_port_conf;
local_port_conf.txmode.offloads = local_port_conf.txmode.offloads |
DEV_TX_OFFLOAD_IPV4_CKSUM  | DEV_TX_OFFLOAD_UDP_CKSUM;

I notice that the 19.08 release notes mention checksum changes:

"ip_frag: The IP fragmentation library converts input mbuf into fragments
using input MTU size via the rte_ipv4_fragment_packet() interface. Once
fragmentation is done, each mbuf->ol_flags are set to enable IP checksum
H/W offload irrespective of the platform capability. Cleared IP checksum
H/W offload flag from the library. The application must set this flag if it
is supported by the platform and application wishes to use it."

Could that be related to my problem or is there another change that may
have caused the problem?

Best regards
David


More information about the users mailing list