From 88cecfad98d2e8b32e68b90538c2c4cb906eb204 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Wed, 8 Apr 2020 08:28:06 -0400 Subject: [PATCH] ip: do not clear the locally-originated flag Type: fix - doing so in MTU dec, means mtu_inc is broken - there's no need to. if a packet encounters ipX-rewrite a second time then it went through a tunnel the first time and is still locally originated. Change-Id: I0f279c2837b608c1677485fe93f63398ab2737b3 Signed-off-by: Neale Ranns --- src/vnet/ip/ip4_forward.c | 10 ++-------- src/vnet/ip/ip6_forward.c | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c index 7471a001e7a..c945f70a9d7 100644 --- a/src/vnet/ip/ip4_forward.c +++ b/src/vnet/ip/ip4_forward.c @@ -1990,10 +1990,7 @@ ip4_ttl_inc (vlib_buffer_t * b, ip4_header_t * ip) i32 ttl; u32 checksum; if (PREDICT_FALSE (b->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED)) - { - b->flags &= ~VNET_BUFFER_F_LOCALLY_ORIGINATED; - return; - } + return; ttl = ip->ttl; @@ -2016,10 +2013,7 @@ ip4_ttl_and_checksum_check (vlib_buffer_t * b, ip4_header_t * ip, u16 * next, i32 ttl; u32 checksum; if (PREDICT_FALSE (b->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED)) - { - b->flags &= ~VNET_BUFFER_F_LOCALLY_ORIGINATED; - return; - } + return; ttl = ip->ttl; diff --git a/src/vnet/ip/ip6_forward.c b/src/vnet/ip/ip6_forward.c index f7f7b780fc8..b7cdb1af8bb 100644 --- a/src/vnet/ip/ip6_forward.c +++ b/src/vnet/ip/ip6_forward.c @@ -1744,10 +1744,7 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, 0); } } - else - { - p0->flags &= ~VNET_BUFFER_F_LOCALLY_ORIGINATED; - } + is_locally_originated1 = p1->flags & VNET_BUFFER_F_LOCALLY_ORIGINATED; if (PREDICT_TRUE (!is_locally_originated1)) @@ -1775,10 +1772,7 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, 0); } } - else - { - p1->flags &= ~VNET_BUFFER_F_LOCALLY_ORIGINATED; - } + adj0 = adj_get (adj_index0); adj1 = adj_get (adj_index1); -- 2.16.6