Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-748

ICMP error is not propagated through tunnel

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Normal Normal
    • None
    • None
    • OVN
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide

      Given a setup with OVN configured to use tunnel interfaces,

      When an ICMP "fragmentation needed" error is generated in response to oversized packets,

      Then, the error should be properly propagated through the tunnel to the originating host so that it adjusts the packet sizes and avoid retransmissions.

      Show
      Given a setup with OVN configured to use tunnel interfaces, When an ICMP "fragmentation needed" error is generated in response to oversized packets, Then, the error should be properly propagated through the tunnel to the originating host so that it adjusts the packet sizes and avoid retransmissions.
    • rhel-9
    • None
    • rhel-net-ovn
    • ssg_networking

      When the reproducer script on ovn-fake-multinode the ICMP need frag is not propagated through the tunnel interface and is constantly repeated by the host kernel:

      12:22:42.117660 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 1520: (tos 0x0, ttl 64, id 50543, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 1, length 1480
      12:22:42.117684 lo    In  ifindex 1 00:00:00:00:00:00 ethertype IPv4 (0x0800), length 596: (tos 0xc0, ttl 64, id 40004, offset 0, flags [none], proto ICMP (1), length 576)
          170.168.0.5 > 170.168.0.5: ICMP 170.168.0.4 unreachable - need to frag (mtu 1500), length 556
          (tos 0x0, ttl 64, id 7009, offset 0, flags [DF], proto UDP (17), length 1558)
          170.168.0.5.40303 > 170.168.0.4.6081: Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8]
          00:00:00:00:20:11 > 00:00:00:00:20:10, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 50543, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 1, length 1480
      12:22:42.117701 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 68: (tos 0x0, ttl 64, id 50543, offset 1480, flags [none], proto ICMP (1), length 48)
          192.168.20.11 > 192.168.20.10: ip-proto-1
      12:22:42.620311 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 1520: (tos 0x0, ttl 64, id 50880, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 2, length 1480
      12:22:42.620327 lo    In  ifindex 1 00:00:00:00:00:00 ethertype IPv4 (0x0800), length 596: (tos 0xc0, ttl 64, id 40392, offset 0, flags [none], proto ICMP (1), length 576)
          170.168.0.5 > 170.168.0.5: ICMP 170.168.0.4 unreachable - need to frag (mtu 1500), length 556
          (tos 0x0, ttl 64, id 7230, offset 0, flags [DF], proto UDP (17), length 1558)
          170.168.0.5.40303 > 170.168.0.4.6081: Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8]
          00:00:00:00:20:11 > 00:00:00:00:20:10, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 50880, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 2, length 1480
      12:22:42.620337 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 68: (tos 0x0, ttl 64, id 50880, offset 1480, flags [none], proto ICMP (1), length 48)
          192.168.20.11 > 192.168.20.10: ip-proto-1
      12:22:43.124343 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 1520: (tos 0x0, ttl 64, id 51227, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 3, length 1480
      12:22:43.124381 lo    In  ifindex 1 00:00:00:00:00:00 ethertype IPv4 (0x0800), length 596: (tos 0xc0, ttl 64, id 40711, offset 0, flags [none], proto ICMP (1), length 576)
          170.168.0.5 > 170.168.0.5: ICMP 170.168.0.4 unreachable - need to frag (mtu 1500), length 556
          (tos 0x0, ttl 64, id 7577, offset 0, flags [DF], proto UDP (17), length 1558)
          170.168.0.5.40303 > 170.168.0.4.6081: Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8]
          00:00:00:00:20:11 > 00:00:00:00:20:10, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 51227, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 3, length 1480
      12:22:43.124404 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 68: (tos 0x0, ttl 64, id 51227, offset 1480, flags [none], proto ICMP (1), length 48)
          192.168.20.11 > 192.168.20.10: ip-proto-1
      12:22:43.628289 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 1520: (tos 0x0, ttl 64, id 51468, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 4, length 1480
      12:22:43.628305 lo    In  ifindex 1 00:00:00:00:00:00 ethertype IPv4 (0x0800), length 596: (tos 0xc0, ttl 64, id 41164, offset 0, flags [none], proto ICMP (1), length 576)
          170.168.0.5 > 170.168.0.5: ICMP 170.168.0.4 unreachable - need to frag (mtu 1500), length 556
          (tos 0x0, ttl 64, id 7689, offset 0, flags [DF], proto UDP (17), length 1558)
          170.168.0.5.40303 > 170.168.0.4.6081: Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8]
          00:00:00:00:20:11 > 00:00:00:00:20:10, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 51468, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 4, length 1480
      12:22:43.628313 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 68: (tos 0x0, ttl 64, id 51468, offset 1480, flags [none], proto ICMP (1), length 48)
          192.168.20.11 > 192.168.20.10: ip-proto-1
      12:22:44.132315 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 1520: (tos 0x0, ttl 64, id 51852, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 5, length 1480
      12:22:44.132332 lo    In  ifindex 1 00:00:00:00:00:00 ethertype IPv4 (0x0800), length 596: (tos 0xc0, ttl 64, id 41553, offset 0, flags [none], proto ICMP (1), length 576)
          170.168.0.5 > 170.168.0.5: ICMP 170.168.0.4 unreachable - need to frag (mtu 1500), length 556
          (tos 0x0, ttl 64, id 7710, offset 0, flags [DF], proto UDP (17), length 1558)
          170.168.0.5.40303 > 170.168.0.4.6081: Geneve, Flags [C], vni 0x1, proto TEB (0x6558), options [class Open Virtual Networking (OVN) (0x102) type 0x80(C) len 8]
          00:00:00:00:20:11 > 00:00:00:00:20:10, ethertype IPv4 (0x0800), length 1514: (tos 0x0, ttl 64, id 51852, offset 0, flags [+], proto ICMP (1), length 1500)
          192.168.20.11 > 192.168.20.10: ICMP echo request, id 279, seq 5, length 1480
      12:22:44.132342 genev_sys_6081 Out ifindex 5 00:00:00:00:20:11 ethertype IPv4 (0x0800), length 68: (tos 0x0, ttl 64, id 51852, offset 1480, flags [none], proto ICMP (1), length 48)
          192.168.20.11 > 192.168.20.10: ip-proto-1
      

       

       

      Kernel version: 6.10.3-200.fc40.x86_64

        1. reproducer_fdp.sh
          3 kB
          Ales Musil
        2. ovn-chassis-1
          8 kB
          Ales Musil
        3. ovn-chassis-2
          8 kB
          Ales Musil

              ovnteam@redhat.com OVN Team
              amusil@redhat.com Ales Musil
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: