misc: fix icmp 23/40323/3
authorMaxime Peim <mpeim@cisco.com>
Mon, 12 Feb 2024 09:08:03 +0000 (10:08 +0100)
committerOle Tr�an <otroan@employees.org>
Mon, 4 Mar 2024 11:30:24 +0000 (11:30 +0000)
- fix ICMPv6 lookup FIB (don't reset sw_if_index[VLIB_TX] to -1)
- add locally generated flag in ICMPv4 buffers (reflect ICMPv6)

Type: fix
Change-Id: If25a176a9952cbe185a030f8b136718af1bff9e8
Signed-off-by: Maxime Peim <mpeim@cisco.com>
src/vnet/ip/icmp4.c
src/vnet/ip/icmp6.c
test/test_map.py
test/test_mtu.py

index 7dc21c5..e9909bf 100644 (file)
@@ -325,6 +325,7 @@ ip4_icmp_error (vlib_main_t * vm,
                               -sizeof (ip4_header_t) -
                               sizeof (icmp46_header_t) - 4);
 
+         p0->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
          p0->current_length =
            p0->current_length > 576 ? 576 : p0->current_length;
          out_ip0 = vlib_buffer_get_current (p0);
index 8d95e48..184fce6 100644 (file)
@@ -366,7 +366,6 @@ ip6_icmp_error (vlib_main_t * vm,
                               -(sizeof (ip6_header_t) +
                                 sizeof (icmp46_header_t) + 4));
 
-         vnet_buffer (p0)->sw_if_index[VLIB_TX] = ~0;
          p0->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED;
          p0->current_length =
            p0->current_length > 1280 ? 1280 : p0->current_length;
index 19e5824..565f7da 100644 (file)
@@ -659,7 +659,7 @@ class TestMAP(VppTestCase):
         p4 = p_ether / ip4_ttl_expired / payload
 
         icmp4_reply = (
-            IP(id=0, ttl=254, src=self.pg0.local_ip4, dst=self.pg0.remote_ip4)
+            IP(id=0, ttl=255, src=self.pg0.local_ip4, dst=self.pg0.remote_ip4)
             / ICMP(type="time-exceeded", code="ttl-zero-during-transit")
             / IP(src=self.pg0.remote_ip4, dst="192.168.0.1", ttl=0)
             / payload
@@ -673,7 +673,7 @@ class TestMAP(VppTestCase):
         p4 = p_ether / ip4_ttl_expired / payload
 
         icmp4_reply = (
-            IP(id=0, ttl=254, src=self.pg0.local_ip4, dst=self.pg0.remote_ip4)
+            IP(id=0, ttl=255, src=self.pg0.local_ip4, dst=self.pg0.remote_ip4)
             / ICMP(type="time-exceeded", code="ttl-zero-during-transit")
             / IP(src=self.pg0.remote_ip4, dst="192.168.0.1", ttl=1)
             / payload
index ed4fcb5..6735cc6 100644 (file)
@@ -99,7 +99,7 @@ class TestMTU(VppTestCase):
             chksum=0x2DBB,
         )
         icmp4_reply = (
-            IP(src=self.pg0.local_ip4, dst=self.pg0.remote_ip4, ttl=254, len=576, id=0)
+            IP(src=self.pg0.local_ip4, dst=self.pg0.remote_ip4, ttl=255, len=576, id=0)
             / p_icmp4
             / p_ip4
             / p_payload