test mbuf attach
[dpdk.git] / lib / librte_node / ethdev_rx_priv.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2020 Marvell International Ltd.
3  */
4 #ifndef __INCLUDE_ETHDEV_RX_PRIV_H__
5 #define __INCLUDE_ETHDEV_RX_PRIV_H__
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #include <rte_common.h>
12
13 struct ethdev_rx_node_elem;
14 struct ethdev_rx_node_ctx;
15 typedef struct ethdev_rx_node_elem ethdev_rx_node_elem_t;
16 typedef struct ethdev_rx_node_ctx ethdev_rx_node_ctx_t;
17
18 /**
19  * @internal
20  *
21  * Ethernet device Rx node context structure.
22  */
23 struct ethdev_rx_node_ctx {
24         uint16_t port_id;  /**< Port identifier of the Rx node. */
25         uint16_t queue_id; /**< Queue identifier of the Rx node. */
26         uint16_t cls_next;
27 };
28
29 /**
30  * @internal
31  *
32  * Ethernet device Rx node list element structure.
33  */
34 struct ethdev_rx_node_elem {
35         struct ethdev_rx_node_elem *next;
36         /**< Pointer to the next Rx node element. */
37         struct ethdev_rx_node_ctx ctx;
38         /**< Rx node context. */
39         rte_node_t nid;
40         /**< Node identifier of the Rx node. */
41 };
42
43 enum ethdev_rx_next_nodes {
44         ETHDEV_RX_NEXT_IP4_LOOKUP,
45         ETHDEV_RX_NEXT_PKT_CLS,
46         ETHDEV_RX_NEXT_MAX,
47 };
48
49 /**
50  * @internal
51  *
52  * Ethernet Rx node main structure.
53  */
54 struct ethdev_rx_node_main {
55         ethdev_rx_node_elem_t *head;
56         /**< Pointer to the head Rx node element. */
57 };
58
59 /**
60  * @internal
61  *
62  * Get the Ethernet Rx node data.
63  *
64  * @return
65  *   Pointer to Ethernet Rx node data.
66  */
67 struct ethdev_rx_node_main *ethdev_rx_get_node_data_get(void);
68
69 /**
70  * @internal
71  *
72  * Get the Ethernet Rx node.
73  *
74  * @retrun
75  *   Pointer to the Ethernet Rx node.
76  */
77 struct rte_node_register *ethdev_rx_node_get(void);
78
79 #ifdef __cplusplus
80 }
81 #endif
82
83 #endif /* __INCLUDE_ETHDEV_RX_PRIV_H__ */