ipv4: use type IPMreqn from x/sys/unix

Use the IPMreqn type and the SizeofIPMreqn defined in the
golang.org/x/sys/unix package instead of locally duplicating them.

Change-Id: I98768e01fd4b0d1018892d5ed49455366a7356bb
Reviewed-on: https://go-review.googlesource.com/c/net/+/312490
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 6f5e212..bd40213 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@
 go 1.11
 
 require (
-	golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe
+	golang.org/x/sys v0.0.0-20210423082822-04245dca01da
 	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 547c838..634dd68 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-20210420072515-93ed5bcd2bfe h1:WdX7u8s3yOigWAhHEaDl8r9G+4XwFQEQFtBMYyN+kXQ=
-golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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 bd90780..2506629 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-20210420072515-93ed5bcd2bfe h1:WdX7u8s3yOigWAhHEaDl8r9G+4XwFQEQFtBMYyN+kXQ=
-golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/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/ipv4/defs_darwin.go b/ipv4/defs_darwin.go
index 3d0e0aa..0ceadfc 100644
--- a/ipv4/defs_darwin.go
+++ b/ipv4/defs_darwin.go
@@ -22,7 +22,6 @@
 	sizeofInetPktinfo     = C.sizeof_struct_in_pktinfo
 
 	sizeofIPMreq         = C.sizeof_struct_ip_mreq
-	sizeofIPMreqn        = C.sizeof_struct_ip_mreqn
 	sizeofIPMreqSource   = C.sizeof_struct_ip_mreq_source
 	sizeofGroupReq       = C.sizeof_struct_group_req
 	sizeofGroupSourceReq = C.sizeof_struct_group_source_req
@@ -36,8 +35,6 @@
 
 type ipMreq C.struct_ip_mreq
 
-type ipMreqn C.struct_ip_mreqn
-
 type ipMreqSource C.struct_ip_mreq_source
 
 type groupReq C.struct_group_req
diff --git a/ipv4/defs_freebsd.go b/ipv4/defs_freebsd.go
index 6defc8c..b068087 100644
--- a/ipv4/defs_freebsd.go
+++ b/ipv4/defs_freebsd.go
@@ -21,7 +21,6 @@
 	sizeofSockaddrInet    = C.sizeof_struct_sockaddr_in
 
 	sizeofIPMreq         = C.sizeof_struct_ip_mreq
-	sizeofIPMreqn        = C.sizeof_struct_ip_mreqn
 	sizeofIPMreqSource   = C.sizeof_struct_ip_mreq_source
 	sizeofGroupReq       = C.sizeof_struct_group_req
 	sizeofGroupSourceReq = C.sizeof_struct_group_source_req
@@ -33,8 +32,6 @@
 
 type ipMreq C.struct_ip_mreq
 
-type ipMreqn C.struct_ip_mreqn
-
 type ipMreqSource C.struct_ip_mreq_source
 
 type groupReq C.struct_group_req
diff --git a/ipv4/defs_linux.go b/ipv4/defs_linux.go
index adaae03..7c8554d 100644
--- a/ipv4/defs_linux.go
+++ b/ipv4/defs_linux.go
@@ -27,7 +27,6 @@
 	sizeofSockExtendedErr       = C.sizeof_struct_sock_extended_err
 
 	sizeofIPMreq         = C.sizeof_struct_ip_mreq
-	sizeofIPMreqn        = C.sizeof_struct_ip_mreqn
 	sizeofIPMreqSource   = C.sizeof_struct_ip_mreq_source
 	sizeofGroupReq       = C.sizeof_struct_group_req
 	sizeofGroupSourceReq = C.sizeof_struct_group_source_req
@@ -45,8 +44,6 @@
 
 type ipMreq C.struct_ip_mreq
 
-type ipMreqn C.struct_ip_mreqn
-
 type ipMreqSource C.struct_ip_mreq_source
 
 type groupReq C.struct_group_req
diff --git a/ipv4/sys_asmreqn.go b/ipv4/sys_asmreqn.go
index fbfe4af..54eb990 100644
--- a/ipv4/sys_asmreqn.go
+++ b/ipv4/sys_asmreqn.go
@@ -12,6 +12,8 @@
 	"unsafe"
 
 	"golang.org/x/net/internal/socket"
+
+	"golang.org/x/sys/unix"
 )
 
 func (so *sockOpt) getIPMreqn(c *socket.Conn) (*net.Interface, error) {
@@ -19,7 +21,7 @@
 	if _, err := so.Get(c, b); err != nil {
 		return nil, err
 	}
-	mreqn := (*ipMreqn)(unsafe.Pointer(&b[0]))
+	mreqn := (*unix.IPMreqn)(unsafe.Pointer(&b[0]))
 	if mreqn.Ifindex == 0 {
 		return nil, nil
 	}
@@ -31,13 +33,13 @@
 }
 
 func (so *sockOpt) setIPMreqn(c *socket.Conn, ifi *net.Interface, grp net.IP) error {
-	var mreqn ipMreqn
+	var mreqn unix.IPMreqn
 	if ifi != nil {
 		mreqn.Ifindex = int32(ifi.Index)
 	}
 	if grp != nil {
 		mreqn.Multiaddr = [4]byte{grp[0], grp[1], grp[2], grp[3]}
 	}
-	b := (*[sizeofIPMreqn]byte)(unsafe.Pointer(&mreqn))[:sizeofIPMreqn]
+	b := (*[unix.SizeofIPMreqn]byte)(unsafe.Pointer(&mreqn))[:unix.SizeofIPMreqn]
 	return so.Set(c, b)
 }
