[dpdk-users] How to make virtual NIC (virtio and vmxnet3) support IP header checksum?

宋捷 songj at zctt.com
Tue Feb 26 09:29:00 CET 2019

Hi All

    I test the DPDK virtual nics both in Esxi and KVM, I used DPDK  vmxnet3,
virtio and e1000 nic. I need create IP packets and TX them.


I set the rte_mbuf as below before TX.

mb->l2_len = len(out_eth)

mb->l3_len = len(out_ip)

mb->ol_flags |= PKT_TX_IPV4 | PKT_TX_IP_CSUM


It worked well with DPDK virtual e1000 nic, the IP header checksum will be
set correct value. but vmxnet3 and virtio just keep 0 for IP header

I disable above code and call rte_ipv4_cksum for each IP header checksum. it
worked with vmxnet3 and virtio when TX slowly, but checksum invalid once TX


Why the DPDK vmxnet3 and virtio drivers don't support IP checksum?

If there’s an easy way for adding the IP header checksum with vmxnet3 and
virtio ?






More information about the users mailing list