aboutsummaryrefslogtreecommitdiffstats
path: root/vnet
diff options
context:
space:
mode:
authorAkshayaNadahalli <anadahal@cisco.com>2016-08-25 10:55:28 +0200
committerDave Barach <openvpp@barachs.net>2016-08-25 12:26:19 +0000
commit082b39dc6764c883bdda647c610065b506d4ba2d (patch)
tree441573e1a68ddd65c5a6181bab5c0d3a2db2c5db /vnet
parent8d281b36e5124e61201a12c90fde1dfceab39fce (diff)
Fix ip6-rewrite drops when no feature is configured
In ip6_rewrite_inline(), only in dual loop next0 and next1 are set to IP6_REWRITE_NEXT_DROP and never updated unless there is an o/p feature configured on it. So any packets processed under dual loop are dropped. Single loop works fine as next0 is updated correctly. Fix is to update next node from adjacency under dual packet loop processing. Change-Id: I902fcc84ed307464d92499f9d37137af660b592c Signed-off-by: AkshayaNadahalli <anadahal@cisco.com>
Diffstat (limited to 'vnet')
-rw-r--r--vnet/vnet/ip/ip6_forward.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/vnet/vnet/ip/ip6_forward.c b/vnet/vnet/ip/ip6_forward.c
index 723b09041b8..6ceb5741ed8 100644
--- a/vnet/vnet/ip/ip6_forward.c
+++ b/vnet/vnet/ip/ip6_forward.c
@@ -2520,6 +2520,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
tx_sw_if_index0 = adj0[0].rewrite_header.sw_if_index;
vnet_buffer (p0)->sw_if_index[VLIB_TX] =
tx_sw_if_index0;
+ next0 = adj0[0].rewrite_header.next_index;
if (PREDICT_FALSE
(clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,
@@ -2542,6 +2543,7 @@ ip6_rewrite_inline (vlib_main_t * vm,
tx_sw_if_index1 = adj1[0].rewrite_header.sw_if_index;
vnet_buffer (p1)->sw_if_index[VLIB_TX] =
tx_sw_if_index1;
+ next1 = adj1[0].rewrite_header.next_index;
if (PREDICT_FALSE
(clib_bitmap_get (lm->tx_sw_if_has_ip_output_features,