X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_meter%2Frte_meter.c;h=149cf58bddc3b7c2bc01cb34b13cefa14da5b1c3;hb=eee264adc95ed049642a9c7d0e4b897d51ccaccf;hp=e55f9be65bf008ee53f733ebb6039b28b8c9d1b4;hpb=655796d2b5fb3d44166e172bb040a83979aa9fd8;p=dpdk.git diff --git a/lib/librte_meter/rte_meter.c b/lib/librte_meter/rte_meter.c index e55f9be65b..149cf58bdd 100644 --- a/lib/librte_meter/rte_meter.c +++ b/lib/librte_meter/rte_meter.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "rte_meter.h" @@ -19,7 +20,15 @@ static void rte_meter_get_tb_params(uint64_t hz, uint64_t rate, uint64_t *tb_period, uint64_t *tb_bytes_per_period) { - double period = ((double) hz) / ((double) rate); + double period; + + if (rate == 0) { + *tb_bytes_per_period = 0; + *tb_period = RTE_METER_TB_PERIOD_MIN; + return; + } + + period = ((double) hz) / ((double) rate); if (period >= RTE_METER_TB_PERIOD_MIN) { *tb_bytes_per_period = 1; @@ -111,8 +120,15 @@ rte_meter_trtcm_config(struct rte_meter_trtcm *m, return 0; } -int __rte_experimental -rte_meter_trtcm_rfc4115_profile_config( +/* + * ABI aliasing done for 'rte_meter_trtcm_rfc4115_profile_config' + * to support both EXPERIMENTAL and DPDK_21 versions + * This versioning will be removed on next ABI version (v20.11) + * and '__rte_meter_trtcm_rfc4115_profile_config' will be restrored back to + * 'rte_meter_trtcm_rfc4115_profile_config' without versioning. + */ +static int +__rte_meter_trtcm_rfc4115_profile_config( struct rte_meter_trtcm_rfc4115_profile *p, struct rte_meter_trtcm_rfc4115_params *params) { @@ -136,8 +152,43 @@ rte_meter_trtcm_rfc4115_profile_config( return 0; } -int __rte_experimental -rte_meter_trtcm_rfc4115_config( +int +rte_meter_trtcm_rfc4115_profile_config_s( + struct rte_meter_trtcm_rfc4115_profile *p, + struct rte_meter_trtcm_rfc4115_params *params); +int +rte_meter_trtcm_rfc4115_profile_config_s( + struct rte_meter_trtcm_rfc4115_profile *p, + struct rte_meter_trtcm_rfc4115_params *params) +{ + return __rte_meter_trtcm_rfc4115_profile_config(p, params); +} +BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_profile_config, _s, 21); +MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_profile_config(struct rte_meter_trtcm_rfc4115_profile *p, + struct rte_meter_trtcm_rfc4115_params *params), rte_meter_trtcm_rfc4115_profile_config_s); + +int +rte_meter_trtcm_rfc4115_profile_config_e( + struct rte_meter_trtcm_rfc4115_profile *p, + struct rte_meter_trtcm_rfc4115_params *params); +int +rte_meter_trtcm_rfc4115_profile_config_e( + struct rte_meter_trtcm_rfc4115_profile *p, + struct rte_meter_trtcm_rfc4115_params *params) +{ + return __rte_meter_trtcm_rfc4115_profile_config(p, params); +} +VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_profile_config, _e); + +/* + * ABI aliasing done for 'rte_meter_trtcm_rfc4115_config' + * to support both EXPERIMENTAL and DPDK_21 versions + * This versioning will be removed on next ABI version (v20.11) + * and '__rte_meter_trtcm_rfc4115_config' will be restrored back to + * 'rte_meter_trtcm_rfc4115_config' without versioning. + */ +static int +__rte_meter_trtcm_rfc4115_config( struct rte_meter_trtcm_rfc4115 *m, struct rte_meter_trtcm_rfc4115_profile *p) { @@ -152,3 +203,27 @@ rte_meter_trtcm_rfc4115_config( return 0; } + +int +rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m, + struct rte_meter_trtcm_rfc4115_profile *p); +int +rte_meter_trtcm_rfc4115_config_s(struct rte_meter_trtcm_rfc4115 *m, + struct rte_meter_trtcm_rfc4115_profile *p) +{ + return __rte_meter_trtcm_rfc4115_config(m, p); +} +BIND_DEFAULT_SYMBOL(rte_meter_trtcm_rfc4115_config, _s, 21); +MAP_STATIC_SYMBOL(int rte_meter_trtcm_rfc4115_config(struct rte_meter_trtcm_rfc4115 *m, + struct rte_meter_trtcm_rfc4115_profile *p), rte_meter_trtcm_rfc4115_config_s); + +int +rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m, + struct rte_meter_trtcm_rfc4115_profile *p); +int +rte_meter_trtcm_rfc4115_config_e(struct rte_meter_trtcm_rfc4115 *m, + struct rte_meter_trtcm_rfc4115_profile *p) +{ + return __rte_meter_trtcm_rfc4115_config(m, p); +} +VERSION_SYMBOL_EXPERIMENTAL(rte_meter_trtcm_rfc4115_config, _e);