1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(C) 2023 Marvell International Ltd.
*/
#ifndef __KERNEL_RX_PRIV_H__
#define __KERNEL_RX_PRIV_H__
#define KERN_RX_CACHE_COUNT 64
typedef struct kernel_rx_info {
struct rte_mbuf *rx_bufs[KERN_RX_CACHE_COUNT];
uint16_t node_next;
uint16_t idx;
uint16_t cnt;
int sock;
} kernel_rx_info_t;
/* kernel_rx node context structure */
typedef struct kernel_rx_node_ctx {
struct rte_mempool *pktmbuf_pool;
kernel_rx_info_t *recv_info;
} kernel_rx_node_ctx_t;
/* kernel_rx node list element structure */
typedef struct kernel_rx_node_elem {
struct kernel_rx_node_elem *next; /* Pointer to the next node element. */
struct kernel_rx_node_ctx ctx; /* kernel_rx node context. */
rte_node_t nid; /* Node identifier of the kernel_rx node. */
} kernel_rx_node_elem_t;
enum kernel_rx_next_nodes {
KERNEL_RX_NEXT_PKT_CLS,
KERNEL_RX_NEXT_IP4_LOOKUP,
KERNEL_RX_NEXT_MAX,
};
/* kernel_rx node main structure */
struct kernel_rx_node_main {
kernel_rx_node_elem_t *head; /* Pointer to the head node element. */
};
/* Get the pointer of kernel_rx node data */
struct kernel_rx_node_main *kernel_rx_node_data_get(void);
/* Get the pointer of kernel_rx node register structure */
struct rte_node_register *kernel_rx_node_get(void);
#endif /* __KERNEL_RX_PRIV_H__ */
|