diff options
author | Ole Troan <ot@cisco.com> | 2022-12-07 15:30:58 +0100 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2023-03-21 13:53:09 +0000 |
commit | 86698fca30941772a3b77106fc2b2e83a40bcfeb (patch) | |
tree | 17294ddcc200612944e877bbc315ed6c32a36a8f /src/vpp-api/python/vpp_papi/vpp_serializer.py | |
parent | d76c029a85f0b5a4bb72c84fb4cd012cbd5465cd (diff) |
papi: vla list of fixed strings
Handle a variable length array of fixed strings.
Like:
fixed_string = VPPType("fixed_string", [["string", "data", 32]])
s = VPPType("string_vla", [["u32", "length"], ["fixed_string", "services", 0, "length"]])
Previously instead of packing and unpacking as strings, exception packed as u8 instead
of list.
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I501a8a4755828042e1539fd5a54eacec21c5e364
Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vpp-api/python/vpp_papi/vpp_serializer.py')
-rw-r--r-- | src/vpp-api/python/vpp_papi/vpp_serializer.py | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/vpp-api/python/vpp_papi/vpp_serializer.py b/src/vpp-api/python/vpp_papi/vpp_serializer.py index d7da457ea1a..d8461398765 100644 --- a/src/vpp-api/python/vpp_papi/vpp_serializer.py +++ b/src/vpp-api/python/vpp_papi/vpp_serializer.py @@ -304,9 +304,8 @@ class VLAList(Packer): len(lst), kwargs[self.length_field] ) ) - # u8 array - if self.packer.size == 1: + if self.packer.size == 1 and self.field_type == "u8": if isinstance(lst, list): return b"".join(lst) return bytes(lst) @@ -321,7 +320,7 @@ class VLAList(Packer): total = 0 # u8 array - if self.packer.size == 1: + if self.packer.size == 1 and self.field_type == "u8": if result[self.index] == 0: return b"", 0 p = BaseTypes("u8", result[self.index]) @@ -618,7 +617,6 @@ class VPPType(Packer): self.packers.append(p) size += p.size - self.size = size self.tuple = collections.namedtuple(name, self.fields, rename=True) types[name] = self |