| rte_efd.h(3) | Library Functions Manual | rte_efd.h(3) |
rte_efd.h
#include <stdint.h>
#define RTE_EFD_VALUE_NUM_BITS (8)
#define RTE_EFD_BURST_MAX (32)
#define RTE_EFD_NAMESIZE 32
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)
void rte_efd_free (struct rte_efd_table *table)
struct rte_efd_table * rte_efd_find_existing (const char *name)
int rte_efd_update (struct rte_efd_table *table, unsigned int
socket_id, const void *key, efd_value_t value)
int rte_efd_delete (struct rte_efd_table *table, unsigned int
socket_id, const void *key, efd_value_t *prev_value)
efd_value_t rte_efd_lookup (const struct rte_efd_table *table, unsigned
int socket_id, const void *key)
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)
RTE EFD Table
Definition in file rte_efd.h.
!!! This parameter should be adjusted for your application !!!
This parameter adjusts the number of bits of value that can be stored in the table. For example, setting the number of bits to 3 will allow storing 8 values in the table (between 0 and 7).
This number directly affects the performance of both lookups and insertion. In general, performance decreases as more bits are stored in the table.
This number is directly proportional to the size of the online region used for lookups.
Note that due to the way the CPU operates on memory, best lookup performance will be achieved when RTE_EFD_VALUE_NUM_BITS is a multiple of 8. These values align the hash indexes on 16-byte boundaries. The greatest performance drop is moving from 8->9 bits, 16->17 bits, etc.
This value must be between 1 and 32
Definition at line 65 of file rte_efd.h.
Maximum number of keys that can be looked up in one call to efd_lookup_bulk
Definition at line 99 of file rte_efd.h.
Maximum number of characters in efd name.
Definition at line 103 of file rte_efd.h.
Creates an EFD table with a single offline region and multiple per-socket internally-managed copies of the online table used for lookups
Parameters
Returns
Releases the resources from an EFD table
Parameters
Find an existing EFD table object and return a pointer to it.
Parameters
Returns
Computes an updated table entry for the supplied key/value pair. The update is then immediately applied to the provided table and all socket-local copies of the chunks are updated. This operation is not multi-thread safe and should only be called one from thread.
Parameters
Returns
Removes any value currently associated with the specified key from the table This operation is not multi-thread safe and should only be called from one thread.
Parameters
Returns
Looks up the value associated with a key This operation is multi-thread safe.
NOTE: Lookups will always succeed - this is a property of using a perfect hash table. If the specified key was never inserted, a pseudorandom answer will be returned. There is no way to know based on the lookup if the key was ever inserted originally, so this must be tracked elsewhere.
Parameters
Returns
Looks up the value associated with several keys. This operation is multi-thread safe.
NOTE: Lookups will always succeed - this is a property of using a perfect hash table. If the specified key was never inserted, a pseudorandom answer will be returned. There is no way to know based on the lookup if the key was ever inserted originally, so this must be tracked elsewhere.
Parameters
Generated automatically by Doxygen for DPDK from the source code.
| Version 24.11.3 | DPDK |