[PATCH net-next 10/11] tools: ynl: decode hex input
Donald Hunter
donald.hunter at gmail.com
Mon Sep 8 10:35:04 UTC 2025
Asbjørn Sloth Tønnesen <ast at fiberby.net> writes:
> On 9/6/25 12:27 AM, Jacob Keller wrote:
>> On 9/5/2025 3:51 AM, Donald Hunter wrote:
>>> Asbjørn Sloth Tønnesen <ast at fiberby.net> writes:
>>>
>>>> This patch add support for decoding hex input, so
>>>> that binary attributes can be read through --json.
>>>>
>>>> Example (using future wireguard.yaml):
>>>> $ sudo ./tools/net/ynl/pyynl/cli.py --family wireguard \
>>>> --do set-device --json '{"ifindex":3,
>>>> "private-key":"2a ae 6c 35 c9 4f cf <... to 32 bytes>"}'
>>>>
>>>> Signed-off-by: Asbjørn Sloth Tønnesen <ast at fiberby.net>
>>>
>>> Reviewed-by: Donald Hunter <donald.hunter at gmail.com>
>>>
>>> FWIW, the hex can include spaces or not when using bytes.fromhex(). When
>>> formatting hex for output, I chose to include spaces, but I don't really
>>> know if that was a good choice or not.
>> I also prefer the spaces for readability.
> I formatted it with spaces for clarity, even without spaces it was a bit
> long for one line. Spaces also has the advantage that you don't have to
> think about endianness.
>
> Should we define the display hints a bit more in a .rst, or is it OK that
> they end up being implementation specific for each language library? Do we
> want them to behave the same in a Rust YNL library, as they do in Python?
Yes we should probably extend the existing doc to at least describe some
of the defacto behaviour.
https://docs.kernel.org/userspace-api/netlink/specs.html#display-hint
> BTW: The rest of the key used in the example can be found with this key-gen:
> $ printf "hello world" | sha1sum
> [redacted key material]
More information about the WireGuard
mailing list