summaryrefslogtreecommitdiffstats
path: root/src/spdk/dpdk/examples/qos_meter/rte_policer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/dpdk/examples/qos_meter/rte_policer.h')
-rw-r--r--src/spdk/dpdk/examples/qos_meter/rte_policer.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/spdk/dpdk/examples/qos_meter/rte_policer.h b/src/spdk/dpdk/examples/qos_meter/rte_policer.h
new file mode 100644
index 00000000..532a853d
--- /dev/null
+++ b/src/spdk/dpdk/examples/qos_meter/rte_policer.h
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2010-2014 Intel Corporation
+ */
+
+#ifndef __INCLUDE_RTE_POLICER_H__
+#define __INCLUDE_RTE_POLICER_H__
+
+#include <stdint.h>
+#include <rte_meter.h>
+
+enum rte_phb_action {
+ e_RTE_PHB_ACTION_GREEN = e_RTE_METER_GREEN,
+ e_RTE_PHB_ACTION_YELLOW = e_RTE_METER_YELLOW,
+ e_RTE_PHB_ACTION_RED = e_RTE_METER_RED,
+ e_RTE_PHB_ACTION_DROP = 3,
+};
+
+struct rte_phb {
+ enum rte_phb_action actions[e_RTE_METER_COLORS][e_RTE_METER_COLORS];
+};
+
+int
+rte_phb_config(struct rte_phb *phb_table, uint32_t phb_table_index,
+ enum rte_meter_color pre_meter, enum rte_meter_color post_meter, enum rte_phb_action action);
+
+static inline enum rte_phb_action
+policer_run(struct rte_phb *phb_table, uint32_t phb_table_index, enum rte_meter_color pre_meter, enum rte_meter_color post_meter)
+{
+ struct rte_phb *phb = &phb_table[phb_table_index];
+ enum rte_phb_action action = phb->actions[pre_meter][post_meter];
+
+ return action;
+}
+
+#endif