diff --git a/ipv4/sys_darwin.go b/ipv4/sys_darwin.go
index c5527ac..cac6f3c 100644
--- a/ipv4/sys_darwin.go
+++ b/ipv4/sys_darwin.go
@@ -29,7 +29,7 @@
 		ssoTOS:                {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TOS, Len: 4}},
 		ssoTTL:                {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TTL, Len: 4}},
 		ssoMulticastTTL:       {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_TTL, Len: 1}},
-		ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn},
+		ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: unix.SizeofIPMreqn}, typ: ssoTypeIPMreqn},
 		ssoMulticastLoopback:  {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_LOOP, Len: 4}},
 		ssoReceiveTTL:         {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVTTL, Len: 4}},
 		ssoReceiveDst:         {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVDSTADDR, Len: 4}},
diff --git a/ipv4/sys_freebsd.go b/ipv4/sys_freebsd.go
index 7457bfd..8961228 100644
--- a/ipv4/sys_freebsd.go
+++ b/ipv4/sys_freebsd.go
@@ -48,7 +48,7 @@
 func init() {
 	freebsdVersion, _ = syscall.SysctlUint32("kern.osreldate")
 	if freebsdVersion >= 1000000 {
-		sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}
+		sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: unix.SizeofIPMreqn}, typ: ssoTypeIPMreqn}
 	}
 	if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" {
 		archs, _ := syscall.Sysctl("kern.supported_archs")
diff --git a/ipv4/sys_linux.go b/ipv4/sys_linux.go
index a0631ac..4588a5f 100644
--- a/ipv4/sys_linux.go
+++ b/ipv4/sys_linux.go
@@ -25,7 +25,7 @@
 		ssoTOS:                {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TOS, Len: 4}},
 		ssoTTL:                {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_TTL, Len: 4}},
 		ssoMulticastTTL:       {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_TTL, Len: 4}},
-		ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn},
+		ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_IF, Len: unix.SizeofIPMreqn}, typ: ssoTypeIPMreqn},
 		ssoMulticastLoopback:  {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_MULTICAST_LOOP, Len: 4}},
 		ssoReceiveTTL:         {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_RECVTTL, Len: 4}},
 		ssoPacketInfo:         {Option: socket.Option{Level: iana.ProtocolIP, Name: unix.IP_PKTINFO, Len: 4}},
diff --git a/ipv4/zsys_darwin.go b/ipv4/zsys_darwin.go
index 9c35f97..6c1b705 100644
--- a/ipv4/zsys_darwin.go
+++ b/ipv4/zsys_darwin.go
@@ -9,7 +9,6 @@
 	sizeofInetPktinfo     = 0xc
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -42,12 +41,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  [4]byte /* in_addr */
 	Sourceaddr [4]byte /* in_addr */
diff --git a/ipv4/zsys_freebsd_386.go b/ipv4/zsys_freebsd_386.go
index b2208a4..ae40482 100644
--- a/ipv4/zsys_freebsd_386.go
+++ b/ipv4/zsys_freebsd_386.go
@@ -8,7 +8,6 @@
 	sizeofSockaddrInet    = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -35,12 +34,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  [4]byte /* in_addr */
 	Sourceaddr [4]byte /* in_addr */
