unix/linux: Prefixmsg and PrefixCacheinfo structs

These structs and enumeration constants are used
to parse RTM_NEWPREFIX netlink messages.

Fixes golang/go#77662

Change-Id: I1e7a92e771701c0c790c15e58ad78cd8fe1e5cf5
Reviewed-on: https://go-review.googlesource.com/c/sys/+/746420
Reviewed-by: Mark Freeman <markfreeman@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Florian Lehner <lehner.florian86@gmail.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index f8ad099..308d65a 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -841,110 +841,115 @@
 // Netlink routing and interface messages
 
 const (
-	NDA_UNSPEC         = C.NDA_UNSPEC
-	NDA_DST            = C.NDA_DST
-	NDA_LLADDR         = C.NDA_LLADDR
-	NDA_CACHEINFO      = C.NDA_CACHEINFO
-	NDA_PROBES         = C.NDA_PROBES
-	NDA_VLAN           = C.NDA_VLAN
-	NDA_PORT           = C.NDA_PORT
-	NDA_VNI            = C.NDA_VNI
-	NDA_IFINDEX        = C.NDA_IFINDEX
-	NDA_MASTER         = C.NDA_MASTER
-	NDA_LINK_NETNSID   = C.NDA_LINK_NETNSID
-	NDA_SRC_VNI        = C.NDA_SRC_VNI
-	NTF_USE            = C.NTF_USE
-	NTF_SELF           = C.NTF_SELF
-	NTF_MASTER         = C.NTF_MASTER
-	NTF_PROXY          = C.NTF_PROXY
-	NTF_EXT_LEARNED    = C.NTF_EXT_LEARNED
-	NTF_OFFLOADED      = C.NTF_OFFLOADED
-	NTF_ROUTER         = C.NTF_ROUTER
-	NUD_INCOMPLETE     = C.NUD_INCOMPLETE
-	NUD_REACHABLE      = C.NUD_REACHABLE
-	NUD_STALE          = C.NUD_STALE
-	NUD_DELAY          = C.NUD_DELAY
-	NUD_PROBE          = C.NUD_PROBE
-	NUD_FAILED         = C.NUD_FAILED
-	NUD_NOARP          = C.NUD_NOARP
-	NUD_PERMANENT      = C.NUD_PERMANENT
-	NUD_NONE           = C.NUD_NONE
-	IFA_UNSPEC         = C.IFA_UNSPEC
-	IFA_ADDRESS        = C.IFA_ADDRESS
-	IFA_LOCAL          = C.IFA_LOCAL
-	IFA_LABEL          = C.IFA_LABEL
-	IFA_BROADCAST      = C.IFA_BROADCAST
-	IFA_ANYCAST        = C.IFA_ANYCAST
-	IFA_CACHEINFO      = C.IFA_CACHEINFO
-	IFA_MULTICAST      = C.IFA_MULTICAST
-	IFA_FLAGS          = C.IFA_FLAGS
-	IFA_RT_PRIORITY    = C.IFA_RT_PRIORITY
-	IFA_TARGET_NETNSID = C.IFA_TARGET_NETNSID
-	IFAL_LABEL         = C.IFAL_LABEL
-	IFAL_ADDRESS       = C.IFAL_ADDRESS
-	RT_SCOPE_UNIVERSE  = C.RT_SCOPE_UNIVERSE
-	RT_SCOPE_SITE      = C.RT_SCOPE_SITE
-	RT_SCOPE_LINK      = C.RT_SCOPE_LINK
-	RT_SCOPE_HOST      = C.RT_SCOPE_HOST
-	RT_SCOPE_NOWHERE   = C.RT_SCOPE_NOWHERE
-	RT_TABLE_UNSPEC    = C.RT_TABLE_UNSPEC
-	RT_TABLE_COMPAT    = C.RT_TABLE_COMPAT
-	RT_TABLE_DEFAULT   = C.RT_TABLE_DEFAULT
-	RT_TABLE_MAIN      = C.RT_TABLE_MAIN
-	RT_TABLE_LOCAL     = C.RT_TABLE_LOCAL
-	RT_TABLE_MAX       = C.RT_TABLE_MAX
-	RTA_UNSPEC         = C.RTA_UNSPEC
-	RTA_DST            = C.RTA_DST
-	RTA_SRC            = C.RTA_SRC
-	RTA_IIF            = C.RTA_IIF
-	RTA_OIF            = C.RTA_OIF
-	RTA_GATEWAY        = C.RTA_GATEWAY
-	RTA_PRIORITY       = C.RTA_PRIORITY
-	RTA_PREFSRC        = C.RTA_PREFSRC
-	RTA_METRICS        = C.RTA_METRICS
-	RTA_MULTIPATH      = C.RTA_MULTIPATH
-	RTA_FLOW           = C.RTA_FLOW
-	RTA_CACHEINFO      = C.RTA_CACHEINFO
-	RTA_TABLE          = C.RTA_TABLE
-	RTA_MARK           = C.RTA_MARK
-	RTA_MFC_STATS      = C.RTA_MFC_STATS
-	RTA_VIA            = C.RTA_VIA
-	RTA_NEWDST         = C.RTA_NEWDST
-	RTA_PREF           = C.RTA_PREF
-	RTA_ENCAP_TYPE     = C.RTA_ENCAP_TYPE
-	RTA_ENCAP          = C.RTA_ENCAP
-	RTA_EXPIRES        = C.RTA_EXPIRES
-	RTA_PAD            = C.RTA_PAD
-	RTA_UID            = C.RTA_UID
-	RTA_TTL_PROPAGATE  = C.RTA_TTL_PROPAGATE
-	RTA_IP_PROTO       = C.RTA_IP_PROTO
-	RTA_SPORT          = C.RTA_SPORT
-	RTA_DPORT          = C.RTA_DPORT
-	RTN_UNSPEC         = C.RTN_UNSPEC
-	RTN_UNICAST        = C.RTN_UNICAST
-	RTN_LOCAL          = C.RTN_LOCAL
-	RTN_BROADCAST      = C.RTN_BROADCAST
-	RTN_ANYCAST        = C.RTN_ANYCAST
-	RTN_MULTICAST      = C.RTN_MULTICAST
-	RTN_BLACKHOLE      = C.RTN_BLACKHOLE
-	RTN_UNREACHABLE    = C.RTN_UNREACHABLE
-	RTN_PROHIBIT       = C.RTN_PROHIBIT
-	RTN_THROW          = C.RTN_THROW
-	RTN_NAT            = C.RTN_NAT
-	RTN_XRESOLVE       = C.RTN_XRESOLVE
-	SizeofNlMsghdr     = C.sizeof_struct_nlmsghdr
-	SizeofNlMsgerr     = C.sizeof_struct_nlmsgerr
-	SizeofRtGenmsg     = C.sizeof_struct_rtgenmsg
-	SizeofNlAttr       = C.sizeof_struct_nlattr
-	SizeofRtAttr       = C.sizeof_struct_rtattr
-	SizeofIfInfomsg    = C.sizeof_struct_ifinfomsg
-	SizeofIfAddrmsg    = C.sizeof_struct_ifaddrmsg
-	SizeofIfAddrlblmsg = C.sizeof_struct_ifaddrlblmsg
-	SizeofIfaCacheinfo = C.sizeof_struct_ifa_cacheinfo
-	SizeofRtMsg        = C.sizeof_struct_rtmsg
-	SizeofRtNexthop    = C.sizeof_struct_rtnexthop
-	SizeofNdUseroptmsg = C.sizeof_struct_nduseroptmsg
-	SizeofNdMsg        = C.sizeof_struct_ndmsg
+	NDA_UNSPEC            = C.NDA_UNSPEC
+	NDA_DST               = C.NDA_DST
+	NDA_LLADDR            = C.NDA_LLADDR
+	NDA_CACHEINFO         = C.NDA_CACHEINFO
+	NDA_PROBES            = C.NDA_PROBES
+	NDA_VLAN              = C.NDA_VLAN
+	NDA_PORT              = C.NDA_PORT
+	NDA_VNI               = C.NDA_VNI
+	NDA_IFINDEX           = C.NDA_IFINDEX
+	NDA_MASTER            = C.NDA_MASTER
+	NDA_LINK_NETNSID      = C.NDA_LINK_NETNSID
+	NDA_SRC_VNI           = C.NDA_SRC_VNI
+	NTF_USE               = C.NTF_USE
+	NTF_SELF              = C.NTF_SELF
+	NTF_MASTER            = C.NTF_MASTER
+	NTF_PROXY             = C.NTF_PROXY
+	NTF_EXT_LEARNED       = C.NTF_EXT_LEARNED
+	NTF_OFFLOADED         = C.NTF_OFFLOADED
+	NTF_ROUTER            = C.NTF_ROUTER
+	NUD_INCOMPLETE        = C.NUD_INCOMPLETE
+	NUD_REACHABLE         = C.NUD_REACHABLE
+	NUD_STALE             = C.NUD_STALE
+	NUD_DELAY             = C.NUD_DELAY
+	NUD_PROBE             = C.NUD_PROBE
+	NUD_FAILED            = C.NUD_FAILED
+	NUD_NOARP             = C.NUD_NOARP
+	NUD_PERMANENT         = C.NUD_PERMANENT
+	NUD_NONE              = C.NUD_NONE
+	IFA_UNSPEC            = C.IFA_UNSPEC
+	IFA_ADDRESS           = C.IFA_ADDRESS
+	IFA_LOCAL             = C.IFA_LOCAL
+	IFA_LABEL             = C.IFA_LABEL
+	IFA_BROADCAST         = C.IFA_BROADCAST
+	IFA_ANYCAST           = C.IFA_ANYCAST
+	IFA_CACHEINFO         = C.IFA_CACHEINFO
+	IFA_MULTICAST         = C.IFA_MULTICAST
+	IFA_FLAGS             = C.IFA_FLAGS
+	IFA_RT_PRIORITY       = C.IFA_RT_PRIORITY
+	IFA_TARGET_NETNSID    = C.IFA_TARGET_NETNSID
+	IFAL_LABEL            = C.IFAL_LABEL
+	IFAL_ADDRESS          = C.IFAL_ADDRESS
+	RT_SCOPE_UNIVERSE     = C.RT_SCOPE_UNIVERSE
+	RT_SCOPE_SITE         = C.RT_SCOPE_SITE
+	RT_SCOPE_LINK         = C.RT_SCOPE_LINK
+	RT_SCOPE_HOST         = C.RT_SCOPE_HOST
+	RT_SCOPE_NOWHERE      = C.RT_SCOPE_NOWHERE
+	RT_TABLE_UNSPEC       = C.RT_TABLE_UNSPEC
+	RT_TABLE_COMPAT       = C.RT_TABLE_COMPAT
+	RT_TABLE_DEFAULT      = C.RT_TABLE_DEFAULT
+	RT_TABLE_MAIN         = C.RT_TABLE_MAIN
+	RT_TABLE_LOCAL        = C.RT_TABLE_LOCAL
+	RT_TABLE_MAX          = C.RT_TABLE_MAX
+	RTA_UNSPEC            = C.RTA_UNSPEC
+	RTA_DST               = C.RTA_DST
+	RTA_SRC               = C.RTA_SRC
+	RTA_IIF               = C.RTA_IIF
+	RTA_OIF               = C.RTA_OIF
+	RTA_GATEWAY           = C.RTA_GATEWAY
+	RTA_PRIORITY          = C.RTA_PRIORITY
+	RTA_PREFSRC           = C.RTA_PREFSRC
+	RTA_METRICS           = C.RTA_METRICS
+	RTA_MULTIPATH         = C.RTA_MULTIPATH
+	RTA_FLOW              = C.RTA_FLOW
+	RTA_CACHEINFO         = C.RTA_CACHEINFO
+	RTA_TABLE             = C.RTA_TABLE
+	RTA_MARK              = C.RTA_MARK
+	RTA_MFC_STATS         = C.RTA_MFC_STATS
+	RTA_VIA               = C.RTA_VIA
+	RTA_NEWDST            = C.RTA_NEWDST
+	RTA_PREF              = C.RTA_PREF
+	RTA_ENCAP_TYPE        = C.RTA_ENCAP_TYPE
+	RTA_ENCAP             = C.RTA_ENCAP
+	RTA_EXPIRES           = C.RTA_EXPIRES
+	RTA_PAD               = C.RTA_PAD
+	RTA_UID               = C.RTA_UID
+	RTA_TTL_PROPAGATE     = C.RTA_TTL_PROPAGATE
+	RTA_IP_PROTO          = C.RTA_IP_PROTO
+	RTA_SPORT             = C.RTA_SPORT
+	RTA_DPORT             = C.RTA_DPORT
+	RTN_UNSPEC            = C.RTN_UNSPEC
+	RTN_UNICAST           = C.RTN_UNICAST
+	RTN_LOCAL             = C.RTN_LOCAL
+	RTN_BROADCAST         = C.RTN_BROADCAST
+	RTN_ANYCAST           = C.RTN_ANYCAST
+	RTN_MULTICAST         = C.RTN_MULTICAST
+	RTN_BLACKHOLE         = C.RTN_BLACKHOLE
+	RTN_UNREACHABLE       = C.RTN_UNREACHABLE
+	RTN_PROHIBIT          = C.RTN_PROHIBIT
+	RTN_THROW             = C.RTN_THROW
+	RTN_NAT               = C.RTN_NAT
+	RTN_XRESOLVE          = C.RTN_XRESOLVE
+	PREFIX_UNSPEC         = C.PREFIX_UNSPEC
+	PREFIX_ADDRESS        = C.PREFIX_ADDRESS
+	PREFIX_CACHEINFO      = C.PREFIX_CACHEINFO
+	SizeofNlMsghdr        = C.sizeof_struct_nlmsghdr
+	SizeofNlMsgerr        = C.sizeof_struct_nlmsgerr
+	SizeofRtGenmsg        = C.sizeof_struct_rtgenmsg
+	SizeofNlAttr          = C.sizeof_struct_nlattr
+	SizeofRtAttr          = C.sizeof_struct_rtattr
+	SizeofIfInfomsg       = C.sizeof_struct_ifinfomsg
+	SizeofPrefixmsg       = C.sizeof_struct_prefixmsg
+	SizeofPrefixCacheinfo = C.sizeof_struct_prefix_cacheinfo
+	SizeofIfAddrmsg       = C.sizeof_struct_ifaddrmsg
+	SizeofIfAddrlblmsg    = C.sizeof_struct_ifaddrlblmsg
+	SizeofIfaCacheinfo    = C.sizeof_struct_ifa_cacheinfo
+	SizeofRtMsg           = C.sizeof_struct_rtmsg
+	SizeofRtNexthop       = C.sizeof_struct_rtnexthop
+	SizeofNdUseroptmsg    = C.sizeof_struct_nduseroptmsg
+	SizeofNdMsg           = C.sizeof_struct_ndmsg
 )
 
 type NlMsghdr C.struct_nlmsghdr
