unix: move ICMP{,V6}_FILTER* const definitions

The C headers defining these constants pull in <netinet/in.h> which
leads to definition conflicts between kernel and glibc headers when
running mkerrors.sh for Linux kernel 5.13. Avoid these by moving this
const definitions to linux/types.go.

For golang/go#47057

Change-Id: I09a2391dfe4c6bb38b7069e952748070c10824e6
Reviewed-on: https://go-review.googlesource.com/c/sys/+/332929
Trust: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index cc884ad..d57c1db 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -98,6 +98,7 @@
 #include <linux/genetlink.h>
 #include <linux/hdreg.h>
 #include <linux/hidraw.h>
+#include <linux/icmp.h>
 #include <linux/icmpv6.h>
 #include <linux/if_alg.h>
 #include <linux/if_bridge.h>
@@ -804,6 +805,18 @@
 
 type NdMsg C.struct_ndmsg
 
+// ICMP socket options
+
+const (
+	ICMP_FILTER = C.ICMP_FILTER
+
+	ICMPV6_FILTER             = C.ICMPV6_FILTER
+	ICMPV6_FILTER_BLOCK       = C.ICMPV6_FILTER_BLOCK
+	ICMPV6_FILTER_BLOCKOTHERS = C.ICMPV6_FILTER_BLOCKOTHERS
+	ICMPV6_FILTER_PASS        = C.ICMPV6_FILTER_PASS
+	ICMPV6_FILTER_PASSONLY    = C.ICMPV6_FILTER_PASSONLY
+)
+
 // Linux socket filter
 
 const (
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index 6e6afca..2ed4b6d 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -217,8 +217,6 @@
 #include <linux/genetlink.h>
 #include <linux/hdreg.h>
 #include <linux/hidraw.h>
-#include <linux/icmp.h>
-#include <linux/icmpv6.h>
 #include <linux/if.h>
 #include <linux/if_addr.h>
 #include <linux/if_alg.h>
diff --git a/unix/zerrors_linux.go b/unix/zerrors_linux.go
index 52f5bbc..70b4b52 100644
--- a/unix/zerrors_linux.go
+++ b/unix/zerrors_linux.go
@@ -981,12 +981,6 @@
 	HPFS_SUPER_MAGIC                            = 0xf995e849
 	HUGETLBFS_MAGIC                             = 0x958458f6
 	IBSHIFT                                     = 0x10
-	ICMPV6_FILTER                               = 0x1
-	ICMPV6_FILTER_BLOCK                         = 0x1
-	ICMPV6_FILTER_BLOCKOTHERS                   = 0x3
-	ICMPV6_FILTER_PASS                          = 0x2
-	ICMPV6_FILTER_PASSONLY                      = 0x4
-	ICMP_FILTER                                 = 0x1
 	ICRNL                                       = 0x100
 	IFA_F_DADFAILED                             = 0x8
 	IFA_F_DEPRECATED                            = 0x20
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index c9d7eb4..3874bee 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -682,6 +682,16 @@
 }
 
 const (
+	ICMP_FILTER = 0x1
+
+	ICMPV6_FILTER             = 0x1
+	ICMPV6_FILTER_BLOCK       = 0x1
+	ICMPV6_FILTER_BLOCKOTHERS = 0x3
+	ICMPV6_FILTER_PASS        = 0x2
+	ICMPV6_FILTER_PASSONLY    = 0x4
+)
+
+const (
 	SizeofSockFilter = 0x8
 )