unix: add netlink attribute type and policy type constants

Change-Id: I343785b938461c94c32d52fb632514293564311a
Reviewed-on: https://go-review.googlesource.com/c/sys/+/372295
Trust: Matt Layher <mdlayher@gmail.com>
Run-TryBot: Matt Layher <mdlayher@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index 7d5ff91..e1212f6 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -3919,3 +3919,42 @@
 	WGALLOWEDIP_A_IPADDR                   = C.WGALLOWEDIP_A_IPADDR
 	WGALLOWEDIP_A_CIDR_MASK                = C.WGALLOWEDIP_A_CIDR_MASK
 )
+
+// netlink attribute types and policies
+
+// Generated by:
+// perl -nlE '/^\s*(NL_ATTR\w+)/ && say "$1 = C.$1"' /usr/include/linux/netlink.h
+// perl -nlE '/^\s*(NL_POLICY\w+)/ && say "$1 = C.$1"' /usr/include/linux/netlink.h
+const (
+	NL_ATTR_TYPE_INVALID      = C.NL_ATTR_TYPE_INVALID
+	NL_ATTR_TYPE_FLAG         = C.NL_ATTR_TYPE_FLAG
+	NL_ATTR_TYPE_U8           = C.NL_ATTR_TYPE_U8
+	NL_ATTR_TYPE_U16          = C.NL_ATTR_TYPE_U16
+	NL_ATTR_TYPE_U32          = C.NL_ATTR_TYPE_U32
+	NL_ATTR_TYPE_U64          = C.NL_ATTR_TYPE_U64
+	NL_ATTR_TYPE_S8           = C.NL_ATTR_TYPE_S8
+	NL_ATTR_TYPE_S16          = C.NL_ATTR_TYPE_S16
+	NL_ATTR_TYPE_S32          = C.NL_ATTR_TYPE_S32
+	NL_ATTR_TYPE_S64          = C.NL_ATTR_TYPE_S64
+	NL_ATTR_TYPE_BINARY       = C.NL_ATTR_TYPE_BINARY
+	NL_ATTR_TYPE_STRING       = C.NL_ATTR_TYPE_STRING
+	NL_ATTR_TYPE_NUL_STRING   = C.NL_ATTR_TYPE_NUL_STRING
+	NL_ATTR_TYPE_NESTED       = C.NL_ATTR_TYPE_NESTED
+	NL_ATTR_TYPE_NESTED_ARRAY = C.NL_ATTR_TYPE_NESTED_ARRAY
+	NL_ATTR_TYPE_BITFIELD32   = C.NL_ATTR_TYPE_BITFIELD32
+
+	NL_POLICY_TYPE_ATTR_UNSPEC          = C.NL_POLICY_TYPE_ATTR_UNSPEC
+	NL_POLICY_TYPE_ATTR_TYPE            = C.NL_POLICY_TYPE_ATTR_TYPE
+	NL_POLICY_TYPE_ATTR_MIN_VALUE_S     = C.NL_POLICY_TYPE_ATTR_MIN_VALUE_S
+	NL_POLICY_TYPE_ATTR_MAX_VALUE_S     = C.NL_POLICY_TYPE_ATTR_MAX_VALUE_S
+	NL_POLICY_TYPE_ATTR_MIN_VALUE_U     = C.NL_POLICY_TYPE_ATTR_MIN_VALUE_U
+	NL_POLICY_TYPE_ATTR_MAX_VALUE_U     = C.NL_POLICY_TYPE_ATTR_MAX_VALUE_U
+	NL_POLICY_TYPE_ATTR_MIN_LENGTH      = C.NL_POLICY_TYPE_ATTR_MIN_LENGTH
+	NL_POLICY_TYPE_ATTR_MAX_LENGTH      = C.NL_POLICY_TYPE_ATTR_MAX_LENGTH
+	NL_POLICY_TYPE_ATTR_POLICY_IDX      = C.NL_POLICY_TYPE_ATTR_POLICY_IDX
+	NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE  = C.NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE
+	NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = C.NL_POLICY_TYPE_ATTR_BITFIELD32_MASK
+	NL_POLICY_TYPE_ATTR_PAD             = C.NL_POLICY_TYPE_ATTR_PAD
+	NL_POLICY_TYPE_ATTR_MASK            = C.NL_POLICY_TYPE_ATTR_MASK
+	NL_POLICY_TYPE_ATTR_MAX             = C.NL_POLICY_TYPE_ATTR_MAX
+)
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index e76b7f6..f6f0d79 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -4009,3 +4009,37 @@
 	WGALLOWEDIP_A_IPADDR                   = 0x2
 	WGALLOWEDIP_A_CIDR_MASK                = 0x3
 )
+
+const (
+	NL_ATTR_TYPE_INVALID      = 0x0
+	NL_ATTR_TYPE_FLAG         = 0x1
+	NL_ATTR_TYPE_U8           = 0x2
+	NL_ATTR_TYPE_U16          = 0x3
+	NL_ATTR_TYPE_U32          = 0x4
+	NL_ATTR_TYPE_U64          = 0x5
+	NL_ATTR_TYPE_S8           = 0x6
+	NL_ATTR_TYPE_S16          = 0x7
+	NL_ATTR_TYPE_S32          = 0x8
+	NL_ATTR_TYPE_S64          = 0x9
+	NL_ATTR_TYPE_BINARY       = 0xa
+	NL_ATTR_TYPE_STRING       = 0xb
+	NL_ATTR_TYPE_NUL_STRING   = 0xc
+	NL_ATTR_TYPE_NESTED       = 0xd
+	NL_ATTR_TYPE_NESTED_ARRAY = 0xe
+	NL_ATTR_TYPE_BITFIELD32   = 0xf
+
+	NL_POLICY_TYPE_ATTR_UNSPEC          = 0x0
+	NL_POLICY_TYPE_ATTR_TYPE            = 0x1
+	NL_POLICY_TYPE_ATTR_MIN_VALUE_S     = 0x2
+	NL_POLICY_TYPE_ATTR_MAX_VALUE_S     = 0x3
+	NL_POLICY_TYPE_ATTR_MIN_VALUE_U     = 0x4
+	NL_POLICY_TYPE_ATTR_MAX_VALUE_U     = 0x5
+	NL_POLICY_TYPE_ATTR_MIN_LENGTH      = 0x6
+	NL_POLICY_TYPE_ATTR_MAX_LENGTH      = 0x7
+	NL_POLICY_TYPE_ATTR_POLICY_IDX      = 0x8
+	NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE  = 0x9
+	NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa
+	NL_POLICY_TYPE_ATTR_PAD             = 0xb
+	NL_POLICY_TYPE_ATTR_MASK            = 0xc
+	NL_POLICY_TYPE_ATTR_MAX             = 0xc
+)