aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic/odp_pool.c
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2021-01-08 09:31:27 +0200
committerMatias Elo <matias.elo@nokia.com>2021-01-15 15:15:12 +0200
commitdd9dc51b107bcf9ea6afb2d4fafd7c453f5cc240 (patch)
tree40ab2cb2b6f1847383380e7939c485a204d6f784 /platform/linux-generic/odp_pool.c
parent870b49483ce2ea973eff6e554ac0c98f5267dfb2 (diff)
linux-gen: pool: add maximum packet length config option
Add configuration file option for the maximum packet data length in bytes. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Jere Leppänen <jere.leppanen@nokia.com>
Diffstat (limited to 'platform/linux-generic/odp_pool.c')
-rw-r--r--platform/linux-generic/odp_pool.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index d1fb7c933..9e6530eb6 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -210,6 +210,20 @@ static int read_config_file(pool_global_t *pool_glb)
pool_glb->config.pkt_max_num = val;
ODP_PRINT(" %s: %i\n", str, val);
+ str = "pool.pkt.max_len";
+ if (!_odp_libconfig_lookup_int(str, &val)) {
+ ODP_ERR("Config option '%s' not found.\n", str);
+ return -1;
+ }
+
+ if (val <= 0) {
+ ODP_ERR("Bad value %s = %i\n", str, val);
+ return -1;
+ }
+
+ pool_glb->config.pkt_max_len = val;
+ ODP_PRINT(" %s: %i\n", str, val);
+
str = "pool.pkt.base_align";
if (!_odp_libconfig_lookup_int(str, &val)) {
ODP_ERR("Config option '%s' not found.\n", str);
@@ -571,7 +585,7 @@ static odp_pool_t pool_create(const char *name, const odp_pool_param_t *params,
}
seg_len = CONFIG_PACKET_MAX_SEG_LEN;
- max_len = CONFIG_PACKET_MAX_LEN;
+ max_len = _odp_pool_glb->config.pkt_max_len;
if (params->pkt.len &&
params->pkt.len < CONFIG_PACKET_MAX_SEG_LEN)
@@ -1256,7 +1270,7 @@ int odp_pool_capability(odp_pool_capability_t *capa)
/* Packet pools */
capa->pkt.max_pools = max_pools;
- capa->pkt.max_len = CONFIG_PACKET_MAX_LEN;
+ capa->pkt.max_len = _odp_pool_glb->config.pkt_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;