Created attachment 1920425 [details] Reproducer Description of problem: When we have a ICMP related message from different source address the inner header does not get DNATed. How reproducible: 100% Steps to Reproduce: 1. Run the reproducer script Actual results: 06:09:43.044558 00:00:00:00:20:00 > 00:00:00:00:10:20, ethertype IPv4 (0x0800), length 70: (tos 0x0, ttl 255, id 287, offset 0, flags [none], proto ICMP (1), length 56) 192.168.20.1 > 192.168.10.20: ICMP 192.168.20.10 unreachable - need to frag (mtu 1400), length 36 (tos 0x0, ttl 10, id 0, offset 0, flags [DF], proto UDP (17), length 28) 192.168.20.20.2 > 192.168.20.10.1: UDP, length 0 Expected results: 06:09:43.044558 00:00:00:00:20:00 > 00:00:00:00:10:20, ethertype IPv4 (0x0800), length 70: (tos 0x0, ttl 255, id 287, offset 0, flags [none], proto ICMP (1), length 56) 192.168.20.1 > 192.168.10.20: ICMP 192.168.20.10 unreachable - need to frag (mtu 1400), length 36 (tos 0x0, ttl 10, id 0, offset 0, flags [DF], proto UDP (17), length 28) 192.168.10.20.2 > 192.168.20.10.1: UDP, length 0
Patch posted: https://patchwork.ozlabs.org/project/openvswitch/patch/20221027091413.173848-1-amusil@redhat.com/
Sorry the BZ was originally opened for wrong component. The fix is in, there is also 2.17 clone: https://bugzilla.redhat.com/show_bug.cgi?id=2178200
Verified on openvswitch3.0-3.0.0-31.el9fdp.x86_64. Use the reproducer attached. 23:28:08.107642 00:00:00:00:20:00 > 00:00:00:00:10:20, ethertype IPv4 (0x0800), length 70: (tos 0x0, ttl 255, id 287, offset 0, flags [none], proto ICMP (1), length 56) 192.168.20.1 > 192.168.10.20: ICMP 192.168.20.10 unreachable - need to frag (mtu 1400), length 36 (tos 0x0, ttl 10, id 0, offset 0, flags [DF], proto UDP (17), length 28) 192.168.10.20.2 > 192.168.20.10.1: UDP, length 0