Hi all, I tried using the checksum offloads feature in DPDK and it did not see working under virtual machine. Port only support TCP checksum and do not support IP checksum: rx_offload_capa = DEV_RX_OFFLOAD_TCP_CKSUM tx_offload_capa = DEV_TX_OFFLOAD_TCP_CKSUM so I config rxmode.offload txmode.offloads as below: rxmode.offloads = DEV_RX_OFFLOAD_TCP_CKSUM txmode.offloads = DEV_TX_OFFLOAD_TCP_CKSUM For TX, I set the following parameters, it works good. mbuf->l2_len = sizeof(*ethhdr) mbuf->l3_len = ip header len mbuf-ol_flags = RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_TCP_CKSUM For RX, It will execute the following code: In drivers/net/virtio/virtio_rxtx.c virtio_rx_offload function : if (hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) { hdrlen = hdr_lens.l2_len + hdr_lens.l3_len + hdr_lens.l4_len; if (hdr->csum_start <= hdrlen && l4_supported) { m->ol_flags |= RTE_MBUF_F_RX_L4_CKSUM_NONE; } else { m->ol_flags set to RTE_MBUF_F_RX_L4_CKSUM_NONE, causing the TCP RX checksum failed. How do I avoid the above code going into this branch? Thanks, Jinag.