netlink: specs: support conditional operations
authorJakub Kicinski <kuba@kernel.org>
Wed, 25 Oct 2023 16:22:53 +0000 (09:22 -0700)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Oct 2023 02:42:15 +0000 (19:42 -0700)
commitbc30bb88ff3153fba7693557d15733179adf7492
tree85beef9e91858e195754d7cd361f1fec6a0fcfae
parentea23fbd2a8f7dadfa9cd9b9d73f3b8a69eec0671
netlink: specs: support conditional operations

Page pool code is compiled conditionally, but the operations
are part of the shared netlink family. We can handle this
by reporting empty list of pools or -EOPNOTSUPP / -ENOSYS
but the cleanest way seems to be removing the ops completely
at compilation time. That way user can see that the page
pool ops are not present using genetlink introspection.
Same way they'd check if the kernel is "new enough" to
support the ops.

Extend the specs with the ability to specify the config
condition under which op (and its policies, etc.) should
be hidden.

Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20231025162253.133159-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/netlink/genetlink-c.yaml
Documentation/netlink/genetlink-legacy.yaml
Documentation/netlink/genetlink.yaml
tools/net/ynl/ynl-gen-c.py