From: Balasubramanian Manoharan <bala.manoha...@linaro.org>

Adds minimum and maximum headroom in pool capability

Signed-off-by: Balasubramanian Manoharan <bala.manoha...@linaro.org>
---
/** Email created from pull request 152 (bala-manoharan:pool_headroom)
 ** https://github.com/Linaro/odp/pull/152
 ** Patch: https://github.com/Linaro/odp/pull/152.patch
 ** Base sha: 4eae04e80a634c17ac276bb06bce468cbe28cde0
 ** Merge commit sha: 998193a656d35d26c49f1c5b6254d75f5eab0974
 **/
 platform/linux-generic/odp_pool.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/platform/linux-generic/odp_pool.c 
b/platform/linux-generic/odp_pool.c
index 3e8ec6d8..ebf09f7e 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -348,6 +348,10 @@ static odp_pool_t pool_create(const char *name, 
odp_pool_param_t *params,
                break;
 
        case ODP_POOL_PACKET:
+               if (params->pkt.min_headroom > CONFIG_PACKET_HEADROOM) {
+                       ODP_ERR("Packet headroom size not supported.");
+                       return ODP_POOL_INVALID;
+               }
                headroom    = CONFIG_PACKET_HEADROOM;
                tailroom    = CONFIG_PACKET_TAILROOM;
                num         = params->pkt.num;
@@ -853,7 +857,8 @@ int odp_pool_capability(odp_pool_capability_t *capa)
        capa->pkt.max_pools        = ODP_CONFIG_POOLS;
        capa->pkt.max_len          = CONFIG_PACKET_MAX_SEGS * max_seg_len;
        capa->pkt.max_num          = CONFIG_POOL_MAX_NUM;
-       capa->pkt.min_headroom     = CONFIG_PACKET_HEADROOM;
+       capa->pkt.min_headroom     = 0;
+       capa->pkt.max_headroom     = CONFIG_PACKET_HEADROOM;
        capa->pkt.min_tailroom     = CONFIG_PACKET_TAILROOM;
        capa->pkt.max_segs_per_pkt = CONFIG_PACKET_MAX_SEGS;
        capa->pkt.min_seg_len      = max_seg_len;
@@ -913,6 +918,7 @@ odp_pool_t odp_buffer_pool(odp_buffer_t buf)
 void odp_pool_param_init(odp_pool_param_t *params)
 {
        memset(params, 0, sizeof(odp_pool_param_t));
+       params->pkt.min_headroom = CONFIG_PACKET_HEADROOM;
 }
 
 uint64_t odp_pool_to_u64(odp_pool_t hdl)

Reply via email to