Commit ffe10a45 authored by Jiri Pirko's avatar Jiri Pirko Committed by Jakub Kicinski
Browse files

tools: ynl: process all scalar types encoding in single elif statement



As a preparation to handle enums for scalar values, unify the processing
of all scalar types in a single elif statement.

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarDonald Hunter <donald.hunter@gmail.com>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Link: https://lore.kernel.org/r/20240222134351.224704-3-jiri@resnulli.us


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent ac95b1fc
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -474,14 +474,14 @@ class YnlFamily(SpecFamily):
                attr_payload = self._encode_struct(attr.struct_name, value)
            else:
                raise Exception(f'Unknown type for binary attribute, value: {value}')
        elif attr.is_auto_scalar:
        elif attr['type'] in NlAttr.type_formats or attr.is_auto_scalar:
            scalar = int(value)
            real_type = attr["type"][0] + ('32' if scalar.bit_length() <= 32 else '64')
            format = NlAttr.get_format(real_type, attr.byte_order)
            attr_payload = format.pack(int(value))
        elif attr['type'] in NlAttr.type_formats:
            format = NlAttr.get_format(attr['type'], attr.byte_order)
            attr_payload = format.pack(int(value))
            if attr.is_auto_scalar:
                attr_type = attr["type"][0] + ('32' if scalar.bit_length() <= 32 else '64')
            else:
                attr_type = attr["type"]
            format = NlAttr.get_format(attr_type, attr.byte_order)
            attr_payload = format.pack(scalar)
        elif attr['type'] in "bitfield32":
            attr_payload = struct.pack("II", int(value["value"]), int(value["selector"]))
        elif attr['type'] == 'sub-message':