mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 01:05:29 +00:00
tools/net/ynl: fix sub-message key lookup for nested attributes
Use the correct attribute space for sub-message key lookup in nested
attributes when adding attributes. This fixes rt_link where the "kind"
key and "data" sub-message are nested attributes in "linkinfo".
For example:
./tools/net/ynl/cli.py \
--create \
--spec Documentation/netlink/specs/rt_link.yaml \
--do newlink \
--json '{"link": 99,
"linkinfo": { "kind": "vlan", "data": {"id": 4 } }
}'
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Fixes: ab463c4342
("tools/net/ynl: Add support for encoding sub-messages")
Link: https://patch.msgid.link/20241213130711.40267-1-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
ee76746387
commit
663ad7481f
@ -556,10 +556,10 @@ class YnlFamily(SpecFamily):
|
||||
if attr["type"] == 'nest':
|
||||
nl_type |= Netlink.NLA_F_NESTED
|
||||
attr_payload = b''
|
||||
sub_attrs = SpaceAttrs(self.attr_sets[space], value, search_attrs)
|
||||
sub_space = attr['nested-attributes']
|
||||
sub_attrs = SpaceAttrs(self.attr_sets[sub_space], value, search_attrs)
|
||||
for subname, subvalue in value.items():
|
||||
attr_payload += self._add_attr(attr['nested-attributes'],
|
||||
subname, subvalue, sub_attrs)
|
||||
attr_payload += self._add_attr(sub_space, subname, subvalue, sub_attrs)
|
||||
elif attr["type"] == 'flag':
|
||||
if not value:
|
||||
# If value is absent or false then skip attribute creation.
|
||||
|
Loading…
Reference in New Issue
Block a user