1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2020 Marvell International Ltd.
5 #ifndef __NODE_PRIVATE_H__
6 #define __NODE_PRIVATE_H__
8 #include <rte_common.h>
12 extern int rte_node_logtype;
13 #define NODE_LOG(level, node_name, ...) \
14 rte_log(RTE_LOG_##level, rte_node_logtype, \
15 RTE_FMT("NODE %s: %s():%u " RTE_FMT_HEAD(__VA_ARGS__, ) "\n", \
16 node_name, __func__, __LINE__, \
17 RTE_FMT_TAIL(__VA_ARGS__, )))
19 #define node_err(node_name, ...) NODE_LOG(ERR, node_name, __VA_ARGS__)
20 #define node_info(node_name, ...) NODE_LOG(INFO, node_name, __VA_ARGS__)
21 #define node_dbg(node_name, ...) NODE_LOG(DEBUG, node_name, __VA_ARGS__)
25 * Node mbuf private data to store next hop, ttl and checksum.
27 struct node_mbuf_priv1 {
41 * Node mbuf private area 2.
43 struct node_mbuf_priv2 {
45 } __rte_cache_aligned;
47 #define NODE_MBUF_PRIV2_SIZE sizeof(struct node_mbuf_priv2)
49 #define OBJS_PER_CLINE (RTE_CACHE_LINE_SIZE / sizeof(void *))
52 * Get mbuf_priv1 pointer from rte_mbuf.
55 * Pointer to the rte_mbuf.
58 * Pointer to the mbuf_priv1.
60 static __rte_always_inline struct node_mbuf_priv1 *
61 node_mbuf_priv1(struct rte_mbuf *m)
63 return (struct node_mbuf_priv1 *)&m->udata64;
67 * Get mbuf_priv2 pointer from rte_mbuf.
70 * Pointer to the rte_mbuf.
73 * Pointer to the mbuf_priv2.
75 static __rte_always_inline struct node_mbuf_priv2 *
76 node_mbuf_priv2(struct rte_mbuf *m)
78 return (struct node_mbuf_priv2 *)rte_mbuf_to_priv(m);
81 #endif /* __NODE_PRIVATE_H__ */