Commit 0d00c733de

pseudoc <atlas.yu@canonical.com>
2024-09-25 09:30:46
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.
1 parent 0e876a6
Changed files (1)
lib
std
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,