On 12/10/2021 07:59, Thomas Monjalon wrote:
> 11/10/2021 18:58, Akhil Goyal:
>>> 08/10/2021 22:45, Akhil Goyal:
>>>> In struct rte_security_ipsec_sa_options, for every new option
>>>> added, there is an ABI breakage, to avoid, a reserved_opts
>>>> bitfield is added to for the remaining bits available in the
>>>> structure.
>>>> Now for every new sa option, these reserved_opts can be reduced
>>>> and new option can be added.
>>>
>>> How do you make sure this field is initialized to 0?
>>>
>> Struct rte_security_ipsec_xform Is part of rte_security_capability as well
>> As a configuration structure in session create.
>> User, should ensure that if a device support that option(in capability), then
>> only these options will take into effect or else it will be don't care for
>> the PMD.
>> The initial values of capabilities are set by PMD statically based on the
>> features
>> that it support.
>> So if someone sets a bit in reserved_opts, it will work only if PMD support
>> it
>> And sets the corresponding field in capabilities.
>> But yes, if a new field is added in future, and user sets the reserved_opts
>> by mistake
>> And the PMD supports that feature as well, then that feature will be enabled.
>> This may or may not create issue depending on the feature which is enabled.
>>
>> Should I add a note in the comments to clarify that reserved_opts should be
>> set as 0
>> And future releases may change this without notice(But reserved in itself
>> suggest that)?
>> Adding an explicit check in session_create does not make sense to me.
>> What do you suggest?
>
> Yes at the minimum you should add a comment.
> You could also initialize it in the lib, but it is not always possible.
>
Provide a macro for initialization perhaps ... but there would be no way to
enforce using it.
Ray K