table: add unified params struct and mask-based hash func
[dpdk.git] / lib / librte_table / rte_table_hash_key8.c
index 5f05903..4fbb02e 100644 (file)
@@ -83,7 +83,7 @@ struct rte_table_hash {
        uint32_t signature_offset;
        uint32_t key_offset;
        uint64_t key_mask;
-       rte_table_hash_op_hash f_hash;
+       rte_table_hash_op_hash_nomask f_hash;
        uint64_t seed;
 
        /* Extendible buckets */
@@ -125,7 +125,7 @@ rte_table_hash_create_key8_lru(void *params, int socket_id, uint32_t entry_size)
        /* Check input parameters */
        if ((check_params_create_lru(p) != 0) ||
                ((sizeof(struct rte_table_hash) % RTE_CACHE_LINE_SIZE) != 0) ||
-               ((sizeof(struct rte_bucket_4_8) % RTE_CACHE_LINE_SIZE) != 0)) {
+               ((sizeof(struct rte_bucket_4_8) % 64) != 0)) {
                return NULL;
        }
        n_entries_per_bucket = 4;
@@ -180,7 +180,7 @@ rte_table_hash_create_key8_lru(void *params, int socket_id, uint32_t entry_size)
 static int
 rte_table_hash_free_key8_lru(void *table)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
 
        /* Check input parameters */
        if (f == NULL) {
@@ -200,7 +200,7 @@ rte_table_hash_entry_add_key8_lru(
        int *key_found,
        void **entry_ptr)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
        struct rte_bucket_4_8 *bucket;
        uint64_t signature, mask, pos;
        uint32_t bucket_index, i;
@@ -263,7 +263,7 @@ rte_table_hash_entry_delete_key8_lru(
        int *key_found,
        void *entry)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
        struct rte_bucket_4_8 *bucket;
        uint64_t signature, mask;
        uint32_t bucket_index, i;
@@ -332,7 +332,7 @@ rte_table_hash_create_key8_ext(void *params, int socket_id, uint32_t entry_size)
        /* Check input parameters */
        if ((check_params_create_ext(p) != 0) ||
                ((sizeof(struct rte_table_hash) % RTE_CACHE_LINE_SIZE) != 0) ||
-               ((sizeof(struct rte_bucket_4_8) % RTE_CACHE_LINE_SIZE) != 0))
+               ((sizeof(struct rte_bucket_4_8) % 64) != 0))
                return NULL;
 
        n_entries_per_bucket = 4;
@@ -392,7 +392,7 @@ rte_table_hash_create_key8_ext(void *params, int socket_id, uint32_t entry_size)
 static int
 rte_table_hash_free_key8_ext(void *table)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
 
        /* Check input parameters */
        if (f == NULL) {
@@ -412,7 +412,7 @@ rte_table_hash_entry_add_key8_ext(
        int *key_found,
        void **entry_ptr)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
        struct rte_bucket_4_8 *bucket0, *bucket, *bucket_prev;
        uint64_t signature;
        uint32_t bucket_index, i;
@@ -493,7 +493,7 @@ rte_table_hash_entry_delete_key8_ext(
        int *key_found,
        void *entry)
 {
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
+       struct rte_table_hash *f = table;
        struct rte_bucket_4_8 *bucket0, *bucket, *bucket_prev;
        uint64_t signature;
        uint32_t bucket_index, i;
@@ -568,31 +568,20 @@ rte_table_hash_entry_delete_key8_ext(
                pos = 3;                                        \
 }
 
-#define lookup1_stage0(pkt0_index, mbuf0, pkts, pkts_mask)     \
+#define lookup1_stage0(pkt0_index, mbuf0, pkts, pkts_mask, f)  \
 {                                                              \
        uint64_t pkt_mask;                                      \
+       uint32_t key_offset = f->key_offset;\
                                                                \
        pkt0_index = __builtin_ctzll(pkts_mask);                \
        pkt_mask = 1LLU << pkt0_index;                          \
        pkts_mask &= ~pkt_mask;                                 \
                                                                \
        mbuf0 = pkts[pkt0_index];                               \
-       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf0, 0));   \
+       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf0, key_offset));  \
 }
 
 #define lookup1_stage1(mbuf1, bucket1, f)                      \
