ipv6: use all socket option consts from x/sys/unix

Remove the remaining local definitions of various socket option
constants and use the constants defined in the golang.org/x/sys/unix
package instead.

Change-Id: I110cf984e2bac5bf48d6e6489fd6da8ab7b13b10
Reviewed-on: https://go-review.googlesource.com/c/net/+/311749
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/go.mod b/go.mod
index b24952e..6f5e212 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@
 go 1.11
 
 require (
-	golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44
+	golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe
 	golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
 	golang.org/x/text v0.3.6
 )
diff --git a/go.sum b/go.sum
index 0088e60..547c838 100644
--- a/go.sum
+++ b/go.sum
@@ -1,6 +1,6 @@
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44 h1:Bli41pIlzTzf3KEY06n+xnzK/BESIg2ze4Pgfh/aI8c=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe h1:WdX7u8s3yOigWAhHEaDl8r9G+4XwFQEQFtBMYyN+kXQ=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
diff --git a/http2/h2demo/go.sum b/http2/h2demo/go.sum
index e795251..bd90780 100644
--- a/http2/h2demo/go.sum
+++ b/http2/h2demo/go.sum
@@ -66,8 +66,8 @@
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44 h1:Bli41pIlzTzf3KEY06n+xnzK/BESIg2ze4Pgfh/aI8c=
-golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe h1:WdX7u8s3yOigWAhHEaDl8r9G+4XwFQEQFtBMYyN+kXQ=
+golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff --git a/ipv6/control_rfc3542_unix.go b/ipv6/control_rfc3542_unix.go
index 2422194..9c90844 100644
--- a/ipv6/control_rfc3542_unix.go
+++ b/ipv6/control_rfc3542_unix.go
@@ -13,11 +13,13 @@
 
 	"golang.org/x/net/internal/iana"
 	"golang.org/x/net/internal/socket"
+
+	"golang.org/x/sys/unix"
 )
 
 func marshalTrafficClass(b []byte, cm *ControlMessage) []byte {
 	m := socket.ControlMessage(b)
-	m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_TCLASS, 4)
+	m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_TCLASS, 4)
 	if cm != nil {
 		socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.TrafficClass))
 	}
@@ -30,7 +32,7 @@
 
 func marshalHopLimit(b []byte, cm *ControlMessage) []byte {
 	m := socket.ControlMessage(b)
-	m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_HOPLIMIT, 4)
+	m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_HOPLIMIT, 4)
 	if cm != nil {
 		socket.NativeEndian.PutUint32(m.Data(4), uint32(cm.HopLimit))
 	}
