Fix ip6-rewrite drops when no feature is configured 96/2496/2
authorAkshayaNadahalli <anadahal@cisco.com>
Thu, 25 Aug 2016 08:55:28 +0000 (10:55 +0200)
committerDave Barach <openvpp@barachs.net>
Thu, 25 Aug 2016 12:26:19 +0000 (12:26 +0000)
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>
vnet/vnet/ip/ip6_forward.c

index 723b090..6ceb574 100644 (file)
@@ -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,