table: remove deprecated 16-byte key hash tables
[dpdk.git] / lib / librte_table / rte_table_hash.h
index 9181942..57c6073 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -196,14 +196,13 @@ struct rte_table_hash_key8_lru_params {
 
        /** Byte offset within packet meta-data where the key is located */
        uint32_t key_offset;
+
+       /** Bit-mask to be AND-ed to the key on lookup */
+       uint8_t *key_mask;
 };
 
-/** LRU hash table operations for pre-computed key signature */
 extern struct rte_table_ops rte_table_hash_key8_lru_ops;
 
-/** LRU hash table operations for key signature computed on lookup ("do-sig") */
-extern struct rte_table_ops rte_table_hash_key8_lru_dosig_ops;
-
 /** Extendible bucket hash table parameters */
 struct rte_table_hash_key8_ext_params {
        /** Maximum number of entries (and keys) in the table */
@@ -226,15 +225,13 @@ struct rte_table_hash_key8_ext_params {
 
        /** Byte offset within packet meta-data where the key is located */
        uint32_t key_offset;
+
+       /** Bit-mask to be AND-ed to the key on lookup */
+       uint8_t *key_mask;
 };
 
-/** Extendible bucket hash table operations for pre-computed key signature */
 extern struct rte_table_ops rte_table_hash_key8_ext_ops;
 
-/** Extendible bucket hash table operations for key signature computed on
-    lookup ("do-sig") */
-extern struct rte_table_ops rte_table_hash_key8_ext_dosig_ops;
-
 /**
  * 16-byte key hash tables
  *
@@ -257,9 +254,11 @@ struct rte_table_hash_key16_lru_params {
 
        /** Byte offset within packet meta-data where the key is located */
        uint32_t key_offset;
+
+       /** Bit-mask to be AND-ed to the key on lookup */
+       uint8_t *key_mask;
 };
 
-/** LRU hash table operations for pre-computed key signature */
 extern struct rte_table_ops rte_table_hash_key16_lru_ops;
 
 /** Extendible bucket hash table parameters */
@@ -284,9 +283,11 @@ struct rte_table_hash_key16_ext_params {
 
        /** Byte offset within packet meta-data where the key is located */
        uint32_t key_offset;
+
+       /** Bit-mask to be AND-ed to the key on lookup */
+       uint8_t *key_mask;
 };
 
-/** Extendible bucket operations for pre-computed key signature */
 extern struct rte_table_ops rte_table_hash_key16_ext_ops;
 
 /**
@@ -343,6 +344,35 @@ struct rte_table_hash_key32_ext_params {
 /** Extendible bucket hash table operations */
 extern struct rte_table_ops rte_table_hash_key32_ext_ops;
 
+/** Cuckoo hash table parameters */
+struct rte_table_hash_cuckoo_params {
+    /** Key size (number of bytes */
+               uint32_t key_size;
+
+       /** Maximum number of hash table entries */
+       uint32_t n_keys;
+
+       /** Hash function used to calculate hash */
+       rte_table_hash_op_hash f_hash;
+
+       /** Seed value or Init value used by f_hash */
+       uint32_t seed;
+
+       /** Byte offset within packet meta-data where the 4-byte key signature
+       is located. Valid for pre-computed key signature tables, ignored for
+       do-sig tables. */
+       uint32_t signature_offset;
+
+       /** Byte offset within packet meta-data where the key is located */
+       uint32_t key_offset;
+
+       /** Hash table name */
+       const char *name;
+};
+
+/** Cuckoo hash table operations */
+extern struct rte_table_ops rte_table_hash_cuckoo_dosig_ops;
+
 #ifdef __cplusplus
 }
 #endif