1*2d9fd380Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*2d9fd380Sjfb8856606  * Copyright(C) 2020 Marvell International Ltd.
3*2d9fd380Sjfb8856606  */
4*2d9fd380Sjfb8856606 #ifndef __INCLUDE_ETHDEV_TX_PRIV_H__
5*2d9fd380Sjfb8856606 #define __INCLUDE_ETHDEV_TX_PRIV_H__
6*2d9fd380Sjfb8856606 
7*2d9fd380Sjfb8856606 #ifdef __cplusplus
8*2d9fd380Sjfb8856606 extern "C" {
9*2d9fd380Sjfb8856606 #endif
10*2d9fd380Sjfb8856606 
11*2d9fd380Sjfb8856606 struct ethdev_tx_node_ctx;
12*2d9fd380Sjfb8856606 typedef struct ethdev_tx_node_ctx ethdev_tx_node_ctx_t;
13*2d9fd380Sjfb8856606 
14*2d9fd380Sjfb8856606 enum ethdev_tx_next_nodes {
15*2d9fd380Sjfb8856606 	ETHDEV_TX_NEXT_PKT_DROP,
16*2d9fd380Sjfb8856606 	ETHDEV_TX_NEXT_MAX,
17*2d9fd380Sjfb8856606 };
18*2d9fd380Sjfb8856606 
19*2d9fd380Sjfb8856606 /**
20*2d9fd380Sjfb8856606  * @internal
21*2d9fd380Sjfb8856606  *
22*2d9fd380Sjfb8856606  * Ethernet Tx node context structure.
23*2d9fd380Sjfb8856606  */
24*2d9fd380Sjfb8856606 struct ethdev_tx_node_ctx {
25*2d9fd380Sjfb8856606 	uint16_t port;	/**< Port identifier of the Ethernet Tx node. */
26*2d9fd380Sjfb8856606 	uint16_t queue; /**< Queue identifier of the Ethernet Tx node. */
27*2d9fd380Sjfb8856606 };
28*2d9fd380Sjfb8856606 
29*2d9fd380Sjfb8856606 /**
30*2d9fd380Sjfb8856606  * @internal
31*2d9fd380Sjfb8856606  *
32*2d9fd380Sjfb8856606  * Ethernet Tx node main structure.
33*2d9fd380Sjfb8856606  */
34*2d9fd380Sjfb8856606 struct ethdev_tx_node_main {
35*2d9fd380Sjfb8856606 	uint32_t nodes[RTE_MAX_ETHPORTS]; /**< Tx nodes for each ethdev port. */
36*2d9fd380Sjfb8856606 };
37*2d9fd380Sjfb8856606 
38*2d9fd380Sjfb8856606 /**
39*2d9fd380Sjfb8856606  * @internal
40*2d9fd380Sjfb8856606  *
41*2d9fd380Sjfb8856606  * Get the Ethernet Tx node data.
42*2d9fd380Sjfb8856606  *
43*2d9fd380Sjfb8856606  * @return
44*2d9fd380Sjfb8856606  *   Pointer to Ethernet Tx node data.
45*2d9fd380Sjfb8856606  */
46*2d9fd380Sjfb8856606 struct ethdev_tx_node_main *ethdev_tx_node_data_get(void);
47*2d9fd380Sjfb8856606 
48*2d9fd380Sjfb8856606 /**
49*2d9fd380Sjfb8856606  * @internal
50*2d9fd380Sjfb8856606  *
51*2d9fd380Sjfb8856606  * Get the Ethernet Tx node.
52*2d9fd380Sjfb8856606  *
53*2d9fd380Sjfb8856606  * @retrun
54*2d9fd380Sjfb8856606  *   Pointer to the Ethernet Tx node.
55*2d9fd380Sjfb8856606  */
56*2d9fd380Sjfb8856606 struct rte_node_register *ethdev_tx_node_get(void);
57*2d9fd380Sjfb8856606 
58*2d9fd380Sjfb8856606 #ifdef __cplusplus
59*2d9fd380Sjfb8856606 }
60*2d9fd380Sjfb8856606 #endif
61*2d9fd380Sjfb8856606 
62*2d9fd380Sjfb8856606 #endif /* __INCLUDE_ETHDEV_TX_PRIV_H__ */
63