diff --git a/ipv4/zsys_freebsd_amd64.go b/ipv4/zsys_freebsd_amd64.go
index 6719f19..9018186 100644
--- a/ipv4/zsys_freebsd_amd64.go
+++ b/ipv4/zsys_freebsd_amd64.go
@@ -8,7 +8,6 @@
 	sizeofSockaddrInet    = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -35,12 +34,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  [4]byte /* in_addr */
 	Sourceaddr [4]byte /* in_addr */
diff --git a/ipv4/zsys_freebsd_arm.go b/ipv4/zsys_freebsd_arm.go
index 6719f19..9018186 100644
--- a/ipv4/zsys_freebsd_arm.go
+++ b/ipv4/zsys_freebsd_arm.go
@@ -8,7 +8,6 @@
 	sizeofSockaddrInet    = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -35,12 +34,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  [4]byte /* in_addr */
 	Sourceaddr [4]byte /* in_addr */
diff --git a/ipv4/zsys_freebsd_arm64.go b/ipv4/zsys_freebsd_arm64.go
index 07a5f5d..0feb9a7 100644
--- a/ipv4/zsys_freebsd_arm64.go
+++ b/ipv4/zsys_freebsd_arm64.go
@@ -8,7 +8,6 @@
 	sizeofSockaddrInet    = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -35,12 +34,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  [4]byte /* in_addr */
 	Sourceaddr [4]byte /* in_addr */
diff --git a/ipv4/zsys_linux_386.go b/ipv4/zsys_linux_386.go
index a8e3c26..d510357 100644
--- a/ipv4/zsys_linux_386.go
+++ b/ipv4/zsys_linux_386.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_amd64.go b/ipv4/zsys_linux_amd64.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_amd64.go
+++ b/ipv4/zsys_linux_amd64.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_arm.go b/ipv4/zsys_linux_arm.go
index a8e3c26..d510357 100644
--- a/ipv4/zsys_linux_arm.go
+++ b/ipv4/zsys_linux_arm.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_arm64.go b/ipv4/zsys_linux_arm64.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_arm64.go
+++ b/ipv4/zsys_linux_arm64.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_mips.go b/ipv4/zsys_linux_mips.go
index a8e3c26..d510357 100644
--- a/ipv4/zsys_linux_mips.go
+++ b/ipv4/zsys_linux_mips.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_mips64.go b/ipv4/zsys_linux_mips64.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_mips64.go
+++ b/ipv4/zsys_linux_mips64.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_mips64le.go b/ipv4/zsys_linux_mips64le.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_mips64le.go
+++ b/ipv4/zsys_linux_mips64le.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_mipsle.go b/ipv4/zsys_linux_mipsle.go
index a8e3c26..d510357 100644
--- a/ipv4/zsys_linux_mipsle.go
+++ b/ipv4/zsys_linux_mipsle.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_ppc.go b/ipv4/zsys_linux_ppc.go
index b9adb2a..29202e4 100644
--- a/ipv4/zsys_linux_ppc.go
+++ b/ipv4/zsys_linux_ppc.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x84
 	sizeofGroupSourceReq = 0x104
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_ppc64.go b/ipv4/zsys_linux_ppc64.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_ppc64.go
+++ b/ipv4/zsys_linux_ppc64.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_ppc64le.go b/ipv4/zsys_linux_ppc64le.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_ppc64le.go
+++ b/ipv4/zsys_linux_ppc64le.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_riscv64.go b/ipv4/zsys_linux_riscv64.go
index b24d264..e2edebd 100644
--- a/ipv4/zsys_linux_riscv64.go
+++ b/ipv4/zsys_linux_riscv64.go
@@ -13,7 +13,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -54,12 +53,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32
diff --git a/ipv4/zsys_linux_s390x.go b/ipv4/zsys_linux_s390x.go
index 7291f96..eb10cc7 100644
--- a/ipv4/zsys_linux_s390x.go
+++ b/ipv4/zsys_linux_s390x.go
@@ -10,7 +10,6 @@
 	sizeofSockExtendedErr       = 0x10
 
 	sizeofIPMreq         = 0x8
-	sizeofIPMreqn        = 0xc
 	sizeofIPMreqSource   = 0xc
 	sizeofGroupReq       = 0x88
 	sizeofGroupSourceReq = 0x108
@@ -51,12 +50,6 @@
 	Interface [4]byte /* in_addr */
 }
 
-type ipMreqn struct {
-	Multiaddr [4]byte /* in_addr */
-	Address   [4]byte /* in_addr */
-	Ifindex   int32
-}
-
 type ipMreqSource struct {
 	Multiaddr  uint32
 	Interface  uint32