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