【发布时间】:2018-09-24 16:25:48
【问题描述】:
硬件虚拟化(SRIOV PCI passthrough)无法计算UDP校验和。当UDP校验和计算是硬件卸载时,在服务路由器上的主机后收集的tcpdump(pcap)中观察到UDP错误校验和错误。
【问题讨论】:
-
UDP 校验和设置为 0 并禁用硬件卸载以防止 UDP 校验和错误。这是唯一的出路吗?请建议。
硬件虚拟化(SRIOV PCI passthrough)无法计算UDP校验和。当UDP校验和计算是硬件卸载时,在服务路由器上的主机后收集的tcpdump(pcap)中观察到UDP错误校验和错误。
【问题讨论】:
您可以使用rte_ipv4_phdr_cksum() 和rte_ipv4_udptcp_cksum() 在软件中计算校验和。请注意,计算 UDP 校验和可能会降低应用程序的性能。
请注意,IPv4 UPD checksum is optional,因此将其设置为零非常好,并且符合标准。
还请注意,Stack Overflow mission 是“为有关编程的每个问题建立详细答案的库”。如果您的问题的答案是正确的,请标记。如果没有,请提供正确答案,即自行回答您的问题。
【讨论】: