[dpdk-dev] [PATCH] examples/ip_pipeline: avoid the failure of creating hash table

Jianbo Liu jianbo.liu at arm.com
Fri Oct 27 04:55:19 CEST 2017


Hash table function will check if the input bucket size is power of 2,
so the parameter should be rounded up before sending to the creating function.

Signed-off-by: Jianbo Liu <jianbo.liu at arm.com>
---
 examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c | 2 +-
 examples/ip_pipeline/pipeline/pipeline_routing_be.c             | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c b/examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c
index 9846777..929d81c 100644
--- a/examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c
+++ b/examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c
@@ -499,7 +499,7 @@ static void *pipeline_fc_init(struct pipeline_params *params,
 			.key_mask = (p_fc->key_mask_present) ?
 				p_fc->key_mask : NULL,
 			.n_keys = p_fc->n_flows,
-			.n_buckets = p_fc->n_flows / 4,
+			.n_buckets = rte_align32pow2(p_fc->n_flows / 4),
 			.f_hash = hash_func[(p_fc->key_size / 8) - 1],
 			.seed = 0,
 		};
diff --git a/examples/ip_pipeline/pipeline/pipeline_routing_be.c b/examples/ip_pipeline/pipeline/pipeline_routing_be.c
index 7aaf467..0414f24 100644
--- a/examples/ip_pipeline/pipeline/pipeline_routing_be.c
+++ b/examples/ip_pipeline/pipeline/pipeline_routing_be.c
@@ -1355,7 +1355,8 @@ struct arp_table_entry {
 			.key_offset = p_rt->params.arp_key_offset,
 			.key_mask = NULL,
 			.n_keys = p_rt->params.n_arp_entries,
-			.n_buckets = p_rt->params.n_arp_entries / 4,
+			.n_buckets =
+				rte_align32pow2(p_rt->params.n_arp_entries / 4),
 			.f_hash = hash_default_key8,
 			.seed = 0,
 		};
-- 
1.9.1



More information about the dev mailing list