On Thu, 19 Jun 2025 21:14:49 +0530 Nitin Saxena <nsax...@marvell.com> wrote:
> +#ifndef RTE_NODE_MBUF_PERSISTENT_FIELDS_SIZE > +/** Size of persistent mbuf fields */ > +#define RTE_NODE_MBUF_PERSISTENT_FIELDS_SIZE (0) > +#endif /* RTE_NODE_MBUF_PERSISTENT_FIELDS_SIZE */ > + > +#ifndef RTE_NODE_MBUF_OVERLOADABLE_FIELDS_SIZE > +/** Size of overloadable mbuf fields */ > +#define RTE_NODE_MBUF_OVERLOADABLE_FIELDS_SIZE (8) > +#endif /* RTE_NODE_MBUF_OVERLOADABLE_FIELDS_SIZE */ > + > +/** Size of node mbuf dynamic field */ > +#define RTE_NODE_MBUF_DYNFIELD_SIZE \ > + (RTE_NODE_MBUF_PERSISTENT_FIELDS_SIZE + > RTE_NODE_MBUF_OVERLOADABLE_FIELDS_SIZE) > + > +/** > + * Node mbuf overloadable data. > + * > + * Out-of-tree nodes can repurpose overloadable fields via > + * rte_node_mbuf_overload_fields_get(mbuf). Overloadable fields are not > + * preserved and typically can be used with-in two adjacent nodes in the > graph. > + */ > +typedef struct rte_node_mbuf_overload_fields { > + union { > + uint8_t data[RTE_NODE_MBUF_OVERLOADABLE_FIELDS_SIZE]; > + }; > +} rte_node_mbuf_overload_fields_t; Having a blank scratchpad rather than a real defined structure means you lose any type checking or potential overflow checking.