-{                                                              \
-       uint64_t signature;                                     \
-       uint32_t bucket_index;                                  \
-                                                               \
-       signature = RTE_MBUF_METADATA_UINT32(mbuf1, f->signature_offset);\
-       bucket_index = signature & (f->n_buckets - 1);          \
-       bucket1 = (struct rte_bucket_4_8 *)                     \
-               &f->memory[bucket_index * f->bucket_size];      \
-       rte_prefetch0(bucket1);                                 \
-}
-
-#define lookup1_stage1_dosig(mbuf1, bucket1, f)                        \
 {                                                              \
        uint64_t *key;                                          \
        uint64_t signature;                                     \
@@ -693,36 +682,38 @@ rte_table_hash_entry_delete_key8_ext(
 }
 
 #define lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01,\
-       pkts, pkts_mask)                                        \
+       pkts, pkts_mask, f)                                     \
 {                                                              \
        uint64_t pkt00_mask, pkt01_mask;                        \
+       uint32_t key_offset = f->key_offset;            \
                                                                \
        pkt00_index = __builtin_ctzll(pkts_mask);               \
        pkt00_mask = 1LLU << pkt00_index;                       \
        pkts_mask &= ~pkt00_mask;                               \
                                                                \
        mbuf00 = pkts[pkt00_index];                             \
-       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, 0));  \
+       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
                                                                \
        pkt01_index = __builtin_ctzll(pkts_mask);               \
        pkt01_mask = 1LLU << pkt01_index;                       \
        pkts_mask &= ~pkt01_mask;                               \
                                                                \
        mbuf01 = pkts[pkt01_index];                             \
-       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01, 0));  \
+       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01, key_offset));\
 }
 
 #define lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,\
-       mbuf00, mbuf01, pkts, pkts_mask)                        \
+       mbuf00, mbuf01, pkts, pkts_mask, f)                     \
 {                                                              \
        uint64_t pkt00_mask, pkt01_mask;                        \
+       uint32_t key_offset = f->key_offset;            \
                                                                \
        pkt00_index = __builtin_ctzll(pkts_mask);               \
        pkt00_mask = 1LLU << pkt00_index;                       \
        pkts_mask &= ~pkt00_mask;                               \
                                                                \
        mbuf00 = pkts[pkt00_index];                             \
-       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, 0));  \
+       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf00, key_offset));\
                                                                \
        pkt01_index = __builtin_ctzll(pkts_mask);               \
        if (pkts_mask == 0)                                     \
@@ -732,35 +723,17 @@ rte_table_hash_entry_delete_key8_ext(
        pkts_mask &= ~pkt01_mask;                               \
                                                                \
        mbuf01 = pkts[pkt01_index];                             \
-       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01, 0));  \
+       rte_prefetch0(RTE_MBUF_METADATA_UINT8_PTR(mbuf01, key_offset));\
 }
 
