summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2021-11-10 07:39:51 -0800
committerFlorin Coras <florin.coras@gmail.com>2021-11-10 15:33:02 +0000
commit904638f4625c82d166d67870f9cf8088dd29a8b2 (patch)
tree0fbacfb47ccdcca5179ed1cdc91da08c2bd40cc3 /src/vnet
parent9c25eb1f4876a399919782c97e116732ea2ee628 (diff)
ip: always set ip rx_sw_if_index
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I43f6bfa028ee37227f27a2fe0303662bf2631b10
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/ip/ip4_forward.c8
-rw-r--r--src/vnet/ip/ip6_forward.c9
-rw-r--r--src/vnet/tcp/tcp_inlines.h5
3 files changed, 12 insertions, 10 deletions
diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c
index 900a1b4ce8e..58af706e2b2 100644
--- a/src/vnet/ip/ip4_forward.c
+++ b/src/vnet/ip/ip4_forward.c
@@ -1534,7 +1534,7 @@ ip4_local_check_src (vlib_buffer_t *b, ip4_header_t *ip0,
vnet_buffer (b)->ip.rx_sw_if_index = rd->rd_sw_if_index;
}
else
- vnet_buffer (b)->ip.rx_sw_if_index = ~0;
+ vnet_buffer (b)->ip.rx_sw_if_index = vnet_buffer (b)->sw_if_index[VLIB_RX];
/*
* vnet_buffer()->ip.adj_index[VLIB_RX] will be set to the index of the
@@ -1622,8 +1622,10 @@ ip4_local_check_src_x2 (vlib_buffer_t **b, ip4_header_t **ip,
}
else
{
- vnet_buffer (b[0])->ip.rx_sw_if_index = ~0;
- vnet_buffer (b[1])->ip.rx_sw_if_index = ~0;
+ vnet_buffer (b[0])->ip.rx_sw_if_index =
+ vnet_buffer (b[0])->sw_if_index[VLIB_RX];
+ vnet_buffer (b[1])->ip.rx_sw_if_index =
+ vnet_buffer (b[1])->sw_if_index[VLIB_RX];
}
/*
diff --git a/src/vnet/ip/ip6_forward.c b/src/vnet/ip/ip6_forward.c
index b9f9892f929..833ce142999 100644
--- a/src/vnet/ip/ip6_forward.c
+++ b/src/vnet/ip/ip6_forward.c
@@ -1481,8 +1481,10 @@ ip6_local_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
}
else
{
- vnet_buffer (b[0])->ip.rx_sw_if_index = ~0;
- vnet_buffer (b[1])->ip.rx_sw_if_index = ~0;
+ vnet_buffer (b[0])->ip.rx_sw_if_index =
+ vnet_buffer (b[0])->ip.adj_index[VLIB_RX];
+ vnet_buffer (b[1])->ip.rx_sw_if_index =
+ vnet_buffer (b[1])->ip.adj_index[VLIB_RX];
}
} /* head_of_feature_arc */
@@ -1618,7 +1620,8 @@ ip6_local_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
vnet_buffer (b[0])->ip.rx_sw_if_index = rd->rd_sw_if_index;
}
else
- vnet_buffer (b[0])->ip.rx_sw_if_index = ~0;
+ vnet_buffer (b[0])->ip.rx_sw_if_index =
+ vnet_buffer (b[0])->ip.adj_index[VLIB_RX];
} /* head_of_feature_arc */
next[0] = lm->local_next_by_ip_protocol[ip->protocol];
diff --git a/src/vnet/tcp/tcp_inlines.h b/src/vnet/tcp/tcp_inlines.h
index e82f308d9b8..d57b3059066 100644
--- a/src/vnet/tcp/tcp_inlines.h
+++ b/src/vnet/tcp/tcp_inlines.h
@@ -239,10 +239,7 @@ tcp_input_lookup_buffer (vlib_buffer_t * b, u8 thread_index, u32 * error,
/* Set the sw_if_index[VLIB_RX] to the interface we received
* the connection on (the local interface) */
- vnet_buffer (b)->sw_if_index[VLIB_RX] =
- vnet_buffer (b)->ip.rx_sw_if_index != ~0 ?
- vnet_buffer (b)->ip.rx_sw_if_index :
- vnet_buffer (b)->sw_if_index[VLIB_RX];
+ vnet_buffer (b)->sw_if_index[VLIB_RX] = vnet_buffer (b)->ip.rx_sw_if_index;
if (is_ip4)
{