diff options
Diffstat (limited to 'src/vnet/ip/reass/ip6_sv_reass.c')
-rw-r--r-- | src/vnet/ip/reass/ip6_sv_reass.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/vnet/ip/reass/ip6_sv_reass.c b/src/vnet/ip/reass/ip6_sv_reass.c index b928bb0e01f..e026597ea7b 100644 --- a/src/vnet/ip/reass/ip6_sv_reass.c +++ b/src/vnet/ip/reass/ip6_sv_reass.c @@ -556,6 +556,7 @@ ip6_sv_reassembly_inline (vlib_main_t * vm, &(vnet_buffer (b0)->ip.reass.tcp_seq_number))) { error0 = IP6_ERROR_REASS_UNSUPP_IP_PROTO; + b0->error = node->errors[error0]; next0 = IP6_SV_REASSEMBLY_NEXT_DROP; goto packet_enqueue; } @@ -623,6 +624,7 @@ ip6_sv_reassembly_inline (vlib_main_t * vm, { next0 = IP6_SV_REASSEMBLY_NEXT_DROP; error0 = IP6_ERROR_REASS_LIMIT_REACHED; + b0->error = node->errors[error0]; goto packet_enqueue; } @@ -640,7 +642,6 @@ ip6_sv_reassembly_inline (vlib_main_t * vm, vnet_buffer (b0)->ip.reass.l4_src_port = reass->l4_src_port; vnet_buffer (b0)->ip.reass.l4_dst_port = reass->l4_dst_port; next0 = IP6_SV_REASSEMBLY_NEXT_INPUT; - error0 = IP6_ERROR_NONE; if (PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED)) { ip6_sv_reass_add_trace (vm, node, rm, reass, bi0, @@ -680,8 +681,6 @@ ip6_sv_reassembly_inline (vlib_main_t * vm, break; } - b0->error = node->errors[error0]; - if (reass->is_complete) { u32 idx; |