Re: [PATCH net-next 3/7] ynl: support directional specs in ynl-gen-c.py
From: Jakub Kicinski
Date: Wed Nov 13 2024 - 21:32:43 EST
On Wed, 13 Nov 2024 15:45:21 -0800 Stanislav Fomichev wrote:
> On 11/13, Jakub Kicinski wrote:
> > On Wed, 13 Nov 2024 10:10:19 -0800 Stanislav Fomichev wrote:
> > > - supported_models = ['unified']
> > > - if args.mode in ['user', 'kernel']:
> > > - supported_models += ['directional']
> > > - if parsed.msg_id_model not in supported_models:
> > > - print(f'Message enum-model {parsed.msg_id_model} not supported for {args.mode} generation')
> > > - os.sys.exit(1)
> >
> > Don't we still need to validate that it's one of the two options?
>
> I removed it because I'm assuming only two modes exist (and we support
> them both now). Are you suggesting it's better to future-proof it and
> still keep the check in case we add some new modes in the future? (or
> running against some rogue specs?)
TBH I don't remember how much precedent there is for C codegen
depending on jsonschema for spec input validation. My gut tells
me to do:
+ if family.msg_id_model == 'unified':
+ render_uapi_unified(family, cw, max_by_define, separate_ntf)
+ elif family.msg_id_model == 'directional':
+ render_uapi_directional(family, cw, max_by_define)
+ else:
+ raise ..
and then we can indeed drop the validation of the arg directly