aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_pool.c
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@nokia.com>2020-01-10 13:39:38 +0200
committerPetri Savolainen <petri.savolainen@nokia.com>2020-01-28 13:15:54 +0200
commita072a42095fdd2d7b85343007e34bc424bcf5032 (patch)
treeb4fba43fe1cb26da71bea0ef56a1d30755cb6956 /platform/linux-generic/odp_pool.c
parentf6cb2b6f9cd9c0218ec564f75a0cda543a4477ba (diff)
linux-gen: pool: set packet pool max align capa
Implement the new packet align pool parameter with minimal changes. Packet pools are aligned always to the base align, so all application requests up to that value are supported. Base align can be changed through the config file. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Stanislaw Kardach <skardach@marvell.com>
Diffstat (limited to 'platform/linux-generic/odp_pool.c')
-rw-r--r--platform/linux-generic/odp_pool.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index 5d5217aaf..e1964f840 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -503,6 +503,15 @@ static odp_pool_t pool_create(const char *name, odp_pool_param_t *params,
align = 0;
if (params->type == ODP_POOL_PACKET) {
+ uint32_t align_req = params->pkt.align;
+
+ if (align_req &&
+ (!CHECK_IS_POWER2(align_req) ||
+ align_req > _odp_pool_glb->config.pkt_base_align)) {
+ ODP_ERR("Bad align requirement\n");
+ return ODP_POOL_INVALID;
+ }
+
align = _odp_pool_glb->config.pkt_base_align;
} else {
if (params->type == ODP_POOL_BUFFER)
@@ -1106,6 +1115,7 @@ int odp_pool_capability(odp_pool_capability_t *capa)
capa->pkt.max_pools = max_pools;
capa->pkt.max_len = CONFIG_PACKET_MAX_LEN;
capa->pkt.max_num = _odp_pool_glb->config.pkt_max_num;
+ capa->pkt.max_align = _odp_pool_glb->config.pkt_base_align;
capa->pkt.min_headroom = CONFIG_PACKET_HEADROOM;
capa->pkt.max_headroom = CONFIG_PACKET_HEADROOM;
capa->pkt.min_tailroom = CONFIG_PACKET_TAILROOM;