vppinfra: bihash walk cb typedef and continue/stop controls
[vpp.git] / src / vnet / ip / reass / ip6_full_reass.c
index 4e9079d..7bcfdfc 100644 (file)
@@ -1092,6 +1092,9 @@ ip6_full_reassembly_inline (vlib_main_t * vm,
              next0 = IP6_FULL_REASSEMBLY_NEXT_INPUT;
              goto skip_reass;
            }
+         vnet_buffer (b0)->ip.reass.ip6_frag_hdr_offset =
+           (u8 *) frag_hdr - (u8 *) ip0;
+
          if (0 == ip6_frag_hdr_offset (frag_hdr))
            {
              // first fragment - verify upper-layer is present
@@ -1110,9 +1113,6 @@ ip6_full_reassembly_inline (vlib_main_t * vm,
              next0 = IP6_FULL_REASSEMBLY_NEXT_ICMP_ERROR;
              goto skip_reass;
            }
-         vnet_buffer (b0)->ip.reass.ip6_frag_hdr_offset =
-           (u8 *) frag_hdr - (u8 *) ip0;
-
          ip6_full_reass_kv_t kv;
          u8 do_handoff = 0;
 
@@ -1349,7 +1349,7 @@ typedef struct
   clib_bihash_48_8_t *new_hash;
 } ip6_rehash_cb_ctx;
 
-static void
+static int
 ip6_rehash_cb (clib_bihash_kv_48_8_t * kv, void *_ctx)
 {
   ip6_rehash_cb_ctx *ctx = _ctx;
@@ -1357,6 +1357,7 @@ ip6_rehash_cb (clib_bihash_kv_48_8_t * kv, void *_ctx)
     {
       ctx->failure = 1;
     }
+  return (BIHASH_WALK_CONTINUE);
 }
 
 static void