Regards, Bala
On 5 June 2017 at 18:02, Stanislaw Kardach <k...@semihalf.com> wrote: > > > Best Regards, > Stanislaw Kardach > > On 06/05/2017 02:27 PM, Balasubramanian Manoharan wrote: >> Adds threshold limit of the pool to the pool parameters. >> This threshold limit is a percentage of total size of the pool. >> >> Signed-off-by: Balasubramanian Manoharan <bala.manoha...@linaro.org> >> --- >> include/odp/api/spec/pool.h | 32 ++++++++++++++++++++++++++++++++ >> 1 file changed, 32 insertions(+) >> >> diff --git a/include/odp/api/spec/pool.h b/include/odp/api/spec/pool.h >> index 6fc5b6b..1c1ebe4 100644 >> --- a/include/odp/api/spec/pool.h >> +++ b/include/odp/api/spec/pool.h >> @@ -20,6 +20,7 @@ extern "C" { >> #endif >> >> #include <odp/api/std_types.h> >> +#include <odp/api/support.h> >> >> /** @defgroup odp_pool ODP POOL >> * Operations on a pool. >> @@ -127,6 +128,9 @@ typedef struct odp_pool_capability_t { >> * The value of zero means that limited only by the available >> * memory size for the pool. */ >> uint32_t max_uarea_size; >> + >> + /** Pool Threshold limit support */ >> + odp_support_t pool_threshold_limit; >> } pkt; >> >> /** Timeout pool capabilities */ >> @@ -214,6 +218,17 @@ typedef struct odp_pool_param_t { >> defined by pool capability pkt.max_uarea_size. >> Specify as 0 if no user area is needed. */ >> uint32_t uarea_size; >> + >> + /** Pool threshold limit in percentage >> + * >> + * This value denotes the threshold limit of the pool >> in >> + * percentage of the total size of the pool and is used >> + * to configure the Random Early Discard (RED). >> + * When the number of packets in the pool is greater >> + * than this value RED is initiated in the pool and >> + * further incoming packets to the pool are dropped in >> + * a random sequence. */ >> + uint8_t threshold_limit; > Is threshold limit "a percentage of total size of the pool" (hence I > guess 0-100) or rather an absolute value that triggers RED? Yes. It is defined as a percentage. > >> } pkt; >> >> /** Parameters for timeout pools */ >> @@ -329,6 +344,23 @@ uint64_t odp_pool_to_u64(odp_pool_t hdl); >> void odp_pool_param_init(odp_pool_param_t *param); >> >> /** >> + * Set threshold limit of the pool >> + * >> + * Set the threshold limit of the pool as a percentage of the total >> + * size of the pool. This value is used to configure Random Early >> Discard(RED) >> + * parameters of the pool and any incoming packets to the pool after >> reaching >> + * this threshold is dropped in a random sequence. >> + * >> + * @param pool Pool handle >> + * @param threshold_limit Threshold limit of the pool. >> + * >> + * @retval 0 on success >> + * @retval -1 on failure >> + */ >> + >> +int odp_pool_threshold_limit(odp_pool_t pool, uint8_t threshold_limit); >> + >> +/** >> * @} >> */ >> >>