@@ -43,7 +45,7 @@
 
 func marshalPacketInfo(b []byte, cm *ControlMessage) []byte {
 	m := socket.ControlMessage(b)
-	m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_PKTINFO, sizeofInet6Pktinfo)
+	m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_PKTINFO, sizeofInet6Pktinfo)
 	if cm != nil {
 		pi := (*inet6Pktinfo)(unsafe.Pointer(&m.Data(sizeofInet6Pktinfo)[0]))
 		if ip := cm.Src.To16(); ip != nil && ip.To4() == nil {
@@ -67,7 +69,7 @@
 
 func marshalNextHop(b []byte, cm *ControlMessage) []byte {
 	m := socket.ControlMessage(b)
-	m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_NEXTHOP, sizeofSockaddrInet6)
+	m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_NEXTHOP, sizeofSockaddrInet6)
 	if cm != nil {
 		sa := (*sockaddrInet6)(unsafe.Pointer(&m.Data(sizeofSockaddrInet6)[0]))
 		sa.setSockaddr(cm.NextHop, cm.IfIndex)
@@ -80,7 +82,7 @@
 
 func marshalPathMTU(b []byte, cm *ControlMessage) []byte {
 	m := socket.ControlMessage(b)
-	m.MarshalHeader(iana.ProtocolIPv6, sysIPV6_PATHMTU, sizeofIPv6Mtuinfo)
+	m.MarshalHeader(iana.ProtocolIPv6, unix.IPV6_PATHMTU, sizeofIPv6Mtuinfo)
 	return m.Next(sizeofIPv6Mtuinfo)
 }
 
diff --git a/ipv6/defs_aix.go b/ipv6/defs_aix.go
index ab7eb92..97db07e 100644
--- a/ipv6/defs_aix.go
+++ b/ipv6/defs_aix.go
@@ -19,12 +19,6 @@
 import "C"
 
 const (
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
 	sizeofSockaddrInet6   = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo    = C.sizeof_struct_in6_pktinfo
diff --git a/ipv6/defs_darwin.go b/ipv6/defs_darwin.go
index 6821c3f..1d31e22 100644
--- a/ipv6/defs_darwin.go
+++ b/ipv6/defs_darwin.go
@@ -17,12 +17,6 @@
 import "C"
 
 const (
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-
 	sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
 	sizeofSockaddrInet6   = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo    = C.sizeof_struct_in6_pktinfo
diff --git a/ipv6/defs_dragonfly.go b/ipv6/defs_dragonfly.go
index 76aa071..ddaed65 100644
--- a/ipv6/defs_dragonfly.go
+++ b/ipv6/defs_dragonfly.go
@@ -19,12 +19,6 @@
 import "C"
 
 const (
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo  = C.sizeof_struct_in6_pktinfo
 	sizeofIPv6Mtuinfo   = C.sizeof_struct_ip6_mtuinfo
diff --git a/ipv6/defs_freebsd.go b/ipv6/defs_freebsd.go
index 6dd1238..6f6bc6d 100644
--- a/ipv6/defs_freebsd.go
+++ b/ipv6/defs_freebsd.go
@@ -19,12 +19,6 @@
 import "C"
 
 const (
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
 	sizeofSockaddrInet6   = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo    = C.sizeof_struct_in6_pktinfo
diff --git a/ipv6/defs_linux.go b/ipv6/defs_linux.go
index e68bab8..0adcbd9 100644
--- a/ipv6/defs_linux.go
+++ b/ipv6/defs_linux.go
@@ -20,12 +20,6 @@
 import "C"
 
 const (
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofKernelSockaddrStorage = C.sizeof_struct___kernel_sockaddr_storage
 	sizeofSockaddrInet6         = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo          = C.sizeof_struct_in6_pktinfo
diff --git a/ipv6/defs_netbsd.go b/ipv6/defs_netbsd.go
index 76aa071..ddaed65 100644
--- a/ipv6/defs_netbsd.go
+++ b/ipv6/defs_netbsd.go
@@ -19,12 +19,6 @@
 import "C"
 
 const (
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo  = C.sizeof_struct_in6_pktinfo
 	sizeofIPv6Mtuinfo   = C.sizeof_struct_ip6_mtuinfo
diff --git a/ipv6/defs_openbsd.go b/ipv6/defs_openbsd.go
index 76aa071..ddaed65 100644
--- a/ipv6/defs_openbsd.go
+++ b/ipv6/defs_openbsd.go
@@ -19,12 +19,6 @@
 import "C"
 
 const (
-	sysIPV6_PATHMTU  = C.IPV6_PATHMTU
-	sysIPV6_PKTINFO  = C.IPV6_PKTINFO
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_TCLASS   = C.IPV6_TCLASS
-
 	sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo  = C.sizeof_struct_in6_pktinfo
 	sizeofIPv6Mtuinfo   = C.sizeof_struct_ip6_mtuinfo
diff --git a/ipv6/defs_solaris.go b/ipv6/defs_solaris.go
index 508b3bf..03193da 100644
--- a/ipv6/defs_solaris.go
+++ b/ipv6/defs_solaris.go
@@ -18,74 +18,6 @@
 import "C"
 
 const (
-	sysIPV6_UNICAST_HOPS   = C.IPV6_UNICAST_HOPS
-	sysIPV6_MULTICAST_IF   = C.IPV6_MULTICAST_IF
-	sysIPV6_MULTICAST_HOPS = C.IPV6_MULTICAST_HOPS
-	sysIPV6_MULTICAST_LOOP = C.IPV6_MULTICAST_LOOP
-	sysIPV6_JOIN_GROUP     = C.IPV6_JOIN_GROUP
-	sysIPV6_LEAVE_GROUP    = C.IPV6_LEAVE_GROUP
-
-	sysIPV6_PKTINFO = C.IPV6_PKTINFO
-
-	sysIPV6_HOPLIMIT = C.IPV6_HOPLIMIT
-	sysIPV6_NEXTHOP  = C.IPV6_NEXTHOP
-	sysIPV6_HOPOPTS  = C.IPV6_HOPOPTS
-	sysIPV6_DSTOPTS  = C.IPV6_DSTOPTS
-
-	sysIPV6_RTHDR        = C.IPV6_RTHDR
-	sysIPV6_RTHDRDSTOPTS = C.IPV6_RTHDRDSTOPTS
-
-	sysIPV6_RECVPKTINFO  = C.IPV6_RECVPKTINFO
-	sysIPV6_RECVHOPLIMIT = C.IPV6_RECVHOPLIMIT
-	sysIPV6_RECVHOPOPTS  = C.IPV6_RECVHOPOPTS
-
-	sysIPV6_RECVRTHDR = C.IPV6_RECVRTHDR
-
-	sysIPV6_RECVRTHDRDSTOPTS = C.IPV6_RECVRTHDRDSTOPTS
-
-	sysIPV6_CHECKSUM        = C.IPV6_CHECKSUM
-	sysIPV6_RECVTCLASS      = C.IPV6_RECVTCLASS
-	sysIPV6_USE_MIN_MTU     = C.IPV6_USE_MIN_MTU
-	sysIPV6_DONTFRAG        = C.IPV6_DONTFRAG
-	sysIPV6_SEC_OPT         = C.IPV6_SEC_OPT
-	sysIPV6_SRC_PREFERENCES = C.IPV6_SRC_PREFERENCES
-	sysIPV6_RECVPATHMTU     = C.IPV6_RECVPATHMTU
-	sysIPV6_PATHMTU         = C.IPV6_PATHMTU
-	sysIPV6_TCLASS          = C.IPV6_TCLASS
-	sysIPV6_V6ONLY          = C.IPV6_V6ONLY
-
-	sysIPV6_RECVDSTOPTS = C.IPV6_RECVDSTOPTS
-
-	sysMCAST_JOIN_GROUP         = C.MCAST_JOIN_GROUP
-	sysMCAST_LEAVE_GROUP        = C.MCAST_LEAVE_GROUP
-	sysMCAST_BLOCK_SOURCE       = C.MCAST_BLOCK_SOURCE
-	sysMCAST_UNBLOCK_SOURCE     = C.MCAST_UNBLOCK_SOURCE
-	sysMCAST_JOIN_SOURCE_GROUP  = C.MCAST_JOIN_SOURCE_GROUP
-	sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP
-
-	sysIPV6_PREFER_SRC_HOME   = C.IPV6_PREFER_SRC_HOME
-	sysIPV6_PREFER_SRC_COA    = C.IPV6_PREFER_SRC_COA
-	sysIPV6_PREFER_SRC_PUBLIC = C.IPV6_PREFER_SRC_PUBLIC
-	sysIPV6_PREFER_SRC_TMP    = C.IPV6_PREFER_SRC_TMP
-	sysIPV6_PREFER_SRC_NONCGA = C.IPV6_PREFER_SRC_NONCGA
-	sysIPV6_PREFER_SRC_CGA    = C.IPV6_PREFER_SRC_CGA
-
-	sysIPV6_PREFER_SRC_MIPMASK    = C.IPV6_PREFER_SRC_MIPMASK
-	sysIPV6_PREFER_SRC_MIPDEFAULT = C.IPV6_PREFER_SRC_MIPDEFAULT
-	sysIPV6_PREFER_SRC_TMPMASK    = C.IPV6_PREFER_SRC_TMPMASK
-	sysIPV6_PREFER_SRC_TMPDEFAULT = C.IPV6_PREFER_SRC_TMPDEFAULT
-	sysIPV6_PREFER_SRC_CGAMASK    = C.IPV6_PREFER_SRC_CGAMASK
-	sysIPV6_PREFER_SRC_CGADEFAULT = C.IPV6_PREFER_SRC_CGADEFAULT
-
-	sysIPV6_PREFER_SRC_MASK = C.IPV6_PREFER_SRC_MASK
-
-	sysIPV6_PREFER_SRC_DEFAULT = C.IPV6_PREFER_SRC_DEFAULT
-
-	sysIPV6_BOUND_IF   = C.IPV6_BOUND_IF
-	sysIPV6_UNSPEC_SRC = C.IPV6_UNSPEC_SRC
-
-	sysICMP6_FILTER = C.ICMP6_FILTER
-
 	sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage
 	sizeofSockaddrInet6   = C.sizeof_struct_sockaddr_in6
 	sizeofInet6Pktinfo    = C.sizeof_struct_in6_pktinfo
diff --git a/ipv6/sys_solaris.go b/ipv6/sys_solaris.go
index d348b5f..1fc30ad 100644
--- a/ipv6/sys_solaris.go
+++ b/ipv6/sys_solaris.go
@@ -11,36 +11,38 @@
 
 	"golang.org/x/net/internal/iana"
 	"golang.org/x/net/internal/socket"
+
+	"golang.org/x/sys/unix"
 )
 
 var (
 	ctlOpts = [ctlMax]ctlOpt{
-		ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass},
-		ctlHopLimit:     {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
-		ctlPacketInfo:   {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
-		ctlNextHop:      {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop},
-		ctlPathMTU:      {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
+		ctlTrafficClass: {unix.IPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass},
+		ctlHopLimit:     {unix.IPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
+		ctlPacketInfo:   {unix.IPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
+		ctlNextHop:      {unix.IPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop},
+		ctlPathMTU:      {unix.IPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
 	}
 
 	sockOpts = map[int]*sockOpt{
-		ssoTrafficClass:        {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}},
-		ssoHopLimit:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
-		ssoMulticastInterface:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
-		ssoMulticastHopLimit:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
-		ssoMulticastLoopback:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
-		ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}},
-		ssoReceiveHopLimit:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}},
-		ssoReceivePacketInfo:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}},
-		ssoReceivePathMTU:      {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}},
-		ssoPathMTU:             {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}},
-		ssoChecksum:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
-		ssoICMPFilter:          {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
-		ssoJoinGroup:           {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
-		ssoLeaveGroup:          {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
-		ssoJoinSourceGroup:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoLeaveSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoBlockSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoUnblockSourceGroup:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoTrafficClass:        {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_TCLASS, Len: 4}},
+		ssoHopLimit:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_UNICAST_HOPS, Len: 4}},
+		ssoMulticastInterface:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_IF, Len: 4}},
+		ssoMulticastHopLimit:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_HOPS, Len: 4}},
+		ssoMulticastLoopback:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_LOOP, Len: 4}},
+		ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVTCLASS, Len: 4}},
+		ssoReceiveHopLimit:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVHOPLIMIT, Len: 4}},
+		ssoReceivePacketInfo:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPKTINFO, Len: 4}},
+		ssoReceivePathMTU:      {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPATHMTU, Len: 4}},
+		ssoPathMTU:             {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}},
+		ssoChecksum:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_CHECKSUM, Len: 4}},
+		ssoICMPFilter:          {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: unix.ICMP6_FILTER, Len: sizeofICMPv6Filter}},
+		ssoJoinGroup:           {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoLeaveGroup:          {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoJoinSourceGroup:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoLeaveSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoBlockSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoUnblockSourceGroup:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
 	}
 )
 
