summaryrefslogtreecommitdiffstats
path: root/src/spdk/dpdk/examples/qos_meter/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/dpdk/examples/qos_meter/main.h')
-rw-r--r--src/spdk/dpdk/examples/qos_meter/main.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/spdk/dpdk/examples/qos_meter/main.h b/src/spdk/dpdk/examples/qos_meter/main.h
new file mode 100644
index 00000000..f51eb664
--- /dev/null
+++ b/src/spdk/dpdk/examples/qos_meter/main.h
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2014 Intel Corporation
+ */
+
+#ifndef _MAIN_H_
+#define _MAIN_H_
+
+enum policer_action {
+ GREEN = e_RTE_METER_GREEN,
+ YELLOW = e_RTE_METER_YELLOW,
+ RED = e_RTE_METER_RED,
+ DROP = 3,
+};
+
+enum policer_action policer_table[e_RTE_METER_COLORS][e_RTE_METER_COLORS] =
+{
+ { GREEN, RED, RED},
+ { DROP, YELLOW, RED},
+ { DROP, DROP, RED}
+};
+
+#if APP_MODE == APP_MODE_FWD
+
+#define FUNC_METER(m, p, time, pkt_len, pkt_color) \
+({ \
+ void *mp = m; \
+ void *pp = p; \
+ mp = mp; \
+ pp = pp; \
+ time = time; \
+ pkt_len = pkt_len; \
+ pkt_color; \
+})
+#define FUNC_CONFIG(a, b) 0
+#define FLOW_METER int
+#define PROFILE app_srtcm_profile
+
+#elif APP_MODE == APP_MODE_SRTCM_COLOR_BLIND
+
+#define FUNC_METER(m, p, time, pkt_len, pkt_color) \
+ rte_meter_srtcm_color_blind_check(m, p, time, pkt_len)
+#define FUNC_CONFIG rte_meter_srtcm_config
+#define FLOW_METER struct rte_meter_srtcm
+#define PROFILE app_srtcm_profile
+
+#elif (APP_MODE == APP_MODE_SRTCM_COLOR_AWARE)
+
+#define FUNC_METER rte_meter_srtcm_color_aware_check
+#define FUNC_CONFIG rte_meter_srtcm_config
+#define FLOW_METER struct rte_meter_srtcm
+#define PROFILE app_srtcm_profile
+
+#elif (APP_MODE == APP_MODE_TRTCM_COLOR_BLIND)
+
+#define FUNC_METER(m, p, time, pkt_len, pkt_color) \
+ rte_meter_trtcm_color_blind_check(m, p, time, pkt_len)
+#define FUNC_CONFIG rte_meter_trtcm_config
+#define FLOW_METER struct rte_meter_trtcm
+#define PROFILE app_trtcm_profile
+
+#elif (APP_MODE == APP_MODE_TRTCM_COLOR_AWARE)
+
+#define FUNC_METER rte_meter_trtcm_color_aware_check
+#define FUNC_CONFIG rte_meter_trtcm_config
+#define FLOW_METER struct rte_meter_trtcm
+#define PROFILE app_trtcm_profile
+
+#else
+#error Invalid value for APP_MODE
+#endif
+
+#endif /* _MAIN_H_ */