* [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI
@ 2024-05-02 16:40 Jakub Kicinski
2024-05-02 16:57 ` Jiri Pirko
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jakub Kicinski @ 2024-05-02 16:40 UTC (permalink / raw)
To: davem
Cc: netdev, edumazet, pabeni, Jakub Kicinski, donald.hunter, jiri,
alessandromarcolini99
I often forget the exact naming of ops and have to look at
the spec to find it. Add support for listing the operations:
$ ./cli.py --spec .../netdev.yaml --list-ops
dev-get [ do, dump ]
page-pool-get [ do, dump ]
page-pool-stats-get [ do, dump ]
queue-get [ do, dump ]
napi-get [ do, dump ]
qstats-get [ dump ]
For completeness also support listing all ops (including
notifications:
# ./cli.py --spec .../netdev.yaml --list-msgs
dev-get [ dump, do ]
dev-add-ntf [ notify ]
dev-del-ntf [ notify ]
dev-change-ntf [ notify ]
page-pool-get [ dump, do ]
page-pool-add-ntf [ notify ]
page-pool-del-ntf [ notify ]
page-pool-change-ntf [ notify ]
page-pool-stats-get [ dump, do ]
queue-get [ dump, do ]
napi-get [ dump, do ]
qstats-get [ dump ]
Use double space after the name for slightly easier to read
output.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: donald.hunter@gmail.com
CC: jiri@resnulli.us
CC: alessandromarcolini99@gmail.com
---
tools/net/ynl/cli.py | 9 +++++++++
tools/net/ynl/lib/nlspec.py | 2 ++
2 files changed, 11 insertions(+)
diff --git a/tools/net/ynl/cli.py b/tools/net/ynl/cli.py
index 058926d69ef0..b8481f401376 100755
--- a/tools/net/ynl/cli.py
+++ b/tools/net/ynl/cli.py
@@ -40,6 +40,8 @@ from lib import YnlFamily, Netlink, NlError
group.add_argument('--multi', dest='multi', nargs=2, action='append',
metavar=('DO-OPERATION', 'JSON_TEXT'), type=str)
group.add_argument('--dump', dest='dump', metavar='DUMP-OPERATION', type=str)
+ group.add_argument('--list-ops', action='store_true')
+ group.add_argument('--list-msgs', action='store_true')
parser.add_argument('--sleep', dest='sleep', type=int)
parser.add_argument('--subscribe', dest='ntf', type=str)
@@ -81,6 +83,13 @@ from lib import YnlFamily, Netlink, NlError
if args.sleep:
time.sleep(args.sleep)
+ if args.list_ops:
+ for op_name, op in ynl.ops.items():
+ print(op_name, " [", ", ".join(op.modes), "]")
+ if args.list_msgs:
+ for op_name, op in ynl.msgs.items():
+ print(op_name, " [", ", ".join(op.modes), "]")
+
try:
if args.do:
reply = ynl.do(args.do, attrs, args.flags)
diff --git a/tools/net/ynl/lib/nlspec.py b/tools/net/ynl/lib/nlspec.py
index 6d08ab9e213f..b6d6f8aef423 100644
--- a/tools/net/ynl/lib/nlspec.py
+++ b/tools/net/ynl/lib/nlspec.py
@@ -335,6 +335,7 @@ jsonschema = None
req_value numerical ID when serialized, user -> kernel
rsp_value numerical ID when serialized, user <- kernel
+ modes supported operation modes (do, dump, event etc.)
is_call bool, whether the operation is a call
is_async bool, whether the operation is a notification
is_resv bool, whether the operation does not exist (it's just a reserved ID)
@@ -350,6 +351,7 @@ jsonschema = None
self.req_value = req_value
self.rsp_value = rsp_value
+ self.modes = yaml.keys() & {'do', 'dump', 'event', 'notify'}
self.is_call = 'do' in yaml or 'dump' in yaml
self.is_async = 'notify' in yaml or 'event' in yaml
self.is_resv = not self.is_async and not self.is_call
--
2.44.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI
2024-05-02 16:40 [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI Jakub Kicinski
@ 2024-05-02 16:57 ` Jiri Pirko
2024-05-03 10:17 ` Donald Hunter
2024-05-03 22:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2024-05-02 16:57 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, donald.hunter,
alessandromarcolini99
Thu, May 02, 2024 at 06:40:43PM CEST, kuba@kernel.org wrote:
>I often forget the exact naming of ops and have to look at
>the spec to find it. Add support for listing the operations:
>
> $ ./cli.py --spec .../netdev.yaml --list-ops
> dev-get [ do, dump ]
> page-pool-get [ do, dump ]
> page-pool-stats-get [ do, dump ]
> queue-get [ do, dump ]
> napi-get [ do, dump ]
> qstats-get [ dump ]
>
>For completeness also support listing all ops (including
>notifications:
>
> # ./cli.py --spec .../netdev.yaml --list-msgs
> dev-get [ dump, do ]
> dev-add-ntf [ notify ]
> dev-del-ntf [ notify ]
> dev-change-ntf [ notify ]
> page-pool-get [ dump, do ]
> page-pool-add-ntf [ notify ]
> page-pool-del-ntf [ notify ]
> page-pool-change-ntf [ notify ]
> page-pool-stats-get [ dump, do ]
> queue-get [ dump, do ]
> napi-get [ dump, do ]
> qstats-get [ dump ]
>
>Use double space after the name for slightly easier to read
>output.
>
>Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Had that on my todo list :) Thanks!
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI
2024-05-02 16:40 [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI Jakub Kicinski
2024-05-02 16:57 ` Jiri Pirko
@ 2024-05-03 10:17 ` Donald Hunter
2024-05-03 22:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: Donald Hunter @ 2024-05-03 10:17 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, jiri, alessandromarcolini99
Jakub Kicinski <kuba@kernel.org> writes:
> I often forget the exact naming of ops and have to look at
> the spec to find it. Add support for listing the operations:
>
> $ ./cli.py --spec .../netdev.yaml --list-ops
> dev-get [ do, dump ]
> page-pool-get [ do, dump ]
> page-pool-stats-get [ do, dump ]
> queue-get [ do, dump ]
> napi-get [ do, dump ]
> qstats-get [ dump ]
>
> For completeness also support listing all ops (including
> notifications:
>
> # ./cli.py --spec .../netdev.yaml --list-msgs
> dev-get [ dump, do ]
> dev-add-ntf [ notify ]
> dev-del-ntf [ notify ]
> dev-change-ntf [ notify ]
> page-pool-get [ dump, do ]
> page-pool-add-ntf [ notify ]
> page-pool-del-ntf [ notify ]
> page-pool-change-ntf [ notify ]
> page-pool-stats-get [ dump, do ]
> queue-get [ dump, do ]
> napi-get [ dump, do ]
> qstats-get [ dump ]
>
> Use double space after the name for slightly easier to read
> output.
>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI
2024-05-02 16:40 [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI Jakub Kicinski
2024-05-02 16:57 ` Jiri Pirko
2024-05-03 10:17 ` Donald Hunter
@ 2024-05-03 22:40 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-05-03 22:40 UTC (permalink / raw)
To: Jakub Kicinski
Cc: davem, netdev, edumazet, pabeni, donald.hunter, jiri,
alessandromarcolini99
Hello:
This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 2 May 2024 09:40:43 -0700 you wrote:
> I often forget the exact naming of ops and have to look at
> the spec to find it. Add support for listing the operations:
>
> $ ./cli.py --spec .../netdev.yaml --list-ops
> dev-get [ do, dump ]
> page-pool-get [ do, dump ]
> page-pool-stats-get [ do, dump ]
> queue-get [ do, dump ]
> napi-get [ do, dump ]
> qstats-get [ dump ]
>
> [...]
Here is the summary with links:
- [net-next] tools: ynl: add --list-ops and --list-msgs to CLI
https://git.kernel.org/netdev/net-next/c/3e51f2cbbc5d
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-05-03 22:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-02 16:40 [PATCH net-next] tools: ynl: add --list-ops and --list-msgs to CLI Jakub Kicinski
2024-05-02 16:57 ` Jiri Pirko
2024-05-03 10:17 ` Donald Hunter
2024-05-03 22:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).