commit 0d00c733de80f41e2e4bae848658213f7076d49e (tree)
parent 0e876a6378b5380900cf8755f624a670e8716f80
Author: pseudoc <atlas.yu@canonical.com>
Date: Wed, 25 Sep 2024 15:30:46 +0800
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.
Diffstat:
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git 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,