Wednesday, October 23, 2019 4:34 PM, Olivier Matz: > Subject: Re: [dpdk-dev] [PATCH v2] mbuf: support dynamic fields and flags > > Hi Shahaf, > > On Wed, Oct 23, 2019 at 12:00:30PM +0000, Shahaf Shuler wrote: > > Hi Olivier, > > > > Thursday, October 17, 2019 5:42 PM, Olivier Matz: > > > Subject: [dpdk-dev] [PATCH v2] mbuf: support dynamic fields and > > > flags > > > > > > Many features require to store data inside the mbuf. As the room in > > > mbuf structure is limited, it is not possible to have a field for > > > each feature. Also, changing fields in the mbuf structure can break the > API or ABI. > > > > > > This commit addresses these issues, by enabling the dynamic > > > registration of fields or flags: > > > > > > - a dynamic field is a named area in the rte_mbuf structure, with a > > > given size (>= 1 byte) and alignment constraint. > > > - a dynamic flag is a named bit in the rte_mbuf structure. > > > > > > The typical use case is a PMD that registers space for an offload > > > feature, when the application requests to enable this feature. As > > > the space in mbuf is limited, the space should only be reserved if > > > it is going to be used (i.e when the application explicitly asks for it). > > > > According to description, the dynamic field enables custom application and > supported PMDs to use the dynamic part of the mbuf for their specific > needs. > > However the mechanism to report and activate the field/flag registration > comes from the general OFFLOAD flags. > > > > Maybe it will be better to an option to query and select dynamic fields for > PMD outside of the standard ethdev offload flags? > > It is not mandatory to use the ethdev layer to register a dynamic field or > flag > in the mbuf. It is just the typical use case. > > It can also be enabled when using a library that have specific needs, for > instance, you call rte_reorder_init(), and it will register the sequence > number > dynamic field. > > An application that requires a specific mbuf field can also do the > registration > by itself. > > In other words, when you initialize a subpart that needs a dynamic field or > flag, you have to do the registration there. >
I guess my question mainly targets one of the use cases for dynamic mbuf fields which is vendor specific offloads. On such case we would like to have dynamic fields/flags negotiated between the application and PMD. The question is whether we provide a unified way for application to query PMD specific dynamic fields or we let PMD vendor to implement this handshake as they wish (devargs, through PMD doc, etc..)