diff --git a/ipv6/sys_zos.go b/ipv6/sys_zos.go
index d4567f9..31adc86 100644
--- a/ipv6/sys_zos.go
+++ b/ipv6/sys_zos.go
@@ -11,33 +11,35 @@
 
 	"golang.org/x/net/internal/iana"
 	"golang.org/x/net/internal/socket"
+
+	"golang.org/x/sys/unix"
 )
 
 var (
 	ctlOpts = [ctlMax]ctlOpt{
-		ctlHopLimit:   {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
-		ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
-		ctlPathMTU:    {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
+		ctlHopLimit:   {unix.IPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit},
+		ctlPacketInfo: {unix.IPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo},
+		ctlPathMTU:    {unix.IPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU},
 	}
 
 	sockOpts = map[int]*sockOpt{
-		ssoTrafficClass:        {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}},
-		ssoHopLimit:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}},
-		ssoMulticastInterface:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}},
-		ssoMulticastHopLimit:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}},
-		ssoMulticastLoopback:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}},
-		ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}},
-		ssoReceiveHopLimit:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}},
-		ssoReceivePacketInfo:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}},
-		ssoReceivePathMTU:      {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}},
-		ssoChecksum:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}},
-		ssoICMPFilter:          {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}},
-		ssoJoinGroup:           {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
-		ssoLeaveGroup:          {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
-		ssoJoinSourceGroup:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoLeaveSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoBlockSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
-		ssoUnblockSourceGroup:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoTrafficClass:        {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_TCLASS, Len: 4}},
+		ssoHopLimit:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_UNICAST_HOPS, Len: 4}},
+		ssoMulticastInterface:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_IF, Len: 4}},
+		ssoMulticastHopLimit:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_HOPS, Len: 4}},
+		ssoMulticastLoopback:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_MULTICAST_LOOP, Len: 4}},
+		ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVTCLASS, Len: 4}},
+		ssoReceiveHopLimit:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVHOPLIMIT, Len: 4}},
+		ssoReceivePacketInfo:   {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPKTINFO, Len: 4}},
+		ssoReceivePathMTU:      {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_RECVPATHMTU, Len: 4}},
+		ssoChecksum:            {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.IPV6_CHECKSUM, Len: 4}},
+		ssoICMPFilter:          {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: unix.ICMP6_FILTER, Len: sizeofICMPv6Filter}},
+		ssoJoinGroup:           {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoLeaveGroup:          {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq},
+		ssoJoinSourceGroup:     {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoLeaveSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoBlockSourceGroup:    {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
+		ssoUnblockSourceGroup:  {Option: socket.Option{Level: iana.ProtocolIPv6, Name: unix.MCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq},
 	}
 )
 
diff --git a/ipv6/zsys_aix_ppc64.go b/ipv6/zsys_aix_ppc64.go
index 869f4b2..f604b0f 100644
--- a/ipv6/zsys_aix_ppc64.go
+++ b/ipv6/zsys_aix_ppc64.go
@@ -8,12 +8,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2e
-	sysIPV6_PKTINFO  = 0x21
-	sysIPV6_HOPLIMIT = 0x28
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x2b
-
 	sizeofSockaddrStorage = 0x508
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_darwin.go b/ipv6/zsys_darwin.go
index a121172..dd6f7b2 100644
--- a/ipv6/zsys_darwin.go
+++ b/ipv6/zsys_darwin.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_TCLASS   = 0x24
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-
 	sizeofSockaddrStorage = 0x80
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_dragonfly.go b/ipv6/zsys_dragonfly.go
index 512db65..6b45a94 100644
--- a/ipv6/zsys_dragonfly.go
+++ b/ipv6/zsys_dragonfly.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrInet6 = 0x1c
 	sizeofInet6Pktinfo  = 0x14
 	sizeofIPv6Mtuinfo   = 0x20
diff --git a/ipv6/zsys_freebsd_386.go b/ipv6/zsys_freebsd_386.go
index 46a62b8..8da5592 100644
--- a/ipv6/zsys_freebsd_386.go
+++ b/ipv6/zsys_freebsd_386.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrStorage = 0x80
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_freebsd_amd64.go b/ipv6/zsys_freebsd_amd64.go
index e475f51..72a1a65 100644
--- a/ipv6/zsys_freebsd_amd64.go
+++ b/ipv6/zsys_freebsd_amd64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrStorage = 0x80
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_freebsd_arm.go b/ipv6/zsys_freebsd_arm.go
index e475f51..72a1a65 100644
--- a/ipv6/zsys_freebsd_arm.go
+++ b/ipv6/zsys_freebsd_arm.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrStorage = 0x80
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_freebsd_arm64.go b/ipv6/zsys_freebsd_arm64.go
index edaf7f1..5b39eb8 100644
--- a/ipv6/zsys_freebsd_arm64.go
+++ b/ipv6/zsys_freebsd_arm64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrStorage = 0x80
 	sizeofSockaddrInet6   = 0x1c
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_linux_386.go b/ipv6/zsys_linux_386.go
index bb579ea..ad71871 100644
--- a/ipv6/zsys_linux_386.go
+++ b/ipv6/zsys_linux_386.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_amd64.go b/ipv6/zsys_linux_amd64.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_amd64.go
+++ b/ipv6/zsys_linux_amd64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_arm.go b/ipv6/zsys_linux_arm.go
index bb579ea..ad71871 100644
--- a/ipv6/zsys_linux_arm.go
+++ b/ipv6/zsys_linux_arm.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_arm64.go b/ipv6/zsys_linux_arm64.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_arm64.go
+++ b/ipv6/zsys_linux_arm64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_mips.go b/ipv6/zsys_linux_mips.go
index bb579ea..ad71871 100644
--- a/ipv6/zsys_linux_mips.go
+++ b/ipv6/zsys_linux_mips.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_mips64.go b/ipv6/zsys_linux_mips64.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_mips64.go
+++ b/ipv6/zsys_linux_mips64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_mips64le.go b/ipv6/zsys_linux_mips64le.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_mips64le.go
+++ b/ipv6/zsys_linux_mips64le.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_mipsle.go b/ipv6/zsys_linux_mipsle.go
index bb579ea..ad71871 100644
--- a/ipv6/zsys_linux_mipsle.go
+++ b/ipv6/zsys_linux_mipsle.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_ppc.go b/ipv6/zsys_linux_ppc.go
index 5486c24..d06c2ad 100644
--- a/ipv6/zsys_linux_ppc.go
+++ b/ipv6/zsys_linux_ppc.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_ppc64.go b/ipv6/zsys_linux_ppc64.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_ppc64.go
+++ b/ipv6/zsys_linux_ppc64.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_ppc64le.go b/ipv6/zsys_linux_ppc64le.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_ppc64le.go
+++ b/ipv6/zsys_linux_ppc64le.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_riscv64.go b/ipv6/zsys_linux_riscv64.go
index 283973e..d4f78e4 100644
--- a/ipv6/zsys_linux_riscv64.go
+++ b/ipv6/zsys_linux_riscv64.go
@@ -7,12 +7,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_linux_s390x.go b/ipv6/zsys_linux_s390x.go
index 9500f7d..2514ab9 100644
--- a/ipv6/zsys_linux_s390x.go
+++ b/ipv6/zsys_linux_s390x.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_NEXTHOP  = 0x9
-	sysIPV6_PKTINFO  = 0x32
-	sysIPV6_HOPLIMIT = 0x34
-	sysIPV6_PATHMTU  = 0x3d
-	sysIPV6_TCLASS   = 0x43
-
 	sizeofKernelSockaddrStorage = 0x80
 	sizeofSockaddrInet6         = 0x1c
 	sizeofInet6Pktinfo          = 0x14
diff --git a/ipv6/zsys_netbsd.go b/ipv6/zsys_netbsd.go
index 524c97f..f7335d5 100644
--- a/ipv6/zsys_netbsd.go
+++ b/ipv6/zsys_netbsd.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrInet6 = 0x1c
 	sizeofInet6Pktinfo  = 0x14
 	sizeofIPv6Mtuinfo   = 0x20
diff --git a/ipv6/zsys_openbsd.go b/ipv6/zsys_openbsd.go
index 5e7bded..6d15928 100644
--- a/ipv6/zsys_openbsd.go
+++ b/ipv6/zsys_openbsd.go
@@ -4,12 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_PATHMTU  = 0x2c
-	sysIPV6_PKTINFO  = 0x2e
-	sysIPV6_HOPLIMIT = 0x2f
-	sysIPV6_NEXTHOP  = 0x30
-	sysIPV6_TCLASS   = 0x3d
-
 	sizeofSockaddrInet6 = 0x1c
 	sizeofInet6Pktinfo  = 0x14
 	sizeofIPv6Mtuinfo   = 0x20
diff --git a/ipv6/zsys_solaris.go b/ipv6/zsys_solaris.go
index 690eef9..1716197 100644
--- a/ipv6/zsys_solaris.go
+++ b/ipv6/zsys_solaris.go
@@ -4,74 +4,6 @@
 package ipv6
 
 const (
-	sysIPV6_UNICAST_HOPS   = 0x5
-	sysIPV6_MULTICAST_IF   = 0x6
-	sysIPV6_MULTICAST_HOPS = 0x7
-	sysIPV6_MULTICAST_LOOP = 0x8
-	sysIPV6_JOIN_GROUP     = 0x9
-	sysIPV6_LEAVE_GROUP    = 0xa
-
-	sysIPV6_PKTINFO = 0xb
-
-	sysIPV6_HOPLIMIT = 0xc
-	sysIPV6_NEXTHOP  = 0xd
-	sysIPV6_HOPOPTS  = 0xe
-	sysIPV6_DSTOPTS  = 0xf
-
-	sysIPV6_RTHDR        = 0x10
-	sysIPV6_RTHDRDSTOPTS = 0x11
-
-	sysIPV6_RECVPKTINFO  = 0x12
-	sysIPV6_RECVHOPLIMIT = 0x13
-	sysIPV6_RECVHOPOPTS  = 0x14
-
-	sysIPV6_RECVRTHDR = 0x16
-
-	sysIPV6_RECVRTHDRDSTOPTS = 0x17
-
-	sysIPV6_CHECKSUM        = 0x18
-	sysIPV6_RECVTCLASS      = 0x19
-	sysIPV6_USE_MIN_MTU     = 0x20
-	sysIPV6_DONTFRAG        = 0x21
-	sysIPV6_SEC_OPT         = 0x22
-	sysIPV6_SRC_PREFERENCES = 0x23
-	sysIPV6_RECVPATHMTU     = 0x24
-	sysIPV6_PATHMTU         = 0x25
-	sysIPV6_TCLASS          = 0x26
-	sysIPV6_V6ONLY          = 0x27
-
-	sysIPV6_RECVDSTOPTS = 0x28
-
-	sysMCAST_JOIN_GROUP         = 0x29
-	sysMCAST_LEAVE_GROUP        = 0x2a
-	sysMCAST_BLOCK_SOURCE       = 0x2b
-	sysMCAST_UNBLOCK_SOURCE     = 0x2c
-	sysMCAST_JOIN_SOURCE_GROUP  = 0x2d
-	sysMCAST_LEAVE_SOURCE_GROUP = 0x2e
-
-	sysIPV6_PREFER_SRC_HOME   = 0x1
-	sysIPV6_PREFER_SRC_COA    = 0x2
-	sysIPV6_PREFER_SRC_PUBLIC = 0x4
-	sysIPV6_PREFER_SRC_TMP    = 0x8
-	sysIPV6_PREFER_SRC_NONCGA = 0x10
-	sysIPV6_PREFER_SRC_CGA    = 0x20
-
-	sysIPV6_PREFER_SRC_MIPMASK    = 0x3
-	sysIPV6_PREFER_SRC_MIPDEFAULT = 0x1
-	sysIPV6_PREFER_SRC_TMPMASK    = 0xc
-	sysIPV6_PREFER_SRC_TMPDEFAULT = 0x4
-	sysIPV6_PREFER_SRC_CGAMASK    = 0x30
-	sysIPV6_PREFER_SRC_CGADEFAULT = 0x10
-
-	sysIPV6_PREFER_SRC_MASK = 0x3f
-
-	sysIPV6_PREFER_SRC_DEFAULT = 0x15
-
-	sysIPV6_BOUND_IF   = 0x41
-	sysIPV6_UNSPEC_SRC = 0x42
-
-	sysICMP6_FILTER = 0x1
-
 	sizeofSockaddrStorage = 0x100
 	sizeofSockaddrInet6   = 0x20
 	sizeofInet6Pktinfo    = 0x14
diff --git a/ipv6/zsys_zos_s390x.go b/ipv6/zsys_zos_s390x.go
index 3f98069..7c75645 100644
--- a/ipv6/zsys_zos_s390x.go
+++ b/ipv6/zsys_zos_s390x.go
@@ -8,50 +8,6 @@
 package ipv6
 
 const (
-	sysIPV6_ADDR_PREFERENCES  = 32
-	sysIPV6_CHECKSUM          = 19
-	sysIPV6_DONTFRAG          = 29
-	sysIPV6_DSTOPTS           = 23
-	sysIPV6_HOPLIMIT          = 11
-	sysIPV6_HOPOPTS           = 22
-	sysIPV6_JOIN_GROUP        = 5
-	sysIPV6_LEAVE_GROUP       = 6
-	sysIPV6_MULTICAST_HOPS    = 9
-	sysIPV6_MULTICAST_IF      = 7
-	sysIPV6_MULTICAST_LOOP    = 4
-	sysIPV6_NEXTHOP           = 20
-	sysIPV6_PATHMTU           = 12
-	sysIPV6_PKTINFO           = 13
-	sysIPV6_PREFER_SRC_CGA    = 0x10
-	sysIPV6_PREFER_SRC_COA    = 0x02
-	sysIPV6_PREFER_SRC_HOME   = 0x01
-	sysIPV6_PREFER_SRC_NONCGA = 0x20
-	sysIPV6_PREFER_SRC_PUBLIC = 0x08
-	sysIPV6_PREFER_SRC_TMP    = 0x04
-	sysIPV6_RECVDSTOPTS       = 28
-	sysIPV6_RECVHOPLIMIT      = 14
-	sysIPV6_RECVHOPOPTS       = 26
-	sysIPV6_RECVPATHMTU       = 16
-	sysIPV6_RECVPKTINFO       = 15
-	sysIPV6_RECVRTHDR         = 25
-	sysIPV6_RECVTCLASS        = 31
-	sysIPV6_RTHDR             = 21
-	sysIPV6_RTHDRDSTOPTS      = 24
-	sysIPV6_RTHDR_TYPE_0      = 0
-	sysIPV6_TCLASS            = 30
-	sysIPV6_UNICAST_HOPS      = 3
-	sysIPV6_USE_MIN_MTU       = 18
-	sysIPV6_V6ONLY            = 10
-
-	sysMCAST_JOIN_GROUP         = 40
-	sysMCAST_LEAVE_GROUP        = 41
-	sysMCAST_JOIN_SOURCE_GROUP  = 42
-	sysMCAST_LEAVE_SOURCE_GROUP = 43
-	sysMCAST_BLOCK_SOURCE       = 44
-	sysMCAST_UNBLOCK_SOURCE     = 45
-
-	sysICMP6_FILTER = 0x1
-
 	sizeofSockaddrStorage = 128
 	sizeofICMPv6Filter    = 32
 	sizeofInet6Pktinfo    = 20