vppinfra: bihash walk cb typedef and continue/stop controls
[vpp.git] / src / vnet / ip / reass / ip6_sv_reass.c
index a7f360e..0837f06 100644 (file)
@@ -546,6 +546,8 @@ ip6_sv_reassembly_inline (vlib_main_t * vm,
              next0 = IP6_SV_REASSEMBLY_NEXT_INPUT;
              goto packet_enqueue;
            }
+         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
@@ -564,8 +566,6 @@ ip6_sv_reassembly_inline (vlib_main_t * vm,
              next0 = IP6_SV_REASSEMBLY_NEXT_ICMP_ERROR;
              goto packet_enqueue;
            }
-         vnet_buffer (b0)->ip.reass.ip6_frag_hdr_offset =
-           (u8 *) frag_hdr - (u8 *) ip0;
 
          ip6_sv_reass_kv_t kv;
          u8 do_handoff = 0;
@@ -818,7 +818,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;
@@ -826,6 +826,7 @@ ip6_rehash_cb (clib_bihash_kv_48_8_t * kv, void *_ctx)
     {
       ctx->failure = 1;
     }
+  return (BIHASH_WALK_CONTINUE);
 }
 
 static void
@@ -1288,7 +1289,7 @@ ip6_sv_reass_enable_disable_with_refcnt (u32 sw_if_index, int is_enable)
                                            "ip6-sv-reassembly-feature",
                                            sw_if_index, 0, 0, 0);
     }
-  return -1;
+  return 0;
 }
 #endif