-#define lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f)  \
-{                                                              \
-       uint64_t signature10, signature11;                      \
-       uint32_t bucket10_index, bucket11_index;                \
-                                                               \
-       signature10 = RTE_MBUF_METADATA_UINT32(mbuf10, f->signature_offset);\
-       bucket10_index = signature10 & (f->n_buckets - 1);      \
-       bucket10 = (struct rte_bucket_4_8 *)                    \
-               &f->memory[bucket10_index * f->bucket_size];    \
-       rte_prefetch0(bucket10);                                \
-                                                               \
-       signature11 = RTE_MBUF_METADATA_UINT32(mbuf11, f->signature_offset);\
-       bucket11_index = signature11 & (f->n_buckets - 1);      \
-       bucket11 = (struct rte_bucket_4_8 *)                    \
-               &f->memory[bucket11_index * f->bucket_size];    \
-       rte_prefetch0(bucket11);                                \
-}
-
-#define lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f)\
+#define lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f)\
 {                                                              \
        uint64_t *key10, *key11;                                \
        uint64_t hash_offset_buffer10;                          \
        uint64_t hash_offset_buffer11;                          \
        uint64_t signature10, signature11;                      \
        uint32_t bucket10_index, bucket11_index;                \
-       rte_table_hash_op_hash f_hash = f->f_hash;              \
+       rte_table_hash_op_hash_nomask f_hash = f->f_hash;               \
        uint64_t seed = f->seed;                                \
        uint32_t key_offset = f->key_offset;                    \
                                                                \
@@ -868,8 +841,8 @@ rte_table_hash_lookup_key8_lru(
        struct rte_table_hash *f = (struct rte_table_hash *) table;
        struct rte_bucket_4_8 *bucket10, *bucket11, *bucket20, *bucket21;
        struct rte_mbuf *mbuf00, *mbuf01, *mbuf10, *mbuf11, *mbuf20, *mbuf21;
-       uint32_t pkt00_index, pkt01_index, pkt10_index,
-                       pkt11_index, pkt20_index, pkt21_index;
+       uint32_t pkt00_index, pkt01_index, pkt10_index;
+       uint32_t pkt11_index, pkt20_index, pkt21_index;
        uint64_t pkts_mask_out = 0;
 
        __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
@@ -882,10 +855,10 @@ rte_table_hash_lookup_key8_lru(
                        struct rte_mbuf *mbuf;
                        uint32_t pkt_index;
 
-                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
+                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask, f);
                        lookup1_stage1(mbuf, bucket, f);
                        lookup1_stage2_lru(pkt_index, mbuf, bucket,
-                                       pkts_mask_out, entries, f);
+                               pkts_mask_out, entries, f);
                }
 
                *lookup_hit_mask = pkts_mask_out;
@@ -899,7 +872,7 @@ rte_table_hash_lookup_key8_lru(
         */
        /* Pipeline stage 0 */
        lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
+               pkts_mask, f);
 
        /* Pipeline feed */
        mbuf10 = mbuf00;
@@ -909,7 +882,7 @@ rte_table_hash_lookup_key8_lru(
 
        /* Pipeline stage 0 */
        lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
+               pkts_mask, f);
 
        /* Pipeline stage 1 */
        lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@ -933,7 +906,7 @@ rte_table_hash_lookup_key8_lru(
 
                /* Pipeline stage 0 */
                lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
-                       mbuf00, mbuf01, pkts, pkts_mask);
+                       mbuf00, mbuf01, pkts, pkts_mask, f);
 
                /* Pipeline stage 1 */
                lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@ -983,132 +956,6 @@ rte_table_hash_lookup_key8_lru(
        return 0;
 } /* rte_table_hash_lookup_key8_lru() */
 
