aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorHangbin Liu <liuhangbin@gmail.com>2018-04-18 19:06:42 +0800
committerDmitry Vyukov <dvyukov@google.com>2018-04-19 09:21:00 +0200
commitd1b2ef6921ec6c47d2e8b856a6558023cc1c930e (patch)
treeda961feea683c97c0b9926f46e8e847c410276d9 /sys
parent829f023456746402c5e958e624a7cabf3bef2e30 (diff)
sys/linux/socket_netlink_route: update RTM_GETSTATS PAYLOAD format
Update RTM_GETSTATS PAYLOAD format. Also fix ipv4_getroute and ipmr_getroute PAYLOAD format. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/386.go60
-rw-r--r--sys/linux/amd64.go60
-rw-r--r--sys/linux/arm.go60
-rw-r--r--sys/linux/arm64.go60
-rw-r--r--sys/linux/ppc64le.go60
-rw-r--r--sys/linux/socket_netlink_route.txt15
-rw-r--r--sys/linux/socket_netlink_route_386.const6
-rw-r--r--sys/linux/socket_netlink_route_amd64.const6
-rw-r--r--sys/linux/socket_netlink_route_arm.const6
-rw-r--r--sys/linux/socket_netlink_route_arm64.const6
-rw-r--r--sys/linux/socket_netlink_route_ppc64le.const6
11 files changed, 202 insertions, 143 deletions
diff --git a/sys/linux/386.go b/sys/linux/386.go
index df1c84ffb..2a601445b 100644
--- a/sys/linux/386.go
+++ b/sys/linux/386.go
@@ -3927,6 +3927,13 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 2}}},
&UnionType{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, FldName: "ifs_ifsu"},
}}},
+ {Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "if_stats_msg[AF_UNSPEC]", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 2}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ifindex", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "filter_mask", FldName: "filter_mask", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5}},
+ }}},
{Key: StructKey{Name: "ifa_cacheinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifa_cacheinfo", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_prefered", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_valid", TypeSize: 4}}},
@@ -7209,7 +7216,7 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getnetconf"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getstats"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, FldName: "getstats"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWNEIGH, int16], ndmsg, nd_policy]"}, FldName: "newneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELNEIGH, int16], ndmsg, nd_policy]"}, FldName: "delneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNEIGH, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getneigh"},
@@ -7220,7 +7227,7 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], ifaddrmsg[AF_INET], ifa_ipv4_policy]"}, FldName: "ipv4_getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET], devconf_ip_policy]"}, FldName: "ipv4_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_newaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_deladdr"},
@@ -7233,7 +7240,7 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET6], devconf_ip_policy]"}, FldName: "ipv6_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_delroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_getroute"},
@@ -7506,63 +7513,60 @@ var structDescs_386 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_INET]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 94},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
@@ -9974,15 +9978,9 @@ var structDescs_386 = []*KeyedStruct{
{Key: StructKey{Name: "rtgenmsg[AF_INET6]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET6]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 10},
}}},
- {Key: StructKey{Name: "rtgenmsg[AF_INET]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 2},
- }}},
{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_UNSPEC]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[RTNL_FAMILY_IPMR]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 128},
- }}},
{Key: StructKey{Name: "rtm_ipv4_policy"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtm_ipv4_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_DST, int16], ipv4_addr]"}, FldName: "RTA_DST"},
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_SRC, int16], ipv4_addr]"}, FldName: "RTA_SRC"},
@@ -25291,6 +25289,12 @@ var consts_386 = []ConstValue{
{Name: "IFLA_PORT_SELF", Value: 25},
{Name: "IFLA_PROMISCUITY", Value: 30},
{Name: "IFLA_PROTO_DOWN", Value: 39},
+ {Name: "IFLA_STATS_AF_SPEC", Value: 5},
+ {Name: "IFLA_STATS_LINK_64", Value: 1},
+ {Name: "IFLA_STATS_LINK_OFFLOAD_XSTATS", Value: 4},
+ {Name: "IFLA_STATS_LINK_XSTATS", Value: 2},
+ {Name: "IFLA_STATS_LINK_XSTATS_SLAVE", Value: 3},
+ {Name: "IFLA_STATS_UNSPEC"},
{Name: "IFLA_TXQLEN", Value: 13},
{Name: "IFLA_VFINFO_LIST", Value: 22},
{Name: "IFLA_VF_INFO", Value: 1},
@@ -28459,4 +28463,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "a0aee1b27859f6bcf4a24b8029808fc00dd551ab"
+const revision_386 = "fc0ed121007ac102aa0fb131706b566974a23dd1"
diff --git a/sys/linux/amd64.go b/sys/linux/amd64.go
index c1d556e8f..ce2d38a3a 100644
--- a/sys/linux/amd64.go
+++ b/sys/linux/amd64.go
@@ -4013,6 +4013,13 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 2}}},
&UnionType{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, FldName: "ifs_ifsu"},
}}},
+ {Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "if_stats_msg[AF_UNSPEC]", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 2}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ifindex", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "filter_mask", FldName: "filter_mask", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5}},
+ }}},
{Key: StructKey{Name: "ifa_cacheinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifa_cacheinfo", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_prefered", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_valid", TypeSize: 4}}},
@@ -7410,7 +7417,7 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getnetconf"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getstats"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, FldName: "getstats"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWNEIGH, int16], ndmsg, nd_policy]"}, FldName: "newneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELNEIGH, int16], ndmsg, nd_policy]"}, FldName: "delneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNEIGH, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getneigh"},
@@ -7421,7 +7428,7 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], ifaddrmsg[AF_INET], ifa_ipv4_policy]"}, FldName: "ipv4_getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET], devconf_ip_policy]"}, FldName: "ipv4_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_newaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_deladdr"},
@@ -7434,7 +7441,7 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET6], devconf_ip_policy]"}, FldName: "ipv6_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_delroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_getroute"},
@@ -7707,63 +7714,60 @@ var structDescs_amd64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_INET]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 94},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
@@ -10178,15 +10182,9 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "rtgenmsg[AF_INET6]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET6]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 10},
}}},
- {Key: StructKey{Name: "rtgenmsg[AF_INET]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 2},
- }}},
{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_UNSPEC]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[RTNL_FAMILY_IPMR]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 128},
- }}},
{Key: StructKey{Name: "rtm_ipv4_policy"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtm_ipv4_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_DST, int16], ipv4_addr]"}, FldName: "RTA_DST"},
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_SRC, int16], ipv4_addr]"}, FldName: "RTA_SRC"},
@@ -25930,6 +25928,12 @@ var consts_amd64 = []ConstValue{
{Name: "IFLA_PORT_SELF", Value: 25},
{Name: "IFLA_PROMISCUITY", Value: 30},
{Name: "IFLA_PROTO_DOWN", Value: 39},
+ {Name: "IFLA_STATS_AF_SPEC", Value: 5},
+ {Name: "IFLA_STATS_LINK_64", Value: 1},
+ {Name: "IFLA_STATS_LINK_OFFLOAD_XSTATS", Value: 4},
+ {Name: "IFLA_STATS_LINK_XSTATS", Value: 2},
+ {Name: "IFLA_STATS_LINK_XSTATS_SLAVE", Value: 3},
+ {Name: "IFLA_STATS_UNSPEC"},
{Name: "IFLA_TXQLEN", Value: 13},
{Name: "IFLA_VFINFO_LIST", Value: 22},
{Name: "IFLA_VF_INFO", Value: 1},
@@ -29123,4 +29127,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "71ed5825bf3c0e9b34a33f2feb7fd317f9750a76"
+const revision_amd64 = "c716d2ca89f24a2f3b177b6521926eb6936a91de"
diff --git a/sys/linux/arm.go b/sys/linux/arm.go
index 54f40940a..efc79915c 100644
--- a/sys/linux/arm.go
+++ b/sys/linux/arm.go
@@ -3932,6 +3932,13 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 2}}},
&UnionType{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, FldName: "ifs_ifsu"},
}}},
+ {Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "if_stats_msg[AF_UNSPEC]", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 2}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ifindex", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "filter_mask", FldName: "filter_mask", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5}},
+ }}},
{Key: StructKey{Name: "ifa_cacheinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifa_cacheinfo", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_prefered", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_valid", TypeSize: 4}}},
@@ -7052,7 +7059,7 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getnetconf"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getstats"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, FldName: "getstats"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWNEIGH, int16], ndmsg, nd_policy]"}, FldName: "newneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELNEIGH, int16], ndmsg, nd_policy]"}, FldName: "delneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNEIGH, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getneigh"},
@@ -7063,7 +7070,7 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], ifaddrmsg[AF_INET], ifa_ipv4_policy]"}, FldName: "ipv4_getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET], devconf_ip_policy]"}, FldName: "ipv4_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_newaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_deladdr"},
@@ -7076,7 +7083,7 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET6], devconf_ip_policy]"}, FldName: "ipv6_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_delroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_getroute"},
@@ -7349,63 +7356,60 @@ var structDescs_arm = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_INET]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 94},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
@@ -9817,15 +9821,9 @@ var structDescs_arm = []*KeyedStruct{
{Key: StructKey{Name: "rtgenmsg[AF_INET6]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET6]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 10},
}}},
- {Key: StructKey{Name: "rtgenmsg[AF_INET]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 2},
- }}},
{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_UNSPEC]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[RTNL_FAMILY_IPMR]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 128},
- }}},
{Key: StructKey{Name: "rtm_ipv4_policy"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtm_ipv4_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_DST, int16], ipv4_addr]"}, FldName: "RTA_DST"},
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_SRC, int16], ipv4_addr]"}, FldName: "RTA_SRC"},
@@ -25203,6 +25201,12 @@ var consts_arm = []ConstValue{
{Name: "IFLA_PORT_SELF", Value: 25},
{Name: "IFLA_PROMISCUITY", Value: 30},
{Name: "IFLA_PROTO_DOWN", Value: 39},
+ {Name: "IFLA_STATS_AF_SPEC", Value: 5},
+ {Name: "IFLA_STATS_LINK_64", Value: 1},
+ {Name: "IFLA_STATS_LINK_OFFLOAD_XSTATS", Value: 4},
+ {Name: "IFLA_STATS_LINK_XSTATS", Value: 2},
+ {Name: "IFLA_STATS_LINK_XSTATS_SLAVE", Value: 3},
+ {Name: "IFLA_STATS_UNSPEC"},
{Name: "IFLA_TXQLEN", Value: 13},
{Name: "IFLA_VFINFO_LIST", Value: 22},
{Name: "IFLA_VF_INFO", Value: 1},
@@ -28322,4 +28326,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "ed1efc9855ce67169ddb3588a5f7295bd619e729"
+const revision_arm = "ace49a8f778ef3af7544f14c8b909dc8c0c5169a"
diff --git a/sys/linux/arm64.go b/sys/linux/arm64.go
index 0160c9fd7..81eac4376 100644
--- a/sys/linux/arm64.go
+++ b/sys/linux/arm64.go
@@ -4013,6 +4013,13 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 2}}},
&UnionType{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, FldName: "ifs_ifsu"},
}}},
+ {Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "if_stats_msg[AF_UNSPEC]", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 2}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ifindex", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "filter_mask", FldName: "filter_mask", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5}},
+ }}},
{Key: StructKey{Name: "ifa_cacheinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifa_cacheinfo", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_prefered", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_valid", TypeSize: 4}}},
@@ -7215,7 +7222,7 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getnetconf"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getstats"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, FldName: "getstats"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWNEIGH, int16], ndmsg, nd_policy]"}, FldName: "newneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELNEIGH, int16], ndmsg, nd_policy]"}, FldName: "delneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNEIGH, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getneigh"},
@@ -7226,7 +7233,7 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], ifaddrmsg[AF_INET], ifa_ipv4_policy]"}, FldName: "ipv4_getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET], devconf_ip_policy]"}, FldName: "ipv4_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_newaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_deladdr"},
@@ -7239,7 +7246,7 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET6], devconf_ip_policy]"}, FldName: "ipv6_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_delroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_getroute"},
@@ -7512,63 +7519,60 @@ var structDescs_arm64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_INET]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 94},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
@@ -9983,15 +9987,9 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "rtgenmsg[AF_INET6]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET6]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 10},
}}},
- {Key: StructKey{Name: "rtgenmsg[AF_INET]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 2},
- }}},
{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_UNSPEC]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[RTNL_FAMILY_IPMR]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 128},
- }}},
{Key: StructKey{Name: "rtm_ipv4_policy"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtm_ipv4_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_DST, int16], ipv4_addr]"}, FldName: "RTA_DST"},
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_SRC, int16], ipv4_addr]"}, FldName: "RTA_SRC"},
@@ -25396,6 +25394,12 @@ var consts_arm64 = []ConstValue{
{Name: "IFLA_PORT_SELF", Value: 25},
{Name: "IFLA_PROMISCUITY", Value: 30},
{Name: "IFLA_PROTO_DOWN", Value: 39},
+ {Name: "IFLA_STATS_AF_SPEC", Value: 5},
+ {Name: "IFLA_STATS_LINK_64", Value: 1},
+ {Name: "IFLA_STATS_LINK_OFFLOAD_XSTATS", Value: 4},
+ {Name: "IFLA_STATS_LINK_XSTATS", Value: 2},
+ {Name: "IFLA_STATS_LINK_XSTATS_SLAVE", Value: 3},
+ {Name: "IFLA_STATS_UNSPEC"},
{Name: "IFLA_TXQLEN", Value: 13},
{Name: "IFLA_VFINFO_LIST", Value: 22},
{Name: "IFLA_VF_INFO", Value: 1},
@@ -28505,4 +28509,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "c5fb5b3d90f9def73427208738dc45b834b182f9"
+const revision_arm64 = "cdd5bf8cff3ec1e711a0c754a33646dad6bb2157"
diff --git a/sys/linux/ppc64le.go b/sys/linux/ppc64le.go
index a771514eb..8ceec1339 100644
--- a/sys/linux/ppc64le.go
+++ b/sys/linux/ppc64le.go
@@ -4007,6 +4007,13 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "size", TypeSize: 4, ArgDir: 2}}},
&UnionType{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, FldName: "ifs_ifsu"},
}}},
+ {Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "if_stats_msg[AF_UNSPEC]", TypeSize: 12}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "family", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad1", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad2", TypeSize: 2}}},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex", FldName: "ifindex", TypeSize: 4}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "filter_mask", FldName: "filter_mask", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5}},
+ }}},
{Key: StructKey{Name: "ifa_cacheinfo"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifa_cacheinfo", TypeSize: 16}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_prefered", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "ifa_valid", TypeSize: 4}}},
@@ -7170,7 +7177,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getnetconf"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getstats"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, FldName: "getstats"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWNEIGH, int16], ndmsg, nd_policy]"}, FldName: "newneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELNEIGH, int16], ndmsg, nd_policy]"}, FldName: "delneigh"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNEIGH, int16], rtgenmsg[AF_UNSPEC], void]"}, FldName: "getneigh"},
@@ -7181,7 +7188,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETADDR, int16], ifaddrmsg[AF_INET], ifa_ipv4_policy]"}, FldName: "ipv4_getaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_INET], rtm_ipv4_policy]"}, FldName: "ipv4_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, FldName: "ipv4_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET], devconf_ip_policy]"}, FldName: "ipv4_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_newaddr"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, FldName: "ipv6_deladdr"},
@@ -7194,7 +7201,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETNETCONF, int16], netconfmsg[AF_INET6], devconf_ip_policy]"}, FldName: "ipv6_getnetconf"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]"}, FldName: "ipmr_delroute"},
- &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
+ &StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, FldName: "ipmr_getroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_newroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_DELROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_delroute"},
&StructType{Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, FldName: "mpls_getroute"},
@@ -7467,63 +7474,60 @@ var structDescs_ppc64le = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_INET], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_INET]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtgenmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_INET]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_INET6], rtm_ipv6_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_INET6]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_ipv6_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[AF_MPLS], rtm_mpls_policy]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETROUTE, int16], rtmsg[RTNL_FAMILY_IPMR], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 26},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtmsg[AF_MPLS]"}, FldName: "payload"},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "rtm_mpls_policy"}}},
+ &StructType{Key: StructKey{Name: "rtmsg[RTNL_FAMILY_IPMR]"}, FldName: "payload"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
}, AlignAttr: 4}},
- {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], rtgenmsg[AF_UNSPEC], void]", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_GETSTATS, int16], if_stats_msg[AF_UNSPEC], void]", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 2}}, Val: 94},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "netlink_msg_flags", FldName: "flags", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 768, 256, 512, 1024, 2048}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "seq", TypeSize: 4}}, Kind: 2, RangeBegin: 7388453, RangeEnd: 7388461},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "pid", TypeSize: 4}}, Kind: 2, RangeBegin: 635427835, RangeEnd: 635427839},
- &StructType{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, FldName: "payload"},
+ &StructType{Key: StructKey{Name: "if_stats_msg[AF_UNSPEC]"}, FldName: "payload"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "attrs"}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "void"}, Kind: 1}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 3}}, IsPad: true},
}, AlignAttr: 4}},
{Key: StructKey{Name: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "netlink_msg_t[const[RTM_NEWADDR, int16], ifaddrmsg[AF_INET6], ifa_ipv6_policy]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Buf: "parent"},
@@ -9938,15 +9942,9 @@ var structDescs_ppc64le = []*KeyedStruct{
{Key: StructKey{Name: "rtgenmsg[AF_INET6]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET6]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 10},
}}},
- {Key: StructKey{Name: "rtgenmsg[AF_INET]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_INET]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 2},
- }}},
{Key: StructKey{Name: "rtgenmsg[AF_UNSPEC]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[AF_UNSPEC]", TypeSize: 1}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "rtgenmsg[RTNL_FAMILY_IPMR]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtgenmsg[RTNL_FAMILY_IPMR]", TypeSize: 1}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "rtgen_family", TypeSize: 1}}, Val: 128},
- }}},
{Key: StructKey{Name: "rtm_ipv4_policy"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "rtm_ipv4_policy", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_DST, int16], ipv4_addr]"}, FldName: "RTA_DST"},
&StructType{Key: StructKey{Name: "nlattr_t[const[RTA_SRC, int16], ipv4_addr]"}, FldName: "RTA_SRC"},
@@ -25163,6 +25161,12 @@ var consts_ppc64le = []ConstValue{
{Name: "IFLA_PORT_SELF", Value: 25},
{Name: "IFLA_PROMISCUITY", Value: 30},
{Name: "IFLA_PROTO_DOWN", Value: 39},
+ {Name: "IFLA_STATS_AF_SPEC", Value: 5},
+ {Name: "IFLA_STATS_LINK_64", Value: 1},
+ {Name: "IFLA_STATS_LINK_OFFLOAD_XSTATS", Value: 4},
+ {Name: "IFLA_STATS_LINK_XSTATS", Value: 2},
+ {Name: "IFLA_STATS_LINK_XSTATS_SLAVE", Value: 3},
+ {Name: "IFLA_STATS_UNSPEC"},
{Name: "IFLA_TXQLEN", Value: 13},
{Name: "IFLA_VFINFO_LIST", Value: 22},
{Name: "IFLA_VF_INFO", Value: 1},
@@ -28267,4 +28271,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "5e276440fd688bd3069d880322531857c1a92184"
+const revision_ppc64le = "e9495aae8da8022d330e29c5bc70dcc4066184bf"
diff --git a/sys/linux/socket_netlink_route.txt b/sys/linux/socket_netlink_route.txt
index 4a2d27f59..e83cab916 100644
--- a/sys/linux/socket_netlink_route.txt
+++ b/sys/linux/socket_netlink_route.txt
@@ -28,7 +28,7 @@ netlink_msg_route [
getaddr netlink_msg[RTM_GETADDR, rtgenmsg[AF_UNSPEC], void]
getroute netlink_msg[RTM_GETROUTE, rtgenmsg[AF_UNSPEC], void]
getnetconf netlink_msg[RTM_GETNETCONF, rtgenmsg[AF_UNSPEC], void]
- getstats netlink_msg[RTM_GETSTATS, rtgenmsg[AF_UNSPEC], void]
+ getstats netlink_msg[RTM_GETSTATS, if_stats_msg[AF_UNSPEC], void]
newneigh netlink_msg[RTM_NEWNEIGH, ndmsg, nd_policy]
delneigh netlink_msg[RTM_DELNEIGH, ndmsg, nd_policy]
getneigh netlink_msg[RTM_GETNEIGH, rtgenmsg[AF_UNSPEC], void]
@@ -40,7 +40,7 @@ netlink_msg_route [
ipv4_getaddr netlink_msg[RTM_GETADDR, ifaddrmsg[AF_INET], ifa_ipv4_policy]
ipv4_newroute netlink_msg[RTM_NEWROUTE, rtmsg[AF_INET], rtm_ipv4_policy]
ipv4_delroute netlink_msg[RTM_DELROUTE, rtmsg[AF_INET], rtm_ipv4_policy]
- ipv4_getroute netlink_msg[RTM_GETROUTE, rtgenmsg[AF_INET], void]
+ ipv4_getroute netlink_msg[RTM_GETROUTE, rtmsg[AF_INET], void]
ipv4_getnetconf netlink_msg[RTM_GETNETCONF, netconfmsg[AF_INET], devconf_ip_policy]
ipv6_newaddr netlink_msg[RTM_NEWADDR, ifaddrmsg[AF_INET6], ifa_ipv6_policy]
@@ -55,7 +55,7 @@ netlink_msg_route [
ipmr_newroute netlink_msg[RTM_NEWROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]
ipmr_delroute netlink_msg[RTM_DELROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy]
- ipmr_getroute netlink_msg[RTM_GETROUTE, rtgenmsg[RTNL_FAMILY_IPMR], void]
+ ipmr_getroute netlink_msg[RTM_GETROUTE, rtmsg[RTNL_FAMILY_IPMR], void]
mpls_newroute netlink_msg[RTM_NEWROUTE, rtmsg[AF_MPLS], rtm_mpls_policy]
mpls_delroute netlink_msg[RTM_DELROUTE, rtmsg[AF_MPLS], rtm_mpls_policy]
@@ -123,6 +123,14 @@ ndtmsg {
ndm_pad2 const[0, int16]
}
+type if_stats_msg[FAMILY] {
+ family const[FAMILY, int8]
+ pad1 const[0, int8]
+ pad2 const[0, int16]
+ ifindex ifindex
+ filter_mask flags[filter_mask, int32]
+}
+
ifla_policy [
IFLA_IFNAME nlattr[IFLA_IFNAME, devname]
IFLA_ADDRESS nlattr[IFLA_ADDRESS, mac_addr]
@@ -337,3 +345,4 @@ ndm_state = NUD_INCOMPLETE, NUD_REACHABLE, NUD_STALE, NUD_DELAY, NUD_PROBE, NUD_
ndm_flags = NTF_USE, NTF_SELF, NTF_MASTER, NTF_PROXY, NTF_EXT_LEARNED, NTF_OFFLOADED, NTF_ROUTER
ifa_prefixlen = 0, 1, 8, 16, 24, 31, 32, 56, 63, 64, 128
rtm_addr_len = 0, 16, 20, 32, 128
+filter_mask = IFLA_STATS_UNSPEC, IFLA_STATS_LINK_64, IFLA_STATS_LINK_XSTATS, IFLA_STATS_LINK_XSTATS_SLAVE, IFLA_STATS_LINK_OFFLOAD_XSTATS, IFLA_STATS_AF_SPEC
diff --git a/sys/linux/socket_netlink_route_386.const b/sys/linux/socket_netlink_route_386.const
index c89b6a089..fe7677f0a 100644
--- a/sys/linux/socket_netlink_route_386.const
+++ b/sys/linux/socket_netlink_route_386.const
@@ -72,6 +72,12 @@ IFLA_PHYS_SWITCH_ID = 36
IFLA_PORT_SELF = 25
IFLA_PROMISCUITY = 30
IFLA_PROTO_DOWN = 39
+IFLA_STATS_AF_SPEC = 5
+IFLA_STATS_LINK_64 = 1
+IFLA_STATS_LINK_OFFLOAD_XSTATS = 4
+IFLA_STATS_LINK_XSTATS = 2
+IFLA_STATS_LINK_XSTATS_SLAVE = 3
+IFLA_STATS_UNSPEC = 0
IFLA_TXQLEN = 13
IFLA_VFINFO_LIST = 22
IFLA_VF_INFO = 1
diff --git a/sys/linux/socket_netlink_route_amd64.const b/sys/linux/socket_netlink_route_amd64.const
index f972ac8c7..230a71350 100644
--- a/sys/linux/socket_netlink_route_amd64.const
+++ b/sys/linux/socket_netlink_route_amd64.const
@@ -72,6 +72,12 @@ IFLA_PHYS_SWITCH_ID = 36
IFLA_PORT_SELF = 25
IFLA_PROMISCUITY = 30
IFLA_PROTO_DOWN = 39
+IFLA_STATS_AF_SPEC = 5
+IFLA_STATS_LINK_64 = 1
+IFLA_STATS_LINK_OFFLOAD_XSTATS = 4
+IFLA_STATS_LINK_XSTATS = 2
+IFLA_STATS_LINK_XSTATS_SLAVE = 3
+IFLA_STATS_UNSPEC = 0
IFLA_TXQLEN = 13
IFLA_VFINFO_LIST = 22
IFLA_VF_INFO = 1
diff --git a/sys/linux/socket_netlink_route_arm.const b/sys/linux/socket_netlink_route_arm.const
index e684c66d9..902cc5f6a 100644
--- a/sys/linux/socket_netlink_route_arm.const
+++ b/sys/linux/socket_netlink_route_arm.const
@@ -72,6 +72,12 @@ IFLA_PHYS_SWITCH_ID = 36
IFLA_PORT_SELF = 25
IFLA_PROMISCUITY = 30
IFLA_PROTO_DOWN = 39
+IFLA_STATS_AF_SPEC = 5
+IFLA_STATS_LINK_64 = 1
+IFLA_STATS_LINK_OFFLOAD_XSTATS = 4
+IFLA_STATS_LINK_XSTATS = 2
+IFLA_STATS_LINK_XSTATS_SLAVE = 3
+IFLA_STATS_UNSPEC = 0
IFLA_TXQLEN = 13
IFLA_VFINFO_LIST = 22
IFLA_VF_INFO = 1
diff --git a/sys/linux/socket_netlink_route_arm64.const b/sys/linux/socket_netlink_route_arm64.const
index 7c75022cf..474897065 100644
--- a/sys/linux/socket_netlink_route_arm64.const
+++ b/sys/linux/socket_netlink_route_arm64.const
@@ -72,6 +72,12 @@ IFLA_PHYS_SWITCH_ID = 36
IFLA_PORT_SELF = 25
IFLA_PROMISCUITY = 30
IFLA_PROTO_DOWN = 39
+IFLA_STATS_AF_SPEC = 5
+IFLA_STATS_LINK_64 = 1
+IFLA_STATS_LINK_OFFLOAD_XSTATS = 4
+IFLA_STATS_LINK_XSTATS = 2
+IFLA_STATS_LINK_XSTATS_SLAVE = 3
+IFLA_STATS_UNSPEC = 0
IFLA_TXQLEN = 13
IFLA_VFINFO_LIST = 22
IFLA_VF_INFO = 1
diff --git a/sys/linux/socket_netlink_route_ppc64le.const b/sys/linux/socket_netlink_route_ppc64le.const
index 191cfaddf..f19619821 100644
--- a/sys/linux/socket_netlink_route_ppc64le.const
+++ b/sys/linux/socket_netlink_route_ppc64le.const
@@ -72,6 +72,12 @@ IFLA_PHYS_SWITCH_ID = 36
IFLA_PORT_SELF = 25
IFLA_PROMISCUITY = 30
IFLA_PROTO_DOWN = 39
+IFLA_STATS_AF_SPEC = 5
+IFLA_STATS_LINK_64 = 1
+IFLA_STATS_LINK_OFFLOAD_XSTATS = 4
+IFLA_STATS_LINK_XSTATS = 2
+IFLA_STATS_LINK_XSTATS_SLAVE = 3
+IFLA_STATS_UNSPEC = 0
IFLA_TXQLEN = 13
IFLA_VFINFO_LIST = 22
IFLA_VF_INFO = 1