ip: reassembly: don't set error if no error
[vpp.git] / src / vnet / ip / reass / ip6_sv_reass.c
index 4426177..e026597 100644 (file)
@@ -556,12 +556,10 @@ 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;
                }
-             ASSERT (vnet_buffer (b0)->ip.save_rewrite_length < (2 << 14));
-             vnet_buffer (b0)->ip.reass.save_rewrite_length =
-               vnet_buffer (b0)->ip.save_rewrite_length;
              vnet_buffer (b0)->ip.reass.is_non_first_fragment = 0;
              next0 = IP6_SV_REASSEMBLY_NEXT_INPUT;
              if (PREDICT_FALSE (b0->flags & VLIB_BUFFER_IS_TRACED))
@@ -626,14 +624,12 @@ 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;
            }
 
          if (reass->is_complete)
            {
-             ASSERT (vnet_buffer (b0)->ip.save_rewrite_length < (2 << 14));
-             vnet_buffer (b0)->ip.reass.save_rewrite_length =
-               vnet_buffer (b0)->ip.save_rewrite_length;
              vnet_buffer (b0)->ip.reass.is_non_first_fragment =
                ! !ip6_frag_hdr_offset (frag_hdr);
              vnet_buffer (b0)->ip.reass.ip_proto = reass->ip_proto;
@@ -646,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,
@@ -686,8 +681,6 @@ ip6_sv_reassembly_inline (vlib_main_t * vm,
              break;
            }
 
-         b0->error = node->errors[error0];
-
          if (reass->is_complete)
            {
              u32 idx;
@@ -712,9 +705,6 @@ ip6_sv_reassembly_inline (vlib_main_t * vm,
                frag_hdr =
                  vlib_buffer_get_current (b0) +
                  vnet_buffer (b0)->ip.reass.ip6_frag_hdr_offset;
-               ASSERT (vnet_buffer (b0)->ip.save_rewrite_length < (2 << 14));
-               vnet_buffer (b0)->ip.reass.save_rewrite_length =
-                 vnet_buffer (b0)->ip.save_rewrite_length;
                vnet_buffer (b0)->ip.reass.is_non_first_fragment =
                  ! !ip6_frag_hdr_offset (frag_hdr);
                vnet_buffer (b0)->ip.reass.ip_proto = reass->ip_proto;
@@ -1160,8 +1150,15 @@ show_ip6_sv_reass (vlib_main_t * vm, unformat_input_t * input,
   vlib_cli_output (vm, "---------------------");
   vlib_cli_output (vm, "Current IP6 reassemblies count: %lu\n",
                   (long unsigned) sum_reass_n);
-  vlib_cli_output (vm, "Maximum configured concurrent IP6 reassemblies per "
-                  "worker-thread: %lu\n", (long unsigned) rm->max_reass_n);
+  vlib_cli_output (vm,
+                  "Maximum configured concurrent shallow virtual IP6 reassemblies per worker-thread: %lu\n",
+                  (long unsigned) rm->max_reass_n);
+  vlib_cli_output (vm,
+                  "Maximum configured shallow virtual IP6 reassembly timeout: %lums\n",
+                  (long unsigned) rm->timeout_ms);
+  vlib_cli_output (vm,
+                  "Maximum configured shallow virtual IP6 reassembly expire walk interval: %lums\n",
+                  (long unsigned) rm->expire_walk_interval_ms);
   vlib_cli_output (vm, "Buffers in use: %lu\n",
                   (long unsigned) sum_buffers_n);
   return 0;