DPDK 18.11 硬件校验和支持 X722 NIC?
DPDK 18.11 HW checksum support for X722 NIC?
我在 Centos 7 上 运行 dpdk-stable-18.11.8,目标是 Intel X722 网卡。
我希望 ipv4 和 udp header 校验和由硬件计算,所以我将设备配置设置为:
struct rte_eth_conf local_port_conf;
memset(&local_port_conf, 0, sizeof(struct rte_eth_conf));
local_port_conf.rxmode.split_hdr_size = 0;
local_port_conf.txmode.mq_mode = ETH_MQ_TX_NONE;
local_port_conf.txmode.offloads = DEV_TX_OFFLOAD_OUTER_UDP_CKSUM | DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
rte_eth_dev_configure(0,1,1,&local_port_conf);
rte_eth_dev_configurereturns:
0xffffffea (-22)
这是否意味着 DPDK 18.11 不支持将校验和卸载到 X722 NIC?
DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM用于外部隧道包,为此X710必须加载DDP。如果打算用于普通数据包,则使用 DEV_TX_OFFLOAD_IPV4_CKSUM
。
注意:配置任何 DPDK 端口的正确方法是首先通过 rte_eth_dev_info_get
获取功能。然后检查 dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IPV4_CKSUM
,如果存在配置。
我在 Centos 7 上 运行 dpdk-stable-18.11.8,目标是 Intel X722 网卡。
我希望 ipv4 和 udp header 校验和由硬件计算,所以我将设备配置设置为:
struct rte_eth_conf local_port_conf;
memset(&local_port_conf, 0, sizeof(struct rte_eth_conf));
local_port_conf.rxmode.split_hdr_size = 0;
local_port_conf.txmode.mq_mode = ETH_MQ_TX_NONE;
local_port_conf.txmode.offloads = DEV_TX_OFFLOAD_OUTER_UDP_CKSUM | DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
rte_eth_dev_configure(0,1,1,&local_port_conf);
rte_eth_dev_configurereturns: 0xffffffea (-22)
这是否意味着 DPDK 18.11 不支持将校验和卸载到 X722 NIC?
DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM用于外部隧道包,为此X710必须加载DDP。如果打算用于普通数据包,则使用 DEV_TX_OFFLOAD_IPV4_CKSUM
。
注意:配置任何 DPDK 端口的正确方法是首先通过 rte_eth_dev_info_get
获取功能。然后检查 dev_info.tx_offload_capa & DEV_TX_OFFLOAD_IPV4_CKSUM
,如果存在配置。