xref: /dpdk/drivers/net/dpaa2/dpaa2_tm.h (revision 72100f0dee212597c9fe4fe4366ae39011ebf4a9)
1ac624068SGagandeep Singh /* SPDX-License-Identifier: BSD-3-Clause
2*72100f0dSGagandeep Singh  * Copyright 2020-2021 NXP
3ac624068SGagandeep Singh  */
4ac624068SGagandeep Singh 
5ac624068SGagandeep Singh #ifndef _DPAA2_TM_H_
6ac624068SGagandeep Singh #define _DPAA2_TM_H_
7ac624068SGagandeep Singh 
8ac624068SGagandeep Singh #include <rte_tm.h>
9ac624068SGagandeep Singh 
10*72100f0dSGagandeep Singh enum node_type {
11*72100f0dSGagandeep Singh 	NON_LEAF_NODE = 0,
12*72100f0dSGagandeep Singh 	LEAF_NODE
13*72100f0dSGagandeep Singh };
14*72100f0dSGagandeep Singh 
15*72100f0dSGagandeep Singh enum level_type {
16*72100f0dSGagandeep Singh 	LNI_LEVEL = 0,
17*72100f0dSGagandeep Singh 	CHANNEL_LEVEL,
18*72100f0dSGagandeep Singh 	QUEUE_LEVEL,
19*72100f0dSGagandeep Singh 	MAX_LEVEL
20*72100f0dSGagandeep Singh };
21*72100f0dSGagandeep Singh 
22ac624068SGagandeep Singh struct dpaa2_tm_shaper_profile {
23ac624068SGagandeep Singh 	LIST_ENTRY(dpaa2_tm_shaper_profile) next;
24ac624068SGagandeep Singh 	uint32_t id;
25ac624068SGagandeep Singh 	int refcnt;
26ac624068SGagandeep Singh 	struct rte_tm_shaper_params params;
27ac624068SGagandeep Singh };
28ac624068SGagandeep Singh 
29ac624068SGagandeep Singh struct dpaa2_tm_node {
30ac624068SGagandeep Singh 	LIST_ENTRY(dpaa2_tm_node) next;
31ac624068SGagandeep Singh 	uint32_t id;
32ac624068SGagandeep Singh 	uint32_t type;
33*72100f0dSGagandeep Singh 	uint32_t level_id;
34*72100f0dSGagandeep Singh 	uint16_t channel_id; /* Only for level 1 nodes */
35*72100f0dSGagandeep Singh 	uint16_t tc_id; /* Only for level 1 nodes */
36ac624068SGagandeep Singh 	int refcnt;
37ac624068SGagandeep Singh 	struct dpaa2_tm_node *parent;
38ac624068SGagandeep Singh 	struct dpaa2_tm_shaper_profile *profile;
39ac624068SGagandeep Singh 	uint32_t weight;
40ac624068SGagandeep Singh 	uint32_t priority;
41ac624068SGagandeep Singh 	uint64_t stats_mask;
42ac624068SGagandeep Singh };
43ac624068SGagandeep Singh 
44ac624068SGagandeep Singh int dpaa2_tm_init(struct rte_eth_dev *dev);
45ac624068SGagandeep Singh void dpaa2_tm_deinit(struct rte_eth_dev *dev);
46ac624068SGagandeep Singh 
47ac624068SGagandeep Singh #endif /* _DPAA2_TM_H_ */
48