examples/qos_meter: check flow configuration error

Calling rte_meter_srtcm_config without checking return value.

Coverity issue: 30693
Fixes: e6541fdec8b2 ("meter: initial import")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
This commit is contained in:
Slawomir Mrozowicz 2016-05-13 10:35:07 +02:00 committed by Thomas Monjalon
parent d52b5e735a
commit e752649c5b
2 changed files with 13 additions and 5 deletions

View File

@ -133,14 +133,20 @@ struct rte_meter_trtcm_params app_trtcm_params[] = {
FLOW_METER app_flows[APP_FLOWS_MAX]; FLOW_METER app_flows[APP_FLOWS_MAX];
static void static int
app_configure_flow_table(void) app_configure_flow_table(void)
{ {
uint32_t i, j; uint32_t i, j;
int ret;
for (i = 0, j = 0; i < APP_FLOWS_MAX; i ++, j = (j + 1) % RTE_DIM(PARAMS)){ for (i = 0, j = 0; i < APP_FLOWS_MAX;
FUNC_CONFIG(&app_flows[i], &PARAMS[j]); i ++, j = (j + 1) % RTE_DIM(PARAMS)) {
ret = FUNC_CONFIG(&app_flows[i], &PARAMS[j]);
if (ret)
return ret;
} }
return 0;
} }
static inline void static inline void
@ -381,7 +387,9 @@ main(int argc, char **argv)
rte_eth_promiscuous_enable(port_tx); rte_eth_promiscuous_enable(port_tx);
/* App configuration */ /* App configuration */
app_configure_flow_table(); ret = app_configure_flow_table();
if (ret < 0)
rte_exit(EXIT_FAILURE, "Invalid configure flow table\n");
/* Launch per-lcore init on every lcore */ /* Launch per-lcore init on every lcore */
rte_eal_mp_remote_launch(main_loop, NULL, CALL_MASTER); rte_eal_mp_remote_launch(main_loop, NULL, CALL_MASTER);

View File

@ -51,7 +51,7 @@ enum policer_action policer_table[e_RTE_METER_COLORS][e_RTE_METER_COLORS] =
#if APP_MODE == APP_MODE_FWD #if APP_MODE == APP_MODE_FWD
#define FUNC_METER(a,b,c,d) color, flow_id=flow_id, pkt_len=pkt_len, time=time #define FUNC_METER(a,b,c,d) color, flow_id=flow_id, pkt_len=pkt_len, time=time
#define FUNC_CONFIG(a,b) #define FUNC_CONFIG(a, b) 0
#define PARAMS app_srtcm_params #define PARAMS app_srtcm_params
#define FLOW_METER int #define FLOW_METER int