void *entry_ptr;
int key_found;
- /* Create */
- struct rte_table_array_params array_params;
+ /* Initialize params and create tables */
+ struct rte_table_array_params array_params = {
+ .n_entries = 7,
+ .offset = 1
+ };
table = rte_table_array_ops.f_create(NULL, 0, 1);
if (table != NULL)
int key_found;
uint32_t entry_size = 1;
- /* Create */
- struct rte_table_lpm_params lpm_params;
+ /* Initialize params and create tables */
+ struct rte_table_lpm_params lpm_params = {
+ .n_rules = 1 << 24,
+ .entry_unique_size = entry_size,
+ .offset = 1
+ };
table = rte_table_lpm_ops.f_create(NULL, 0, entry_size);
if (table != NULL)
return -2;
lpm_params.n_rules = 1 << 24;
- lpm_params.offset = 1;
-
- table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size);
- if (table != NULL)
- return -3;
-
lpm_params.offset = 32;
lpm_params.entry_unique_size = 0;
table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size);
if (table != NULL)
- return -4;
+ return -3;
lpm_params.entry_unique_size = entry_size + 1;
table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size);
if (table != NULL)
- return -5;
+ return -4;
lpm_params.entry_unique_size = entry_size;
table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size);
if (table == NULL)
- return -6;
+ return -5;
/* Free */
status = rte_table_lpm_ops.f_free(table);
if (status < 0)
- return -7;
+ return -6;
status = rte_table_lpm_ops.f_free(NULL);
if (status == 0)
- return -8;
+ return -7;
/* Add */
struct rte_table_lpm_key lpm_key;
table = rte_table_lpm_ops.f_create(&lpm_params, 0, 1);
if (table == NULL)
- return -9;
+ return -8;
status = rte_table_lpm_ops.f_add(NULL, &lpm_key, &entry, &key_found,
&entry_ptr);
if (status == 0)
- return -10;
+ return -9;
status = rte_table_lpm_ops.f_add(table, NULL, &entry, &key_found,
&entry_ptr);
if (status == 0)
- return -11;
+ return -10;
status = rte_table_lpm_ops.f_add(table, &lpm_key, NULL, &key_found,
&entry_ptr);
if (status == 0)
- return -12;
+ return -11;
lpm_key.depth = 0;
status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found,
&entry_ptr);
if (status == 0)
- return -13;
+ return -12;
lpm_key.depth = 33;
status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found,
&entry_ptr);
if (status == 0)
- return -14;
+ return -13;
lpm_key.depth = 16;
status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found,
&entry_ptr);
if (status != 0)
- return -15;
+ return -14;
/* Delete */
status = rte_table_lpm_ops.f_delete(NULL, &lpm_key, &key_found, NULL);
if (status == 0)
- return -16;
+ return -15;
status = rte_table_lpm_ops.f_delete(table, NULL, &key_found, NULL);
if (status == 0)
- return -17;
+ return -16;
lpm_key.depth = 0;
status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL);
if (status == 0)
- return -18;
+ return -17;
lpm_key.depth = 33;
status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL);
if (status == 0)
- return -19;
+ return -18;
lpm_key.depth = 16;
status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL);
if (status != 0)
- return -20;
+ return -19;
status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL);
if (status != 0)
- return -21;
+ return -20;
/* Traffic flow */
entry = 'A';
status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found,
&entry_ptr);
if (status < 0)
- return -22;
+ return -21;
for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
if (i % 2 == 0) {
rte_table_lpm_ops.f_lookup(table, mbufs, -1,
&result_mask, (void **)entries);
if (result_mask != expected_mask)
- return -21;
+ return -22;
/* Free resources */
for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++)
int key_found;
uint32_t entry_size = 1;
- /* Create */
- struct rte_table_lpm_ipv6_params lpm_params;
+ /* Initialize params and create tables */
+ struct rte_table_lpm_ipv6_params lpm_params = {
+ .n_rules = 1 << 24,
+ .number_tbl8s = 1 << 21,
+ .entry_unique_size = entry_size,
+ .offset = 32
+ };
table = rte_table_lpm_ipv6_ops.f_create(NULL, 0, entry_size);
if (table != NULL)
void *entry_ptr;
int key_found;
- /* Create */
- struct rte_table_hash_key8_lru_params hash_params;
+ /* Initialize params and create tables */
+ struct rte_table_hash_key8_lru_params hash_params = {
+ .n_entries = 1 << 10,
+ .f_hash = pipeline_test_hash,
+ .seed = 0,
+ .signature_offset = 1,
+ .key_offset = 32
+ };
hash_params.n_entries = 0;
int key_found;
void *entry_ptr;
- /* Create */
- struct rte_table_hash_key8_ext_params hash_params;
+ /* Initialize params and create tables */
+ struct rte_table_hash_key8_ext_params hash_params = {
+ .n_entries = 1 << 10,
+ .n_entries_ext = 1 << 4,
+ .f_hash = pipeline_test_hash,
+ .seed = 0,
+ .signature_offset = 1,
+ .key_offset = 32
+ };
hash_params.n_entries = 0;