You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I added extra parameters to support the vhost_user device and to enable UDP communication with the virtio_user device. However, I encountered an issue where virtio can send data to vhost, but vhost cannot send data back to virtio.
I found that the UDP checksum calculation method used by the vhost_user device differs from that of F-stack, and I am unsure which one is correct.
When I disabled the checksum calculation offload in vhost_user, all communications worked normally.
The UDP checksum calculation code of vhost_user device:
I'm sorry that I cannot fully understand the implementation of the in_cksum function, but it probably does not appear to be performing a 16-bit checksum calculation.
The text was updated successfully, but these errors were encountered:
#define RTE_MBUF_F_TX_IPV4 (1ULL << 55)
Packet is IPv4. This flag must be set when using any offload feature
(TSO, L3 or L4 checksum) to tell the NIC that the packet is an IPv4
packet. If the packet is a tunneled packet, this flag is related to
the inner headers.
but the ff_dpdk_if_send function in f-stack only sets the flag of RTE_MBUF_F_TX_UDP_CKSUM and does not specify the IP type of packet:
I added extra parameters to support the vhost_user device and to enable UDP communication with the virtio_user device. However, I encountered an issue where virtio can send data to vhost, but vhost cannot send data back to virtio.
I found that the UDP checksum calculation method used by the vhost_user device differs from that of F-stack, and I am unsure which one is correct.
When I disabled the checksum calculation offload in vhost_user, all communications worked normally.
The UDP checksum calculation code of vhost_user device:
The UDP checksum calculation code of f-stack:
I'm sorry that I cannot fully understand the implementation of the
in_cksum
function, but it probably does not appear to be performing a 16-bit checksum calculation.The text was updated successfully, but these errors were encountered: