Bug 1270166
Summary: | UDP packet checksum is not converted from 0x0000 to 0xffff with Qemu e1000 emulation. | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Yuki Shibuya <shibuya.yk> |
Component: | qemu-kvm | Assignee: | Philippe Mathieu-Daudé <philmd> |
Status: | CLOSED ERRATA | QA Contact: | Quan Wenli <wquan> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.1 | CC: | aadam, ailan, andbartl, areis, chayang, ebohn, jasowang, juzhang, knoel, maurizio.antillon, pezhang, philmd, rkhan, shibuya.yk, toyoshima.ts, virt-maint, xfu |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-1.5.3-168.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-03-31 20:02:00 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Yuki Shibuya
2015-10-09 07:38:11 UTC
Corner case. Defer to 7.6. I've queued the fix upstream. Thank you. I understand that the fix will be included in RHEL 7.6. We will not add this test case since it's a corner case, will verify it as a bug fix. Reproduce it with qemu-kvm-1.5.3-167.el7. Steps: 1. Create RHEL 7 VM. 2. Set e1000 NIC tyep to created VM. -device e1000,mac=9a:37:37:37:37:6e,id=idPK7OFU,netdev=id3XU8h2,bus=pci.0,addr=0x6 \ -netdev tap,id=id3XU8h2 3. confrim tx-checksumming offload on VM [root@bootp-73-11-207 ~]# ethtool -k eth0 Features for eth0: rx-checksumming: off tx-checksumming: on tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: on tx-checksum-ipv6: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-checksum-sctp: off [fixed] 4. Send a udp packet that computed checksum is zero to destination server. using a.c reproduce in comment 0. [root@bootp-73-11-207 ~]# gcc a.c [root@bootp-73-11-207 ~]# ./a.c 10.73.8.2 5. Execute tcpdump to capture udp packets on destination server. [root@dell-per730-06 ~]# tcpdump -i eno1 udp -vv -X -c 1 tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 06:15:01.902199 IP (tos 0x0, ttl 64, id 33775, offset 0, flags [DF], proto UDP (17), length 32) bootp-73-11-207.lab.eng.pek2.redhat.com.50000 > dell-per730-06.lab.eng.pek2.redhat.com.italk: [udp sum ok] UDP, length 4 0x0000: 4500 0020 83ef 4000 4011 8e7b 0a49 0bcf E.....@.@..{.I.. 0x0010: 0a49 0802 c350 3039 000c e3e9 0000 0000 .I...P09........ 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. getting checksum is e3e9, replace "msg = 0xe9e3" in a.c and re-build it. 6. run again with steps 4 and step5. [root@dell-per730-06 ~]# tcpdump -i eno1 udp -vv -X -c 1 tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 06:15:01.902199 IP (tos 0x0, ttl 64, id 33775, offset 0, flags [DF], proto UDP (17), length 32) bootp-73-11-207.lab.eng.pek2.redhat.com.50000 > dell-per730-06.lab.eng.pek2.redhat.com.italk: [udp sum ok] UDP, length 4 0x0000: 4500 0020 83ef 4000 4011 8e7b 0a49 0bcf E.....@.@..{.I.. 0x0010: 0a49 0802 c350 3039 000c e3e9 0000 0000 .I...P09........ 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. Verified it with qemu-kvm-1.5.3-168.el7 Same steps with 1-6, after running " tcpdump -i eno1 udp -vv -X -c 1" on destination server, it has been change to "ffff e3e9" in tcpdump results. root@dell-per730-06 ~]# tcpdump -i eno1 udp -vv -X -c 1 tcpdump: listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes 06:13:18.891520 IP (tos 0x0, ttl 64, id 33035, offset 0, flags [DF], proto UDP (17), length 32) bootp-73-11-207.lab.eng.pek2.redhat.com.50000 > dell-per730-06.lab.eng.pek2.redhat.com.italk: [udp sum ok] UDP, length 4 0x0000: 4500 0020 810b 4000 4011 915f 0a49 0bcf E.....@.@.._.I.. 0x0010: 0a49 0802 c350 3039 000c ffff e3e9 0000 .I...P09........ 0x0020: 0000 0000 0000 0000 0000 0000 0000 .............. Base on above, set it to verified. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2020:1116 Clearing needinfo which seems to have been added by accident. |