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....@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

Reply via email to