Subject: Re: [PATCH net-next v2 0/2] tools/net/ynl: enable json configuration

From: Jakub Kicinski <[email-masked]>
Date: Thu, 27 Jul 2023 17:37:53 -0700

On Thu, 27 Jul 2023 08:03:29 -0400 Maryam Tahhan wrote:
> Use a json configuration file to pass parameters to ynl to allow
> for operations on multiple specs in one go. Additionally, check
> this new configuration against a schema to validate it in the cli
> module before parsing it and passing info to the ynl module.

Interesting. Is this related to Donald's comments about subscribing
to notifications from multiple families?

Can you share some info about your use case?

> Example configs would be:
> 
> {
>     "yaml-specs-path": "/<path-to>/linux/Documentation/netlink/specs",
>     "spec-args": {
>         "ethtool.yaml": {
>             "do": "rings-get",
>             "json-params": {
>                 "header": {
>                     "dev-name": "eno1"
>                 }
>             }
>         },
>        "netdev.yaml": {
>             "do": "dev-get",
>             "json-params": {
>             "ifindex": 3
>             }
>         }
>     }
> }

Why is the JSON preferable to writing a script to the same effect?
It'd actually be shorter and more flexible.
Maybe we should focus on packaging YNL as a python lib?

> OR
> 
> {
>     "yaml-specs-path": "/<path-to>/linux/Documentation/netlink/specs",
>     "spec-args": {
>         "ethtool.yaml": {
>             "subscribe": "monitor",
>             "sleep": 10
>         },
>         "netdev.yaml": {
>             "subscribe": "mgmt",
>             "sleep": 5
>         }
>     }
> }

Could you also share the outputs the examples would produce?