-static int
-rte_table_hash_lookup_key8_lru_dosig(
-       void *table,
-       struct rte_mbuf **pkts,
-       uint64_t pkts_mask,
-       uint64_t *lookup_hit_mask,
-       void **entries)
-{
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
-       struct rte_bucket_4_8 *bucket10, *bucket11, *bucket20, *bucket21;
-       struct rte_mbuf *mbuf00, *mbuf01, *mbuf10, *mbuf11, *mbuf20, *mbuf21;
-       uint32_t pkt00_index, pkt01_index, pkt10_index;
-       uint32_t pkt11_index, pkt20_index, pkt21_index;
-       uint64_t pkts_mask_out = 0;
-
-       __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
-       RTE_TABLE_HASH_KEY8_STATS_PKTS_IN_ADD(f, n_pkts_in);
-
-       /* Cannot run the pipeline with less than 5 packets */
-       if (__builtin_popcountll(pkts_mask) < 5) {
-               for ( ; pkts_mask; ) {
-                       struct rte_bucket_4_8 *bucket;
-                       struct rte_mbuf *mbuf;
-                       uint32_t pkt_index;
-
-                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
-                       lookup1_stage1_dosig(mbuf, bucket, f);
-                       lookup1_stage2_lru(pkt_index, mbuf, bucket,
-                               pkts_mask_out, entries, f);
-               }
-
-               *lookup_hit_mask = pkts_mask_out;
-               RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
-               return 0;
-       }
-
-       /*
-        * Pipeline fill
-        *
-        */
-       /* Pipeline stage 0 */
-       lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
-
-       /* Pipeline feed */
-       mbuf10 = mbuf00;
-       mbuf11 = mbuf01;
-       pkt10_index = pkt00_index;
-       pkt11_index = pkt01_index;
-
-       /* Pipeline stage 0 */
-       lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
-
-       /* Pipeline stage 1 */
-       lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-       /*
-        * Pipeline run
-        *
-        */
-       for ( ; pkts_mask; ) {
-               /* Pipeline feed */
-               bucket20 = bucket10;
-               bucket21 = bucket11;
-               mbuf20 = mbuf10;
-               mbuf21 = mbuf11;
-               mbuf10 = mbuf00;
-               mbuf11 = mbuf01;
-               pkt20_index = pkt10_index;
-               pkt21_index = pkt11_index;
-               pkt10_index = pkt00_index;
-               pkt11_index = pkt01_index;
-
-               /* Pipeline stage 0 */
-               lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
-                       mbuf00, mbuf01, pkts, pkts_mask);
-
-               /* Pipeline stage 1 */
-               lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-               /* Pipeline stage 2 */
-               lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
-                       bucket20, bucket21, pkts_mask_out, entries, f);
-       }
-
-       /*
-        * Pipeline flush
-        *
-        */
-       /* Pipeline feed */
-       bucket20 = bucket10;
-       bucket21 = bucket11;
-       mbuf20 = mbuf10;
-       mbuf21 = mbuf11;
-       mbuf10 = mbuf00;
-       mbuf11 = mbuf01;
-       pkt20_index = pkt10_index;
-       pkt21_index = pkt11_index;
-       pkt10_index = pkt00_index;
-       pkt11_index = pkt01_index;
-
-       /* Pipeline stage 1 */
-       lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-       /* Pipeline stage 2 */
-       lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
-               bucket20, bucket21, pkts_mask_out, entries, f);
-
-       /* Pipeline feed */
-       bucket20 = bucket10;
-       bucket21 = bucket11;
-       mbuf20 = mbuf10;
-       mbuf21 = mbuf11;
-       pkt20_index = pkt10_index;
-       pkt21_index = pkt11_index;
-
-       /* Pipeline stage 2 */
-       lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
-               bucket20, bucket21, pkts_mask_out, entries, f);
-
-       *lookup_hit_mask = pkts_mask_out;
-       RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
-       return 0;
-} /* rte_table_hash_lookup_key8_lru_dosig() */
-
 static int
 rte_table_hash_lookup_key8_ext(
        void *table,
@@ -1136,11 +983,11 @@ rte_table_hash_lookup_key8_ext(
                        struct rte_mbuf *mbuf;
                        uint32_t pkt_index;
 
-                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
+                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask, f);
                        lookup1_stage1(mbuf, bucket, f);
                        lookup1_stage2_ext(pkt_index, mbuf, bucket,
-                               pkts_mask_out, entries, buckets_mask, buckets,
-                               keys, f);
+                               pkts_mask_out, entries, buckets_mask,
+                               buckets, keys, f);
                }
 
                goto grind_next_buckets;
@@ -1152,7 +999,7 @@ rte_table_hash_lookup_key8_ext(
         */
        /* Pipeline stage 0 */
        lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
+               pkts_mask, f);
 
        /* Pipeline feed */
        mbuf10 = mbuf00;
@@ -1162,7 +1009,7 @@ rte_table_hash_lookup_key8_ext(
 
        /* Pipeline stage 0 */
        lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
+               pkts_mask, f);
 
        /* Pipeline stage 1 */
        lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@ -1186,7 +1033,7 @@ rte_table_hash_lookup_key8_ext(
 
                /* Pipeline stage 0 */
                lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
-                       mbuf00, mbuf01, pkts, pkts_mask);
+                       mbuf00, mbuf01, pkts, pkts_mask, f);
 
                /* Pipeline stage 1 */
                lookup2_stage1(mbuf10, mbuf11, bucket10, bucket11, f);
