[dpdk-users] 82599 didn't calculate checksum when checksum offload is enabled

Yu Yang yyangplus at gmail.com
Tue Jul 4 12:12:40 CEST 2017


my project is an UDP server. I think the code is correct, because it works
well on an I350 NIC, but when I test on 82599, it didn't calculate checksum
at all and tcpdump running on remote machine reports bad ipv4 checksum(0)
and bad udp checksum(the pseudo-header checksum calculated by server), I
also tried disable checksum offload and use software to calculate checksum,
it works. this is my port config

struct rte_eth_conf default_port_conf = {
    .rxmode = {
        .mq_mode = ETH_MQ_RX_RSS,
        .max_rx_pkt_len = ETHER_MAX_LEN,
        .split_hdr_size = 0,
        .header_split   = 0, /**< Header Split disabled */
        .hw_ip_checksum = 1, /**< IP checksum offload enabled */
        .hw_vlan_filter = 0, /**< VLAN filtering disabled */
        .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
        .hw_strip_crc   = 1, /**< CRC stripped by hardware */
    },
    .rx_adv_conf = {
        .rss_conf = {
            .rss_key = NULL,
            .rss_hf = ETH_RSS_TCP | ETH_RSS_UDP | ETH_RSS_IP |
ETH_RSS_L2_PAYLOAD,
        },
    },
    .txmode = {
        .mq_mode = ETH_MQ_TX_NONE,
    },
};

dpdk version is 16.11.1

thanks


More information about the users mailing list