1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2020 Marvell International Ltd.
4 #ifndef __INCLUDE_ETHDEV_RX_PRIV_H__
5 #define __INCLUDE_ETHDEV_RX_PRIV_H__
7 #include <rte_common.h>
9 struct ethdev_rx_node_elem;
10 struct ethdev_rx_node_ctx;
11 typedef struct ethdev_rx_node_elem ethdev_rx_node_elem_t;
12 typedef struct ethdev_rx_node_ctx ethdev_rx_node_ctx_t;
17 * Ethernet device Rx node context structure.
19 struct ethdev_rx_node_ctx {
20 uint16_t port_id; /**< Port identifier of the Rx node. */
21 uint16_t queue_id; /**< Queue identifier of the Rx node. */
28 * Ethernet device Rx node list element structure.
30 struct ethdev_rx_node_elem {
31 struct ethdev_rx_node_elem *next;
32 /**< Pointer to the next Rx node element. */
33 struct ethdev_rx_node_ctx ctx;
34 /**< Rx node context. */
36 /**< Node identifier of the Rx node. */
39 enum ethdev_rx_next_nodes {
40 ETHDEV_RX_NEXT_IP4_LOOKUP,
41 ETHDEV_RX_NEXT_PKT_CLS,
48 * Ethernet Rx node main structure.
50 struct ethdev_rx_node_main {
51 ethdev_rx_node_elem_t *head;
52 /**< Pointer to the head Rx node element. */
58 * Get the Ethernet Rx node data.
61 * Pointer to Ethernet Rx node data.
63 struct ethdev_rx_node_main *ethdev_rx_get_node_data_get(void);
68 * Get the Ethernet Rx node.
71 * Pointer to the Ethernet Rx node.
73 struct rte_node_register *ethdev_rx_node_get(void);
75 #endif /* __INCLUDE_ETHDEV_RX_PRIV_H__ */