examples/ip_pipeline: avoid hash table create failure
authorJianbo Liu <jianbo.liu@arm.com>
Fri, 27 Oct 2017 02:55:19 +0000 (10:55 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 7 Nov 2017 08:41:32 +0000 (08:41 +0000)
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@arm.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
examples/ip_pipeline/pipeline/pipeline_flow_classification_be.c
examples/ip_pipeline/pipeline/pipeline_routing_be.c

index 9846777..929d81c 100644 (file)
@@ -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,
                };
index 7aaf467..0414f24 100644 (file)
@@ -1355,7 +1355,8 @@ pipeline_routing_init(struct pipeline_params *params,
                        .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,
                };