net/mlx5: support imissed counter on Windows
[dpdk.git] / lib / 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 #include <rte_common.h>
8
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;
13
14 /**
15  * @internal
16  *
17  * Ethernet device Rx node context structure.
18  */
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. */
22         uint16_t cls_next;
23 };
24
25 /**
26  * @internal
27  *
28  * Ethernet device Rx node list element structure.
29  */
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. */
35         rte_node_t nid;
36         /**< Node identifier of the Rx node. */
37 };
38
39 enum ethdev_rx_next_nodes {
40         ETHDEV_RX_NEXT_IP4_LOOKUP,
41         ETHDEV_RX_NEXT_PKT_CLS,
42         ETHDEV_RX_NEXT_MAX,
43 };
44
45 /**
46  * @internal
47  *
48  * Ethernet Rx node main structure.
49  */
50 struct ethdev_rx_node_main {
51         ethdev_rx_node_elem_t *head;
52         /**< Pointer to the head Rx node element. */
53 };
54
55 /**
56  * @internal
57  *
58  * Get the Ethernet Rx node data.
59  *
60  * @return
61  *   Pointer to Ethernet Rx node data.
62  */
63 struct ethdev_rx_node_main *ethdev_rx_get_node_data_get(void);
64
65 /**
66  * @internal
67  *
68  * Get the Ethernet Rx node.
69  *
70  * @return
71  *   Pointer to the Ethernet Rx node.
72  */
73 struct rte_node_register *ethdev_rx_node_get(void);
74
75 #endif /* __INCLUDE_ETHDEV_RX_PRIV_H__ */