From 0d00c733de80f41e2e4bae848658213f7076d49e Mon Sep 17 00:00:00 2001 From: pseudoc Date: Wed, 25 Sep 2024 15:30:46 +0800 Subject: [PATCH] std.os.linux: extend rtattr.type to support IFA_* This is a breaking change which updates the `rtattr.type` from `IFLA` to `union { IFLA, IFA }`. `IFLA` is for the `RTM_*LINK` messages and `IFA` is for the `RTM_*ADDR` messages. --- lib/std/os/linux.zig | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 46ca9ed6f4..aaf08395fa 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -8064,11 +8064,33 @@ pub const rtattr = extern struct { len: c_ushort, /// Type of option - type: IFLA, + type: extern union { + /// IFLA_* from linux/if_link.h + link: IFLA, + /// IFA_* from linux/if_addr.h + addr: IFA, + }, pub const ALIGNTO = 4; }; +pub const IFA = enum(c_ushort) { + UNSPEC, + ADDRESS, + LOCAL, + LABEL, + BROADCAST, + ANYCAST, + CACHEINFO, + MULTICAST, + FLAGS, + RT_PRIORITY, + TARGET_NETNSID, + PROTO, + + _, +}; + pub const IFLA = enum(c_ushort) { UNSPEC, ADDRESS,