diff options
Diffstat (limited to 'src/vnet/ip/ip6_forward.c')
-rw-r--r-- | src/vnet/ip/ip6_forward.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/vnet/ip/ip6_forward.c b/src/vnet/ip/ip6_forward.c index f599392742c..858dd73a712 100644 --- a/src/vnet/ip/ip6_forward.c +++ b/src/vnet/ip/ip6_forward.c @@ -1808,6 +1808,10 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, vnet_feature_arc_start (lm->output_feature_arc_index, tx_sw_if_index0, &next0, p0); } + else + { + p0->error = error_node->errors[error0]; + } if (PREDICT_TRUE (error1 == IP6_ERROR_NONE)) { p1->current_data -= rw_len1; @@ -1822,6 +1826,10 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, vnet_feature_arc_start (lm->output_feature_arc_index, tx_sw_if_index1, &next1, p1); } + else + { + p1->error = error_node->errors[error1]; + } /* Guess we are only writing on simple Ethernet header. */ vnet_rewrite_two_headers (adj0[0], adj1[0], @@ -1954,6 +1962,10 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, vnet_feature_arc_start (lm->output_feature_arc_index, tx_sw_if_index0, &next0, p0); } + else + { + p0->error = error_node->errors[error0]; + } if (is_midchain) { @@ -1969,8 +1981,6 @@ ip6_rewrite_inline_with_gso (vlib_main_t * vm, (u8 *) ip0); } - p0->error = error_node->errors[error0]; - from += 1; n_left_from -= 1; to_next += 1; |