93 #ifndef RTE_EFD_VALUE_NUM_BITS
94 #define RTE_EFD_VALUE_NUM_BITS (8)
119 #define EFD_TARGET_GROUP_NUM_RULES (22)
120 #define EFD_MAX_GROUP_NUM_RULES (28LU)
122 #define EFD_MIN_BALANCED_NUM_RULES 5
127 #ifndef RTE_EFD_BURST_MAX
128 #define RTE_EFD_BURST_MAX (32)
132 #define RTE_EFD_NAMESIZE 32
134 #if (RTE_EFD_VALUE_NUM_BITS > 0 && RTE_EFD_VALUE_NUM_BITS <= 8)
135 typedef uint8_t efd_value_t;
136 #elif (RTE_EFD_VALUE_NUM_BITS > 8 && RTE_EFD_VALUE_NUM_BITS <= 16)
137 typedef uint16_t efd_value_t;
138 #elif (RTE_EFD_VALUE_NUM_BITS > 16 && RTE_EFD_VALUE_NUM_BITS <= 32)
139 typedef uint32_t efd_value_t;
141 #error("RTE_EFD_VALUE_NUM_BITS must be in the range [1:32]")
144 #define EFD_LOOKUPTBL_SHIFT (32 - 4)
145 typedef uint16_t efd_lookuptbl_t;
146 typedef uint16_t efd_hashfunc_t;
169 struct rte_efd_table *
170 rte_efd_create(
const char *name, uint32_t max_num_rules, uint32_t key_len,
171 uint8_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket);
192 struct rte_efd_table*
195 #define RTE_EFD_UPDATE_WARN_GROUP_FULL (1)
196 #define RTE_EFD_UPDATE_NO_CHANGE (2)
197 #define RTE_EFD_UPDATE_FAILED (3)
229 rte_efd_update(
struct rte_efd_table *table,
unsigned int socket_id,
230 const void *key, efd_value_t value);
251 rte_efd_delete(
struct rte_efd_table *table,
unsigned int socket_id,
252 const void *key, efd_value_t *prev_value);
275 rte_efd_lookup(
const struct rte_efd_table *table,
unsigned int socket_id,
301 int num_keys,
const void **key_list,
302 efd_value_t *value_list);