unix: add missing rtnetlink neighbor constants on Linux

Change-Id: Ie261a6f149b7bc531f80726c016bf8f63c9210a7
Reviewed-on: https://go-review.googlesource.com/c/sys/+/171537
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index bb167e9..e36d93a 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -532,6 +532,34 @@
 // 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
@@ -668,6 +696,7 @@
 	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
@@ -690,6 +719,8 @@
 
 type NdUseroptmsg C.struct_nduseroptmsg
 
+type NdMsg C.struct_ndmsg
+
 // Linux socket filter
 
 const (
diff --git a/unix/ztypes_linux_386.go b/unix/ztypes_linux_386.go
index 16dd63e..c303c59 100644
--- a/unix/ztypes_linux_386.go
+++ b/unix/ztypes_linux_386.go
@@ -443,6 +443,34 @@
 )
 
 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
@@ -579,6 +607,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -655,6 +684,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x8
diff --git a/unix/ztypes_linux_amd64.go b/unix/ztypes_linux_amd64.go
index 9aa75fa..31f1af7 100644
--- a/unix/ztypes_linux_amd64.go
+++ b/unix/ztypes_linux_amd64.go
@@ -444,6 +444,34 @@
 )
 
 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
@@ -580,6 +608,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -656,6 +685,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_arm.go b/unix/ztypes_linux_arm.go
index 61927ab..f6a9003 100644
--- a/unix/ztypes_linux_arm.go
+++ b/unix/ztypes_linux_arm.go
@@ -447,6 +447,34 @@
 )
 
 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
@@ -583,6 +611,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -659,6 +688,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x8
diff --git a/unix/ztypes_linux_arm64.go b/unix/ztypes_linux_arm64.go
index a7a280f..e46a54c 100644
--- a/unix/ztypes_linux_arm64.go
+++ b/unix/ztypes_linux_arm64.go
@@ -445,6 +445,34 @@
 )
 
 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
@@ -581,6 +609,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -657,6 +686,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_mips.go b/unix/ztypes_linux_mips.go
index 564d1e3..bdf210f 100644
--- a/unix/ztypes_linux_mips.go
+++ b/unix/ztypes_linux_mips.go
@@ -446,6 +446,34 @@
 )
 
 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
@@ -582,6 +610,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -658,6 +687,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x8
diff --git a/unix/ztypes_linux_mips64.go b/unix/ztypes_linux_mips64.go
index e79edad..aaf657f 100644
--- a/unix/ztypes_linux_mips64.go
+++ b/unix/ztypes_linux_mips64.go
@@ -445,6 +445,34 @@
 )
 
 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
@@ -581,6 +609,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -657,6 +686,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_mips64le.go b/unix/ztypes_linux_mips64le.go
index 94817e8..0c7d1f2 100644
--- a/unix/ztypes_linux_mips64le.go
+++ b/unix/ztypes_linux_mips64le.go
@@ -445,6 +445,34 @@
 )
 
 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
@@ -581,6 +609,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -657,6 +686,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_mipsle.go b/unix/ztypes_linux_mipsle.go
index ddb0bdb..cb041bd 100644
--- a/unix/ztypes_linux_mipsle.go
+++ b/unix/ztypes_linux_mipsle.go
@@ -446,6 +446,34 @@
 )
 
 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
@@ -582,6 +610,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -658,6 +687,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x8
diff --git a/unix/ztypes_linux_ppc64.go b/unix/ztypes_linux_ppc64.go
index 2089ed0..b9f4cf3 100644
--- a/unix/ztypes_linux_ppc64.go
+++ b/unix/ztypes_linux_ppc64.go
@@ -446,6 +446,34 @@
 )
 
 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
@@ -582,6 +610,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -658,6 +687,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_ppc64le.go b/unix/ztypes_linux_ppc64le.go
index c163848..868ce3f 100644
--- a/unix/ztypes_linux_ppc64le.go
+++ b/unix/ztypes_linux_ppc64le.go
@@ -446,6 +446,34 @@
 )
 
 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
@@ -582,6 +610,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -658,6 +687,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_riscv64.go b/unix/ztypes_linux_riscv64.go
index f9079a5..6d8f3cb 100644
--- a/unix/ztypes_linux_riscv64.go
+++ b/unix/ztypes_linux_riscv64.go
@@ -445,6 +445,34 @@
 )
 
 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
@@ -581,6 +609,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -657,6 +686,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_s390x.go b/unix/ztypes_linux_s390x.go
index 9f3c0f0..8a8644c 100644
--- a/unix/ztypes_linux_s390x.go
+++ b/unix/ztypes_linux_s390x.go
@@ -444,6 +444,34 @@
 )
 
 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
@@ -580,6 +608,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -656,6 +685,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10
diff --git a/unix/ztypes_linux_sparc64.go b/unix/ztypes_linux_sparc64.go
index a8adf4f..2a3f661 100644
--- a/unix/ztypes_linux_sparc64.go
+++ b/unix/ztypes_linux_sparc64.go
@@ -448,6 +448,34 @@
 )
 
 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
@@ -584,6 +612,7 @@
 	SizeofRtMsg          = 0xc
 	SizeofRtNexthop      = 0x8
 	SizeofNdUseroptmsg   = 0x10
+	SizeofNdMsg          = 0xc
 )
 
 type NlMsghdr struct {
@@ -660,6 +689,16 @@
 	Pad3      uint32
 }
 
+type NdMsg struct {
+	Family  uint8
+	Pad1    uint8
+	Pad2    uint16
+	Ifindex int32
+	State   uint16
+	Flags   uint8
+	Type    uint8
+}
+
 const (
 	SizeofSockFilter = 0x8
 	SizeofSockFprog  = 0x10