From 5aaf45e09a76e7ba5155efcd60ed364b0024f202 Mon Sep 17 00:00:00 2001 From: Jasvinder Singh Date: Thu, 17 Sep 2015 17:03:20 +0100 Subject: [PATCH] apps: add name to LPM parameters LPM table and pipeline apps have been modified to include name parameter of the lpm table. Signed-off-by: Jasvinder Singh Acked-by: Cristian Dumitrescu --- app/test-pipeline/pipeline_lpm.c | 1 + app/test-pipeline/pipeline_lpm_ipv6.c | 1 + app/test/test_table_combined.c | 2 + app/test/test_table_tables.c | 102 ++++++++++-------- .../pipeline/pipeline_routing_be.c | 1 + 5 files changed, 64 insertions(+), 43 deletions(-) diff --git a/app/test-pipeline/pipeline_lpm.c b/app/test-pipeline/pipeline_lpm.c index b1a2c135c6..c03799cf64 100644 --- a/app/test-pipeline/pipeline_lpm.c +++ b/app/test-pipeline/pipeline_lpm.c @@ -112,6 +112,7 @@ app_main_loop_worker_pipeline_lpm(void) { /* Table configuration */ { struct rte_table_lpm_params table_lpm_params = { + .name = "LPM", .n_rules = 1 << 24, .entry_unique_size = sizeof(struct rte_pipeline_table_entry), diff --git a/app/test-pipeline/pipeline_lpm_ipv6.c b/app/test-pipeline/pipeline_lpm_ipv6.c index 3f24a2db4a..02b7a9c839 100644 --- a/app/test-pipeline/pipeline_lpm_ipv6.c +++ b/app/test-pipeline/pipeline_lpm_ipv6.c @@ -113,6 +113,7 @@ app_main_loop_worker_pipeline_lpm_ipv6(void) { /* Table configuration */ { struct rte_table_lpm_ipv6_params table_lpm_ipv6_params = { + .name = "LPM", .n_rules = 1 << 24, .number_tbl8s = 1 << 21, .entry_unique_size = diff --git a/app/test/test_table_combined.c b/app/test/test_table_combined.c index dd09da5e58..f5c7c9b3f1 100644 --- a/app/test/test_table_combined.c +++ b/app/test/test_table_combined.c @@ -293,6 +293,7 @@ test_table_lpm_combined(void) /* Traffic flow */ struct rte_table_lpm_params lpm_params = { + .name = "LPM", .n_rules = 1 << 16, .entry_unique_size = 8, .offset = 0, @@ -352,6 +353,7 @@ test_table_lpm_ipv6_combined(void) /* Traffic flow */ struct rte_table_lpm_ipv6_params lpm_ipv6_params = { + .name = "LPM", .n_rules = 1 << 16, .number_tbl8s = 1 << 13, .entry_unique_size = 8, diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c index 566964bad7..9d75fbf436 100644 --- a/app/test/test_table_tables.c +++ b/app/test/test_table_tables.c @@ -322,6 +322,7 @@ test_table_lpm(void) /* Initialize params and create tables */ struct rte_table_lpm_params lpm_params = { + .name = "LPM", .n_rules = 1 << 24, .entry_unique_size = entry_size, .offset = 1 @@ -331,40 +332,47 @@ test_table_lpm(void) if (table != NULL) return -1; - lpm_params.n_rules = 0; + lpm_params.name = NULL; table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) return -2; + lpm_params.name = "LPM"; + lpm_params.n_rules = 0; + + table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size); + if (table != NULL) + return -3; + lpm_params.n_rules = 1 << 24; 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 -3; + return -4; lpm_params.entry_unique_size = entry_size + 1; table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) - return -4; + return -5; lpm_params.entry_unique_size = entry_size; table = rte_table_lpm_ops.f_create(&lpm_params, 0, entry_size); if (table == NULL) - return -5; + return -6; /* Free */ status = rte_table_lpm_ops.f_free(table); if (status < 0) - return -6; + return -7; status = rte_table_lpm_ops.f_free(NULL); if (status == 0) - return -7; + return -8; /* Add */ struct rte_table_lpm_key lpm_key; @@ -372,75 +380,75 @@ test_table_lpm(void) table = rte_table_lpm_ops.f_create(&lpm_params, 0, 1); if (table == NULL) - return -8; + return -9; status = rte_table_lpm_ops.f_add(NULL, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -9; + return -10; status = rte_table_lpm_ops.f_add(table, NULL, &entry, &key_found, &entry_ptr); if (status == 0) - return -10; + return -11; status = rte_table_lpm_ops.f_add(table, &lpm_key, NULL, &key_found, &entry_ptr); if (status == 0) - return -11; + return -12; lpm_key.depth = 0; status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -12; + return -13; lpm_key.depth = 33; status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -13; + return -14; lpm_key.depth = 16; status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status != 0) - return -14; + return -15; /* Delete */ status = rte_table_lpm_ops.f_delete(NULL, &lpm_key, &key_found, NULL); if (status == 0) - return -15; + return -16; status = rte_table_lpm_ops.f_delete(table, NULL, &key_found, NULL); if (status == 0) - return -16; + return -17; lpm_key.depth = 0; status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status == 0) - return -17; + return -18; lpm_key.depth = 33; status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status == 0) - return -18; + return -19; lpm_key.depth = 16; status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status != 0) - return -19; + return -20; status = rte_table_lpm_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status != 0) - return -20; + return -21; /* Traffic flow */ entry = 'A'; status = rte_table_lpm_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status < 0) - return -21; + return -22; for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++) if (i % 2 == 0) { @@ -452,7 +460,7 @@ test_table_lpm(void) rte_table_lpm_ops.f_lookup(table, mbufs, -1, &result_mask, (void **)entries); if (result_mask != expected_mask) - return -22; + return -23; /* Free resources */ for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++) @@ -478,6 +486,7 @@ test_table_lpm_ipv6(void) /* Initialize params and create tables */ struct rte_table_lpm_ipv6_params lpm_params = { + .name = "LPM", .n_rules = 1 << 24, .number_tbl8s = 1 << 21, .entry_unique_size = entry_size, @@ -488,44 +497,51 @@ test_table_lpm_ipv6(void) if (table != NULL) return -1; - lpm_params.n_rules = 0; + lpm_params.name = NULL; table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) return -2; + lpm_params.name = "LPM"; + lpm_params.n_rules = 0; + + table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); + if (table != NULL) + return -3; + lpm_params.n_rules = 1 << 24; lpm_params.number_tbl8s = 0; table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) - return -2; + return -4; lpm_params.number_tbl8s = 1 << 21; lpm_params.entry_unique_size = 0; table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) - return -2; + return -5; lpm_params.entry_unique_size = entry_size + 1; table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table != NULL) - return -2; + return -6; lpm_params.entry_unique_size = entry_size; lpm_params.offset = 32; table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table == NULL) - return -3; + return -7; /* Free */ status = rte_table_lpm_ipv6_ops.f_free(table); if (status < 0) - return -4; + return -8; status = rte_table_lpm_ipv6_ops.f_free(NULL); if (status == 0) - return -5; + return -9; /* Add */ struct rte_table_lpm_ipv6_key lpm_key; @@ -537,80 +553,80 @@ test_table_lpm_ipv6(void) table = rte_table_lpm_ipv6_ops.f_create(&lpm_params, 0, entry_size); if (table == NULL) - return -6; + return -10; status = rte_table_lpm_ipv6_ops.f_add(NULL, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -7; + return -11; status = rte_table_lpm_ipv6_ops.f_add(table, NULL, &entry, &key_found, &entry_ptr); if (status == 0) - return -8; + return -12; status = rte_table_lpm_ipv6_ops.f_add(table, &lpm_key, NULL, &key_found, &entry_ptr); if (status == 0) - return -9; + return -13; lpm_key.depth = 0; status = rte_table_lpm_ipv6_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -10; + return -14; lpm_key.depth = 129; status = rte_table_lpm_ipv6_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status == 0) - return -11; + return -15; lpm_key.depth = 16; status = rte_table_lpm_ipv6_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status != 0) - return -12; + return -16; /* Delete */ status = rte_table_lpm_ipv6_ops.f_delete(NULL, &lpm_key, &key_found, NULL); if (status == 0) - return -13; + return -17; status = rte_table_lpm_ipv6_ops.f_delete(table, NULL, &key_found, NULL); if (status == 0) - return -14; + return -18; lpm_key.depth = 0; status = rte_table_lpm_ipv6_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status == 0) - return -15; + return -19; lpm_key.depth = 129; status = rte_table_lpm_ipv6_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status == 0) - return -16; + return -20; lpm_key.depth = 16; status = rte_table_lpm_ipv6_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status != 0) - return -17; + return -21; status = rte_table_lpm_ipv6_ops.f_delete(table, &lpm_key, &key_found, NULL); if (status != 0) - return -18; + return -22; /* Traffic flow */ entry = 'A'; status = rte_table_lpm_ipv6_ops.f_add(table, &lpm_key, &entry, &key_found, &entry_ptr); if (status < 0) - return -19; + return -23; for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++) if (i % 2 == 0) { @@ -622,7 +638,7 @@ test_table_lpm_ipv6(void) rte_table_lpm_ipv6_ops.f_lookup(table, mbufs, -1, &result_mask, (void **)entries); if (result_mask != expected_mask) - return -20; + return -24; /* Free resources */ for (i = 0; i < RTE_PORT_IN_BURST_SIZE_MAX; i++) diff --git a/examples/ip_pipeline/pipeline/pipeline_routing_be.c b/examples/ip_pipeline/pipeline/pipeline_routing_be.c index 1e817dd7ac..06d3e657fb 100644 --- a/examples/ip_pipeline/pipeline/pipeline_routing_be.c +++ b/examples/ip_pipeline/pipeline/pipeline_routing_be.c @@ -484,6 +484,7 @@ pipeline_routing_init(struct pipeline_params *params, p->n_tables = 1; { struct rte_table_lpm_params table_lpm_params = { + .name = p->name, .n_rules = p_rt->n_routes, .entry_unique_size = sizeof(struct routing_table_entry), .offset = p_rt->ip_da_offset, -- 2.20.1