> -----Original Message-----
> From: dev <dev-boun...@dpdk.org> On Behalf Of Olivier Matz
> Sent: Thursday, July 11, 2019 1:07 PM
> To: Stephen Hemminger <step...@networkplumber.org>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [RFC] mbuf: support dynamic fields and flags
> 
> On Wed, Jul 10, 2019 at 10:49:17AM -0700, Stephen Hemminger wrote:
> > On Wed, 10 Jul 2019 11:29:07 +0200
> > Olivier Matz <olivier.m...@6wind.com> wrote:
> >
> > >  /**
> > >   * Indicate that the metadata field in the mbuf is in use.
> > > @@ -738,6 +741,8 @@ struct rte_mbuf {
> > >    */
> > >   struct rte_mbuf_ext_shared_info *shinfo;
> > >
> > > + uint64_t dynfield1; /**< Reserved for dynamic fields. */
> > > + uint64_t dynfield2; /**< Reserved for dynamic fields. */

Since the mbuf size is fixed, What is the downside of union scheme[1] vs upside 
of proposed scheme

[1] Example like:
        RTE_STD_C11
        union {
                void *userdata;   /**< Can be used for external metadata */
                uint64_t udata64; /**< Allow 8-byte userdata on 32-bit */
        };

# The fields like mbuf: hash.usr, used in variety  of use case together
Like libraries like distributor() and Eventdev using it. If we switch
to dynamic mbuf scheme, We wil take those field using 
rte_mbuf_dynfield_register()
on library init?

# I see an upside of dynamic mbuf if we can add rte_mbuf_dynfield_unregister 
API.
But can we ever do that? Because it will be complex if we need introduce 
notification mechanism etc.

# In the real world use case, if with union scheme, fastpath API can simply 
deference 
specific element (say mbuf->fieldx). With dynamic scheme, the offset need to 
store
in some other data structure  and de reference in fastpath before assessing the 
interested field.
Right?



Reply via email to