chiark / gitweb /
sd-rtnl: add support for IFLA_INET6_*
authorTom Gundersen <teg@jklm.no>
Sun, 8 Feb 2015 18:31:46 +0000 (19:31 +0100)
committerTom Gundersen <teg@jklm.no>
Sun, 8 Feb 2015 19:15:37 +0000 (20:15 +0100)
src/libsystemd/sd-rtnl/rtnl-types.c

index 4ef698a..f2d5c8d 100644 (file)
@@ -265,6 +265,30 @@ static const NLTypeSystemUnion rtnl_prot_info_type_system_union = {
         .match_type = NL_MATCH_PROTOCOL,
 };
 
+static const struct NLType rtnl_af_spec_inet6_types[IFLA_INET6_MAX + 1] = {
+        [IFLA_INET6_FLAGS]              = { .type = NLA_U32 },
+/*
+        IFLA_INET6_CONF,
+        IFLA_INET6_STATS,
+        IFLA_INET6_MCAST,
+        IFLA_INET6_CACHEINFO,
+        IFLA_INET6_ICMP6STATS,
+*/
+        [IFLA_INET6_TOKEN]              = { .type = NLA_IN_ADDR },
+        [IFLA_INET6_ADDR_GEN_MODE]      = { .type = NLA_U8 },
+};
+
+static const NLTypeSystem rtnl_af_spec_type_systems[AF_MAX] = {
+        [AF_INET6] =    { .max = ELEMENTSOF(rtnl_af_spec_inet6_types) - 1,
+                          .types = rtnl_af_spec_inet6_types },
+};
+
+static const NLTypeSystemUnion rtnl_af_spec_type_system_union = {
+        .num = AF_MAX,
+        .type_systems = rtnl_af_spec_type_systems,
+        .match_type = NL_MATCH_PROTOCOL,
+};
+
 static const NLType rtnl_link_types[IFLA_MAX + 1 ] = {
         [IFLA_ADDRESS]          = { .type = NLA_ETHER_ADDR, },
         [IFLA_BROADCAST]        = { .type = NLA_ETHER_ADDR, },
@@ -298,7 +322,9 @@ static const NLType rtnl_link_types[IFLA_MAX + 1 ] = {
         [IFLA_STATS64],
         [IFLA_VF_PORTS]         = { .type = NLA_NESTED },
         [IFLA_PORT_SELF]        = { .type = NLA_NESTED },
-        [IFLA_AF_SPEC]          = { .type = NLA_NESTED },
+*/
+        [IFLA_AF_SPEC]          = { .type = NLA_NESTED, .type_system_union = &rtnl_af_spec_type_system_union },
+/*
         [IFLA_VF_PORTS],
         [IFLA_PORT_SELF],
         [IFLA_AF_SPEC],