Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools: ynl: Add MAC address parsing support

Add missing support for parsing MAC addresses when display_hint is 'mac'
in the YNL library. This enables YNL CLI to accept MAC address strings
for attributes like lladdr in rt-neigh operations.

Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://patch.msgid.link/20251117024457.3034-2-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Hangbin Liu and committed by
Jakub Kicinski
4abe51db 616d8604

+9
+9
tools/net/ynl/pyynl/lib/ynl.py
··· 985 985 raw = bytes.fromhex(string) 986 986 else: 987 987 raw = int(string, 16) 988 + elif attr_spec.display_hint == 'mac': 989 + # Parse MAC address in format "00:11:22:33:44:55" or "001122334455" 990 + if ':' in string: 991 + mac_bytes = [int(x, 16) for x in string.split(':')] 992 + else: 993 + if len(string) % 2 != 0: 994 + raise Exception(f"Invalid MAC address format: {string}") 995 + mac_bytes = [int(string[i:i+2], 16) for i in range(0, len(string), 2)] 996 + raw = bytes(mac_bytes) 988 997 else: 989 998 raise Exception(f"Display hint '{attr_spec.display_hint}' not implemented" 990 999 f" when parsing '{attr_spec['name']}'")