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.

Reply via email to