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