@@ -1259,160 +1106,10 @@ grind_next_buckets:
        return 0;
 } /* rte_table_hash_lookup_key8_ext() */
 
-static int
-rte_table_hash_lookup_key8_ext_dosig(
-       void *table,
-       struct rte_mbuf **pkts,
-       uint64_t pkts_mask,
-       uint64_t *lookup_hit_mask,
-       void **entries)
-{
-       struct rte_table_hash *f = (struct rte_table_hash *) table;
-       struct rte_bucket_4_8 *bucket10, *bucket11, *bucket20, *bucket21;
-       struct rte_mbuf *mbuf00, *mbuf01, *mbuf10, *mbuf11, *mbuf20, *mbuf21;
-       uint32_t pkt00_index, pkt01_index, pkt10_index;
-       uint32_t pkt11_index, pkt20_index, pkt21_index;
-       uint64_t pkts_mask_out = 0, buckets_mask = 0;
-       struct rte_bucket_4_8 *buckets[RTE_PORT_IN_BURST_SIZE_MAX];
-       uint64_t *keys[RTE_PORT_IN_BURST_SIZE_MAX];
-
-       __rte_unused uint32_t n_pkts_in = __builtin_popcountll(pkts_mask);
-       RTE_TABLE_HASH_KEY8_STATS_PKTS_IN_ADD(f, n_pkts_in);
-
-       /* Cannot run the pipeline with less than 5 packets */
-       if (__builtin_popcountll(pkts_mask) < 5) {
-               for ( ; pkts_mask; ) {
-                       struct rte_bucket_4_8 *bucket;
-                       struct rte_mbuf *mbuf;
-                       uint32_t pkt_index;
-
-                       lookup1_stage0(pkt_index, mbuf, pkts, pkts_mask);
-                       lookup1_stage1_dosig(mbuf, bucket, f);
-                       lookup1_stage2_ext(pkt_index, mbuf, bucket,
-                               pkts_mask_out, entries, buckets_mask,
-                               buckets, keys, f);
-               }
-
-               goto grind_next_buckets;
-       }
-
-       /*
-        * Pipeline fill
-        *
-        */
-       /* Pipeline stage 0 */
-       lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
-
-       /* Pipeline feed */
-       mbuf10 = mbuf00;
-       mbuf11 = mbuf01;
-       pkt10_index = pkt00_index;
-       pkt11_index = pkt01_index;
-
-       /* Pipeline stage 0 */
-       lookup2_stage0(pkt00_index, pkt01_index, mbuf00, mbuf01, pkts,
-               pkts_mask);
-
-       /* Pipeline stage 1 */
-       lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-       /*
-        * Pipeline run
-        *
-        */
-       for ( ; pkts_mask; ) {
-               /* Pipeline feed */
-               bucket20 = bucket10;
-               bucket21 = bucket11;
-               mbuf20 = mbuf10;
-               mbuf21 = mbuf11;
-               mbuf10 = mbuf00;
-               mbuf11 = mbuf01;
-               pkt20_index = pkt10_index;
-               pkt21_index = pkt11_index;
-               pkt10_index = pkt00_index;
-               pkt11_index = pkt01_index;
-
-               /* Pipeline stage 0 */
-               lookup2_stage0_with_odd_support(pkt00_index, pkt01_index,
-                       mbuf00, mbuf01, pkts, pkts_mask);
-
-               /* Pipeline stage 1 */
-               lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-               /* Pipeline stage 2 */
-               lookup2_stage2_ext(pkt20_index, pkt21_index, mbuf20, mbuf21,
-                       bucket20, bucket21, pkts_mask_out, entries,
-                       buckets_mask, buckets, keys, f);
-       }
-
-       /*
-        * Pipeline flush
-        *
-        */
-       /* Pipeline feed */
-       bucket20 = bucket10;
-       bucket21 = bucket11;
-       mbuf20 = mbuf10;
-       mbuf21 = mbuf11;
-       mbuf10 = mbuf00;
-       mbuf11 = mbuf01;
-       pkt20_index = pkt10_index;
-       pkt21_index = pkt11_index;
-       pkt10_index = pkt00_index;
-       pkt11_index = pkt01_index;
-
-       /* Pipeline stage 1 */
-       lookup2_stage1_dosig(mbuf10, mbuf11, bucket10, bucket11, f);
-
-       /* Pipeline stage 2 */
-       lookup2_stage2_ext(pkt20_index, pkt21_index, mbuf20, mbuf21,
-               bucket20, bucket21, pkts_mask_out, entries,
-               buckets_mask, buckets, keys, f);
-
-       /* Pipeline feed */
-       bucket20 = bucket10;
-       bucket21 = bucket11;
-       mbuf20 = mbuf10;
-       mbuf21 = mbuf11;
-       pkt20_index = pkt10_index;
-       pkt21_index = pkt11_index;
-
-       /* Pipeline stage 2 */
-       lookup2_stage2_ext(pkt20_index, pkt21_index, mbuf20, mbuf21,
-               bucket20, bucket21, pkts_mask_out, entries,
-               buckets_mask, buckets, keys, f);
-
-grind_next_buckets:
-       /* Grind next buckets */
-       for ( ; buckets_mask; ) {
-               uint64_t buckets_mask_next = 0;
-
-               for ( ; buckets_mask; ) {
-                       uint64_t pkt_mask;
-                       uint32_t pkt_index;
-
-                       pkt_index = __builtin_ctzll(buckets_mask);
-                       pkt_mask = 1LLU << pkt_index;
-                       buckets_mask &= ~pkt_mask;
-
-                       lookup_grinder(pkt_index, buckets, keys, pkts_mask_out,
-                               entries, buckets_mask_next, f);
-               }
-
-               buckets_mask = buckets_mask_next;
-       }
-
-       *lookup_hit_mask = pkts_mask_out;
-       RTE_TABLE_HASH_KEY8_STATS_PKTS_LOOKUP_MISS(f, n_pkts_in - __builtin_popcountll(pkts_mask_out));
-       return 0;
-} /* rte_table_hash_lookup_key8_dosig_ext() */
-
 static int
 rte_table_hash_key8_stats_read(void *table, struct rte_table_stats *stats, int clear)
 {
-       struct rte_table_hash *t = (struct rte_table_hash *) table;
+       struct rte_table_hash *t = table;
 
        if (stats != NULL)
                memcpy(stats, &t->stats, sizeof(t->stats));
@@ -1434,17 +1131,6 @@ struct rte_table_ops rte_table_hash_key8_lru_ops = {
        .f_stats = rte_table_hash_key8_stats_read,
 };
 
-struct rte_table_ops rte_table_hash_key8_lru_dosig_ops = {
-       .f_create = rte_table_hash_create_key8_lru,
-       .f_free = rte_table_hash_free_key8_lru,
-       .f_add = rte_table_hash_entry_add_key8_lru,
-       .f_delete = rte_table_hash_entry_delete_key8_lru,
-       .f_add_bulk = NULL,
-       .f_delete_bulk = NULL,
-       .f_lookup = rte_table_hash_lookup_key8_lru_dosig,
-       .f_stats = rte_table_hash_key8_stats_read,
-};
-
 struct rte_table_ops rte_table_hash_key8_ext_ops = {
        .f_create = rte_table_hash_create_key8_ext,
        .f_free = rte_table_hash_free_key8_ext,
@@ -1455,14 +1141,3 @@ struct rte_table_ops rte_table_hash_key8_ext_ops = {
        .f_lookup = rte_table_hash_lookup_key8_ext,
        .f_stats = rte_table_hash_key8_stats_read,
 };
-
-struct rte_table_ops rte_table_hash_key8_ext_dosig_ops = {
-       .f_create = rte_table_hash_create_key8_ext,
-       .f_free = rte_table_hash_free_key8_ext,
-       .f_add = rte_table_hash_entry_add_key8_ext,
-       .f_delete = rte_table_hash_entry_delete_key8_ext,
-       .f_add_bulk = NULL,
-       .f_delete_bulk = NULL,
-       .f_lookup = rte_table_hash_lookup_key8_ext_dosig,
-       .f_stats = rte_table_hash_key8_stats_read,
-};