64 #ifndef RTE_EFD_VALUE_NUM_BITS 65 #define RTE_EFD_VALUE_NUM_BITS (8) 90 #define EFD_TARGET_GROUP_NUM_RULES (22) 91 #define EFD_MAX_GROUP_NUM_RULES (28LU) 93 #define EFD_MIN_BALANCED_NUM_RULES 5 98 #ifndef RTE_EFD_BURST_MAX 99 #define RTE_EFD_BURST_MAX (32) 103 #define RTE_EFD_NAMESIZE 32 105 #if (RTE_EFD_VALUE_NUM_BITS > 0 && RTE_EFD_VALUE_NUM_BITS <= 8) 106 typedef uint8_t efd_value_t;
107 #elif (RTE_EFD_VALUE_NUM_BITS > 8 && RTE_EFD_VALUE_NUM_BITS <= 16) 108 typedef uint16_t efd_value_t;
109 #elif (RTE_EFD_VALUE_NUM_BITS > 16 && RTE_EFD_VALUE_NUM_BITS <= 32) 110 typedef uint32_t efd_value_t;
112 #error("RTE_EFD_VALUE_NUM_BITS must be in the range [1:32]") 115 #define EFD_LOOKUPTBL_SHIFT (32 - 4) 116 typedef uint16_t efd_lookuptbl_t;
117 typedef uint16_t efd_hashfunc_t;
140 struct rte_efd_table *
141 rte_efd_create(
const char *name, uint32_t max_num_rules, uint32_t key_len,
142 uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket);
164 struct rte_efd_table*
167 #define RTE_EFD_UPDATE_WARN_GROUP_FULL (1) 168 #define RTE_EFD_UPDATE_NO_CHANGE (2) 169 #define RTE_EFD_UPDATE_FAILED (3) 201 rte_efd_update(
struct rte_efd_table *table,
unsigned int socket_id,
202 const void *key, efd_value_t value);
223 rte_efd_delete(
struct rte_efd_table *table,
unsigned int socket_id,
224 const void *key, efd_value_t *prev_value);
247 rte_efd_lookup(
const struct rte_efd_table *table,
unsigned int socket_id,
273 int num_keys,
const void **key_list,
274 efd_value_t *value_list);
void rte_efd_lookup_bulk(const struct rte_efd_table *table, unsigned int socket_id, int num_keys, const void **key_list, efd_value_t *value_list)
int rte_efd_update(struct rte_efd_table *table, unsigned int socket_id, const void *key, efd_value_t value)
efd_value_t rte_efd_lookup(const struct rte_efd_table *table, unsigned int socket_id, const void *key)
struct rte_efd_table * rte_efd_find_existing(const char *name)
void rte_efd_free(struct rte_efd_table *table)
struct rte_efd_table * rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len, uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket)
int rte_efd_delete(struct rte_efd_table *table, unsigned int socket_id, const void *key, efd_value_t *prev_value)