Revision tags: v6.6.26, v6.6.25, v6.6.24, v6.6.23 |
|
#
5c05bdd9 |
| 20-Mar-2024 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl: fix setting presence bits in simple nests
[ Upstream commit f6c8f5e8694c7a78c94e408b628afa6255cc428a ]
When we set members of simple nested structures in requests we need to set "presen
tools: ynl: fix setting presence bits in simple nests
[ Upstream commit f6c8f5e8694c7a78c94e408b628afa6255cc428a ]
When we set members of simple nested structures in requests we need to set "presence" bits for all the nesting layers below. This has nothing to do with the presence type of the last layer.
Fixes: be5bea1cc0bf ("net: add basic C code generators for Netlink") Reviewed-by: Breno Leitao <leitao@debian.org> Link: https://lore.kernel.org/r/20240321020214.1250202-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
show more ...
|
Revision tags: v6.6.16, v6.6.15, v6.6.14, v6.6.13, v6.6.12, v6.6.11, v6.6.10, v6.6.9, v6.6.8, v6.6.7, v6.6.6, v6.6.5, v6.6.4, v6.6.3, v6.6.2, v6.5.11, v6.6.1, v6.5.10, v6.6, v6.5.9, v6.5.8, v6.5.7, v6.5.6, v6.5.5, v6.5.4, v6.5.3, v6.5.2, v6.1.51, v6.5.1, v6.1.50, v6.5, v6.1.49, v6.1.48 |
|
#
a02430c0 |
| 24-Aug-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: fix uAPI generation after tempfile changes
We use a tempfile for code generation, to avoid wiping the target file out if the code generator crashes. File contents are copied from tem
tools: ynl-gen: fix uAPI generation after tempfile changes
We use a tempfile for code generation, to avoid wiping the target file out if the code generator crashes. File contents are copied from tempfile to actual destination at the end of main().
uAPI generation is relatively simple so when generating the uAPI header we return from main() early, and never reach the "copy code over" stage. Since commit under Fixes uAPI headers are not updated by ynl-gen.
Move the copy/commit of the code into CodeWriter, to make it easier to call at any point in time. Hook it into the destructor to make sure we don't miss calling it.
Fixes: f65f305ae008 ("tools: ynl-gen: use temporary file for rendering") Link: https://lore.kernel.org/r/20230824212431.1683612-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
4c8c24e8 |
| 23-Aug-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: support empty attribute lists
Differentiate between empty list and None for member lists. New families may want to create request responses with no attribute. If we treat those the s
tools: ynl-gen: support empty attribute lists
Differentiate between empty list and None for member lists. New families may want to create request responses with no attribute. If we treat those the same as None we end up rendering a full parsing policy in user space, instead of an empty one.
Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://lore.kernel.org/r/20230824003056.1436637-5-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
dc2ef94d |
| 23-Aug-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: fix collecting global policy attrs
We look for attributes inside do.request, but there's another layer of nesting in the spec, look inside do.request.attributes.
This bug had no eff
tools: ynl-gen: fix collecting global policy attrs
We look for attributes inside do.request, but there's another layer of nesting in the spec, look inside do.request.attributes.
This bug had no effect as all global policies we generate (fou) seem to be full, anyway, and we treat full and empty the same.
Next patch will change the treatment of empty policies.
Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://lore.kernel.org/r/20230824003056.1436637-4-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
a149a3a1 |
| 23-Aug-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: set length of binary fields
Remember to set the length field in the request setters.
Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://lore.kernel.org/r/20230824003
tools: ynl-gen: set length of binary fields
Remember to set the length field in the request setters.
Reviewed-by: Donald Hunter <donald.hunter@gmail.com> Link: https://lore.kernel.org/r/20230824003056.1436637-3-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
f65f305a |
| 18-Aug-2023 |
Jiri Pirko <jiri@nvidia.com> |
tools: ynl-gen: use temporary file for rendering
Currently any error during render leads to output an empty file. That is quite annoying when using tools/net/ynl/ynl-regen.sh which git greps files w
tools: ynl-gen: use temporary file for rendering
Currently any error during render leads to output an empty file. That is quite annoying when using tools/net/ynl/ynl-regen.sh which git greps files with content of "YNL-GEN.." and therefore ignores empty files. So once you fail to regen, you have to checkout the file.
Avoid that by rendering to a temporary file first, only at the end copy the content to the actual destination.
Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
Revision tags: v6.1.46, v6.1.45 |
|
#
cd3112eb |
| 08-Aug-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: add missing empty line between policies
We're missing empty line between policies. DPLL will need this.
Tested-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> Link: https://lore.ker
tools: ynl-gen: add missing empty line between policies
We're missing empty line between policies. DPLL will need this.
Tested-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> Link: https://lore.kernel.org/r/20230808200907.1290647-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
Revision tags: v6.1.44 |
|
#
2c0e9f38 |
| 08-Aug-2023 |
Jiri Pirko <jiri@nvidia.com> |
tools: ynl-gen: avoid rendering empty validate field
When dont-validate flags are filtered out for do/dump op, the list may be empty. In that case, avoid rendering the validate field.
Fixes: fa8ba3
tools: ynl-gen: avoid rendering empty validate field
When dont-validate flags are filtered out for do/dump op, the list may be empty. In that case, avoid rendering the validate field.
Fixes: fa8ba3502ade ("ynl-gen-c.py: render netlink policies static for split ops") Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230808090344.1368874-1-jiri@resnulli.us Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
fa8ba350 |
| 03-Aug-2023 |
Jiri Pirko <jiri@nvidia.com> |
ynl-gen-c.py: render netlink policies static for split ops
When policies are rendered for split ops, they are consumed in the same file. No need to expose them for user outside, make them static.
S
ynl-gen-c.py: render netlink policies static for split ops
When policies are rendered for split ops, they are consumed in the same file. No need to expose them for user outside, make them static.
Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230803111340.1074067-5-jiri@resnulli.us Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
eab7be68 |
| 03-Aug-2023 |
Jiri Pirko <jiri@nvidia.com> |
ynl-gen-c.py: allow directional model for kernel mode
Directional model limitation is only applicable for uapi mode. For kernel mode, the code is generated correctly using right cmd values for do/du
ynl-gen-c.py: allow directional model for kernel mode
Directional model limitation is only applicable for uapi mode. For kernel mode, the code is generated correctly using right cmd values for do/dump requests. Lift the limitation.
Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230803111340.1074067-4-jiri@resnulli.us Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
dc7b81a8 |
| 03-Aug-2023 |
Jiri Pirko <jiri@nvidia.com> |
ynl-gen-c.py: filter rendering of validate field values for split ops
For split ops, do and dump has different meaningful values in validate field.
Fix the rendering to allow the values per op type
ynl-gen-c.py: filter rendering of validate field values for split ops
For split ops, do and dump has different meaningful values in validate field.
Fix the rendering to allow the values per op type as follows: do: strict dump: dump, strict-dump
Signed-off-by: Jiri Pirko <jiri@nvidia.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230803111340.1074067-3-jiri@resnulli.us Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
Revision tags: v6.1.43 |
|
#
37844828 |
| 27-Jul-2023 |
Stanislav Fomichev <sdf@google.com> |
ynl: mark max/mask as private for kdoc
Simon mentioned in another thread that it makes kdoc happy and Jakub confirms that commit e27cb89a22ad ("scripts: kernel-doc: support private / public marking
ynl: mark max/mask as private for kdoc
Simon mentioned in another thread that it makes kdoc happy and Jakub confirms that commit e27cb89a22ad ("scripts: kernel-doc: support private / public marking for enums") actually added the needed support.
Signed-off-by: Stanislav Fomichev <sdf@google.com> Reviewed-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/r/20230727163001.3952878-3-sdf@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
Revision tags: v6.1.42, v6.1.41, v6.1.40, v6.1.39, v6.1.38, v6.1.37, v6.1.36, v6.4, v6.1.35, v6.1.34 |
|
#
be093a80 |
| 12-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: inherit policy in multi-attr
Instead of reimplementing policies in MutliAttr for every underlying type forward the calls to the base type. This will be needed for DPLL which uses a m
tools: ynl-gen: inherit policy in multi-attr
Instead of reimplementing policies in MutliAttr for every underlying type forward the calls to the base type. This will be needed for DPLL which uses a multi-attr nest, and currently gets an invalid NLA_NEST policy generated.
Reviewed-by: Jacob Keller <Jacob.e.keller@intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
10c4d2a7 |
| 12-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: correct enum policies
Scalar range validation assumes enums start at 0. Teach it to properly calculate the value range.
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-o
tools: ynl-gen: correct enum policies
Scalar range validation assumes enums start at 0. Teach it to properly calculate the value range.
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
2c9d47a0 |
| 09-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: resolve enum vs struct name conflicts
Ethtool has an attribute set called stringset, from which we'll generate struct ethtool_stringset. Unfortunately, the old ethtool header declare
tools: ynl-gen: resolve enum vs struct name conflicts
Ethtool has an attribute set called stringset, from which we'll generate struct ethtool_stringset. Unfortunately, the old ethtool header declares enum ethtool_stringset (the same name), to which compilers object.
This seems unavoidable. Check struct names against known constants and append an underscore if conflict is detected.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
dddc9f53 |
| 09-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: don't generate enum types if unnamed
If attr set or enum has empty enum name we need to use u32 or int as function arguments and struct members.
Signed-off-by: Jakub Kicinski <kuba@
tools: ynl-gen: don't generate enum types if unnamed
If attr set or enum has empty enum name we need to use u32 or int as function arguments and struct members.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
ed2042cc |
| 09-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
netlink: specs: support setting prefix-name per attribute
Ethtool's PSE PoDL has a attr nest with different prefixes:
/* Power Sourcing Equipment */ enum { ETHTOOL_A_PSE_UNSPEC, ETHTOOL_A_PSE_HEA
netlink: specs: support setting prefix-name per attribute
Ethtool's PSE PoDL has a attr nest with different prefixes:
/* Power Sourcing Equipment */ enum { ETHTOOL_A_PSE_UNSPEC, ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */ ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */ ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */ ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */
Header has a prefix of ETHTOOL_A_PSE_ and other attrs prefix of ETHTOOL_A_PODL_PSE_ we can't cover them uniformly. If PODL was after PSE life would be easy.
Now we either need to add prefixes to attr names which is yucky or support setting prefix name per attr.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
33eedb00 |
| 09-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: record extra args for regen
ynl-regen needs to know the arguments used to generate a file. Record excluded ops and, while at it, user headers.
Signed-off-by: Jakub Kicinski <kuba@ke
tools: ynl-gen: record extra args for regen
ynl-regen needs to know the arguments used to generate a file. Record excluded ops and, while at it, user headers.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
008bcd68 |
| 09-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: support excluding tricky ops
The ethtool family has a small handful of quite tricky ops and a lot of simple very useful ops. Teach ynl-gen to skip ops so that we can bypass the trick
tools: ynl-gen: support excluding tricky ops
The ethtool family has a small handful of quite tricky ops and a lot of simple very useful ops. Teach ynl-gen to skip ops so that we can bypass the tricky ones.
Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
Revision tags: v6.1.33 |
|
#
76abff37 |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: support / skip pads on the way to kernel
Kernel does not have padding requirements for 64b attrs. We can ignore pad attrs.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
#
6f96ec73 |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: don't pass op_name to RenderInfo
The op_name argument is barely used and identical to op.name in all cases.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
#
6da3424f |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: support code gen for events
Netlink specs support both events and notifications (former can define their own message contents). Plug in missing code to generate types, parsers and in
tools: ynl-gen: support code gen for events
Netlink specs support both events and notifications (former can define their own message contents). Plug in missing code to generate types, parsers and include events into notification tables.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
ced15688 |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: sanitize notification tracking
Don't modify the raw dicts (as loaded from YAML) to pretend that the notify attributes also exist on the ops. This makes the code easier to follow.
Si
tools: ynl-gen: sanitize notification tracking
Don't modify the raw dicts (as loaded from YAML) to pretend that the notify attributes also exist on the ops. This makes the code easier to follow.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
f2ba1e5e |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: stop generating common notification handlers
Common notification handler was supposed to be a way for the user to parse the notifications from a socket synchronously. I don't think w
tools: ynl-gen: stop generating common notification handlers
Common notification handler was supposed to be a way for the user to parse the notifications from a socket synchronously. I don't think we'll end up using it, ynl_ntf_check() works for all known use cases.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
#
e4ea3cc6 |
| 08-Jun-2023 |
Jakub Kicinski <kuba@kernel.org> |
tools: ynl-gen: get attr type outside of if()
Reading attr type with mnl_attr_get_type() for each condition leads to most conditions being longer than 80 chars. Avoid this by reading the type to a v
tools: ynl-gen: get attr type outside of if()
Reading attr type with mnl_attr_get_type() for each condition leads to most conditions being longer than 80 chars. Avoid this by reading the type to a variable on the stack.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|