The MBUF library exposes some macros and constants without the RTE_ prefix. I propose cleaning up these, so better names get into the coming LTS release.
The worst is: #define MBUF_INVALID_PORT UINT16_MAX I say it's the worst because when we were looking for the official "invalid" port value for our application, we didn't find this one. (Probably because its documentation is wrong.) MBUF_INVALID_PORT is defined in rte_mbuf_core.h without any description, and in rte_mbuf.h, where it is injected between the rte_pktmbuf_reset() function and its description, so the API documentation shows the function's description for the constant, and no description for the function. I propose keeping it at a sensible location in rte_mbuf_core.h only, adding a description, and renaming it to: #define RTE_PORT_INVALID UINT16_MAX For backwards compatibility, we could add: /* this old name is deprecated */ #define MBUF_INVALID_PORT RTE_PORT_INVALID I also wonder why there are no compiler warnings about the double definition? There are also the data buffer location constants: #define EXT_ATTACHED_MBUF (1ULL << 61) and #define IND_ATTACHED_MBUF (1ULL << 62) There are already macros (with good names) for reading these, so simply adding the RTE_ prefix to these two constants suffices. And all the packet offload flags, such as: #define PKT_RX_VLAN (1ULL << 0) They are supposed to be used by applications, so I guess we should keep them unchanged for ABI stability reasons. And the local macro: #define MBUF_RAW_ALLOC_CHECK(m) do { \ This might as well be an internal inline function: /* internal */ static inline void __rte_mbuf_raw_alloc_check(const struct rte_mbuf *m) Or we could keep it a macro and move it next to __rte_mbuf_sanity_check(), keeping it clear that it is only relevant when RTE_LIBRTE_MBUF_DEBUG is set. But rename it to lower case, similar to the __rte_mbuf_sanity_check() macro. Med venlig hilsen / kind regards - Morten Brørup