@@ -959,6 +964,10 @@
 
 type IfInfomsg C.struct_ifinfomsg
 
+type Prefixmsg C.struct_prefixmsg
+
+type PrefixCacheinfo C.struct_prefix_cacheinfo
+
 type IfAddrmsg C.struct_ifaddrmsg
 
 type IfAddrlblmsg C.struct_ifaddrlblmsg
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index c1a4670..45476a7 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -593,110 +593,115 @@
 )
 
 const (
-	NDA_UNSPEC         = 0x0
-	NDA_DST            = 0x1
-	NDA_LLADDR         = 0x2
-	NDA_CACHEINFO      = 0x3
-	NDA_PROBES         = 0x4
-	NDA_VLAN           = 0x5
-	NDA_PORT           = 0x6
-	NDA_VNI            = 0x7
-	NDA_IFINDEX        = 0x8
-	NDA_MASTER         = 0x9
-	NDA_LINK_NETNSID   = 0xa
-	NDA_SRC_VNI        = 0xb
-	NTF_USE            = 0x1
-	NTF_SELF           = 0x2
-	NTF_MASTER         = 0x4
-	NTF_PROXY          = 0x8
-	NTF_EXT_LEARNED    = 0x10
-	NTF_OFFLOADED      = 0x20
-	NTF_ROUTER         = 0x80
-	NUD_INCOMPLETE     = 0x1
-	NUD_REACHABLE      = 0x2
-	NUD_STALE          = 0x4
-	NUD_DELAY          = 0x8
-	NUD_PROBE          = 0x10
-	NUD_FAILED         = 0x20
-	NUD_NOARP          = 0x40
-	NUD_PERMANENT      = 0x80
-	NUD_NONE           = 0x0
-	IFA_UNSPEC         = 0x0
-	IFA_ADDRESS        = 0x1
-	IFA_LOCAL          = 0x2
-	IFA_LABEL          = 0x3
-	IFA_BROADCAST      = 0x4
-	IFA_ANYCAST        = 0x5
-	IFA_CACHEINFO      = 0x6
-	IFA_MULTICAST      = 0x7
-	IFA_FLAGS          = 0x8
-	IFA_RT_PRIORITY    = 0x9
-	IFA_TARGET_NETNSID = 0xa
-	IFAL_LABEL         = 0x2
-	IFAL_ADDRESS       = 0x1
-	RT_SCOPE_UNIVERSE  = 0x0
-	RT_SCOPE_SITE      = 0xc8
-	RT_SCOPE_LINK      = 0xfd
-	RT_SCOPE_HOST      = 0xfe
-	RT_SCOPE_NOWHERE   = 0xff
-	RT_TABLE_UNSPEC    = 0x0
-	RT_TABLE_COMPAT    = 0xfc
-	RT_TABLE_DEFAULT   = 0xfd
-	RT_TABLE_MAIN      = 0xfe
-	RT_TABLE_LOCAL     = 0xff
-	RT_TABLE_MAX       = 0xffffffff
-	RTA_UNSPEC         = 0x0
-	RTA_DST            = 0x1
-	RTA_SRC            = 0x2
-	RTA_IIF            = 0x3
-	RTA_OIF            = 0x4
-	RTA_GATEWAY        = 0x5
-	RTA_PRIORITY       = 0x6
-	RTA_PREFSRC        = 0x7
-	RTA_METRICS        = 0x8
-	RTA_MULTIPATH      = 0x9
-	RTA_FLOW           = 0xb
-	RTA_CACHEINFO      = 0xc
-	RTA_TABLE          = 0xf
-	RTA_MARK           = 0x10
-	RTA_MFC_STATS      = 0x11
-	RTA_VIA            = 0x12
-	RTA_NEWDST         = 0x13
-	RTA_PREF           = 0x14
-	RTA_ENCAP_TYPE     = 0x15
-	RTA_ENCAP          = 0x16
-	RTA_EXPIRES        = 0x17
-	RTA_PAD            = 0x18
-	RTA_UID            = 0x19
-	RTA_TTL_PROPAGATE  = 0x1a
-	RTA_IP_PROTO       = 0x1b
-	RTA_SPORT          = 0x1c
-	RTA_DPORT          = 0x1d
-	RTN_UNSPEC         = 0x0
-	RTN_UNICAST        = 0x1
-	RTN_LOCAL          = 0x2
-	RTN_BROADCAST      = 0x3
-	RTN_ANYCAST        = 0x4
-	RTN_MULTICAST      = 0x5
-	RTN_BLACKHOLE      = 0x6
-	RTN_UNREACHABLE    = 0x7
-	RTN_PROHIBIT       = 0x8
-	RTN_THROW          = 0x9
-	RTN_NAT            = 0xa
-	RTN_XRESOLVE       = 0xb
-	SizeofNlMsghdr     = 0x10
-	SizeofNlMsgerr     = 0x14
-	SizeofRtGenmsg     = 0x1
-	SizeofNlAttr       = 0x4
-	SizeofRtAttr       = 0x4
-	SizeofIfInfomsg    = 0x10
-	SizeofIfAddrmsg    = 0x8
-	SizeofIfAddrlblmsg = 0xc
-	SizeofIfaCacheinfo = 0x10
-	SizeofRtMsg        = 0xc
-	SizeofRtNexthop    = 0x8
-	SizeofNdUseroptmsg = 0x10
-	SizeofNdMsg        = 0xc
+	NDA_UNSPEC            = 0x0
+	NDA_DST               = 0x1
+	NDA_LLADDR            = 0x2
+	NDA_CACHEINFO         = 0x3
+	NDA_PROBES            = 0x4
+	NDA_VLAN              = 0x5
+	NDA_PORT              = 0x6
+	NDA_VNI               = 0x7
+	NDA_IFINDEX           = 0x8
+	NDA_MASTER            = 0x9
+	NDA_LINK_NETNSID      = 0xa
+	NDA_SRC_VNI           = 0xb
+	NTF_USE               = 0x1
+	NTF_SELF              = 0x2
+	NTF_MASTER            = 0x4
+	NTF_PROXY             = 0x8
+	NTF_EXT_LEARNED       = 0x10
+	NTF_OFFLOADED         = 0x20
+	NTF_ROUTER            = 0x80
+	NUD_INCOMPLETE        = 0x1
+	NUD_REACHABLE         = 0x2
+	NUD_STALE             = 0x4
+	NUD_DELAY             = 0x8
+	NUD_PROBE             = 0x10
+	NUD_FAILED            = 0x20
+	NUD_NOARP             = 0x40
+	NUD_PERMANENT         = 0x80
+	NUD_NONE              = 0x0
+	IFA_UNSPEC            = 0x0
+	IFA_ADDRESS           = 0x1
+	IFA_LOCAL             = 0x2
+	IFA_LABEL             = 0x3
+	IFA_BROADCAST         = 0x4
+	IFA_ANYCAST           = 0x5
+	IFA_CACHEINFO         = 0x6
+	IFA_MULTICAST         = 0x7
+	IFA_FLAGS             = 0x8
+	IFA_RT_PRIORITY       = 0x9
+	IFA_TARGET_NETNSID    = 0xa
+	IFAL_LABEL            = 0x2
+	IFAL_ADDRESS          = 0x1
+	RT_SCOPE_UNIVERSE     = 0x0
+	RT_SCOPE_SITE         = 0xc8
+	RT_SCOPE_LINK         = 0xfd
+	RT_SCOPE_HOST         = 0xfe
+	RT_SCOPE_NOWHERE      = 0xff
+	RT_TABLE_UNSPEC       = 0x0
+	RT_TABLE_COMPAT       = 0xfc
+	RT_TABLE_DEFAULT      = 0xfd
+	RT_TABLE_MAIN         = 0xfe
+	RT_TABLE_LOCAL        = 0xff
+	RT_TABLE_MAX          = 0xffffffff
+	RTA_UNSPEC            = 0x0
+	RTA_DST               = 0x1
+	RTA_SRC               = 0x2
+	RTA_IIF               = 0x3
+	RTA_OIF               = 0x4
+	RTA_GATEWAY           = 0x5
+	RTA_PRIORITY          = 0x6
+	RTA_PREFSRC           = 0x7
+	RTA_METRICS           = 0x8
+	RTA_MULTIPATH         = 0x9
+	RTA_FLOW              = 0xb
+	RTA_CACHEINFO         = 0xc
+	RTA_TABLE             = 0xf
+	RTA_MARK              = 0x10
+	RTA_MFC_STATS         = 0x11
+	RTA_VIA               = 0x12
+	RTA_NEWDST            = 0x13
+	RTA_PREF              = 0x14
+	RTA_ENCAP_TYPE        = 0x15
+	RTA_ENCAP             = 0x16
+	RTA_EXPIRES           = 0x17
+	RTA_PAD               = 0x18
+	RTA_UID               = 0x19
+	RTA_TTL_PROPAGATE     = 0x1a
+	RTA_IP_PROTO          = 0x1b
+	RTA_SPORT             = 0x1c
+	RTA_DPORT             = 0x1d
+	RTN_UNSPEC            = 0x0
+	RTN_UNICAST           = 0x1
+	RTN_LOCAL             = 0x2
+	RTN_BROADCAST         = 0x3
+	RTN_ANYCAST           = 0x4
+	RTN_MULTICAST         = 0x5
+	RTN_BLACKHOLE         = 0x6
+	RTN_UNREACHABLE       = 0x7
+	RTN_PROHIBIT          = 0x8
+	RTN_THROW             = 0x9
+	RTN_NAT               = 0xa
+	RTN_XRESOLVE          = 0xb
+	PREFIX_UNSPEC         = 0x0
+	PREFIX_ADDRESS        = 0x1
+	PREFIX_CACHEINFO      = 0x2
+	SizeofNlMsghdr        = 0x10
+	SizeofNlMsgerr        = 0x14
+	SizeofRtGenmsg        = 0x1
+	SizeofNlAttr          = 0x4
+	SizeofRtAttr          = 0x4
+	SizeofIfInfomsg       = 0x10
+	SizeofPrefixmsg       = 0xc
+	SizeofPrefixCacheinfo = 0x8
+	SizeofIfAddrmsg       = 0x8
+	SizeofIfAddrlblmsg    = 0xc
+	SizeofIfaCacheinfo    = 0x10
+	SizeofRtMsg           = 0xc
+	SizeofRtNexthop       = 0x8
+	SizeofNdUseroptmsg    = 0x10
+	SizeofNdMsg           = 0xc
 )
 
 type NlMsghdr struct {
@@ -735,6 +740,22 @@
 	Change uint32
 }
 
+type Prefixmsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	Type    uint8
+	Len     uint8
+	Flags   uint8
+	Pad3    uint8
+}
+
+type PrefixCacheinfo struct {
+	Preferred_time uint32
+	Valid_time     uint32
+}
+
 type IfAddrmsg struct {
 	Family    uint8
 	Prefixlen uint8