summaryrefslogtreecommitdiff
path: root/examples/qos_meter
diff options
context:
space:
mode:
authorSlawomir Mrozowicz <slawomirx.mrozowicz@intel.com>2016-05-13 10:35:07 +0200
committerThomas Monjalon <thomas.monjalon@6wind.com>2016-05-16 18:49:12 +0200
commite752649c5b558daa2fb3d19d49664a79a6c3133c (patch)
tree02b47899412a9745003d947f1277f794f49cf0b8 /examples/qos_meter
parentd52b5e735aa396600578f6e614bccb0cada99184 (diff)
downloaddpdk-next-eventdev-e752649c5b558daa2fb3d19d49664a79a6c3133c.zip
dpdk-next-eventdev-e752649c5b558daa2fb3d19d49664a79a6c3133c.tar.gz
dpdk-next-eventdev-e752649c5b558daa2fb3d19d49664a79a6c3133c.tar.xz
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>
Diffstat (limited to 'examples/qos_meter')
-rw-r--r--examples/qos_meter/main.c16
-rw-r--r--examples/qos_meter/main.h2
2 files changed, 13 insertions, 5 deletions
diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c
index b968b00..1565615 100644
--- a/examples/qos_meter/main.c
+++ b/examples/qos_meter/main.c
@@ -133,14 +133,20 @@ struct rte_meter_trtcm_params app_trtcm_params[] = {
FLOW_METER app_flows[APP_FLOWS_MAX];
-static void
+static int
app_configure_flow_table(void)
{
uint32_t i, j;
+ int ret;
- for (i = 0, j = 0; i < APP_FLOWS_MAX; i ++, j = (j + 1) % RTE_DIM(PARAMS)){
- FUNC_CONFIG(&app_flows[i], &PARAMS[j]);
+ for (i = 0, j = 0; i < APP_FLOWS_MAX;
+ i ++, j = (j + 1) % RTE_DIM(PARAMS)) {
+ ret = FUNC_CONFIG(&app_flows[i], &PARAMS[j]);
+ if (ret)
+ return ret;
}
+
+ return 0;
}
static inline void
@@ -381,7 +387,9 @@ main(int argc, char **argv)
rte_eth_promiscuous_enable(port_tx);
/* 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 */
rte_eal_mp_remote_launch(main_loop, NULL, CALL_MASTER);
diff --git a/examples/qos_meter/main.h b/examples/qos_meter/main.h
index 530bf69..54867dc 100644
--- a/examples/qos_meter/main.h
+++ b/examples/qos_meter/main.h
@@ -51,7 +51,7 @@ enum policer_action policer_table[e_RTE_METER_COLORS][e_RTE_METER_COLORS] =
#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_CONFIG(a,b)
+#define FUNC_CONFIG(a, b) 0
#define PARAMS app_srtcm_params
#define FLOW_METER int