Commit adbe59e3 authored by Mikio Hara's avatar Mikio Hara

syscall: add IPv6 socket options for Unix variants

This CL adds missing IPv6 socket options which are required
to control IPv6 as described in RFC 3493, RFC 3542.

Update #5538

R=golang-dev, dave, iant
CC=golang-dev
https://golang.org/cl/9373046
parent d67e300f
...@@ -71,6 +71,7 @@ includes_Linux=' ...@@ -71,6 +71,7 @@ includes_Linux='
#include <sys/prctl.h> #include <sys/prctl.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h>
#include <linux/if_addr.h> #include <linux/if_addr.h>
#include <linux/if_ether.h> #include <linux/if_ether.h>
#include <linux/if_tun.h> #include <linux/if_tun.h>
...@@ -80,6 +81,7 @@ includes_Linux=' ...@@ -80,6 +81,7 @@ includes_Linux='
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/wait.h> #include <linux/wait.h>
#include <linux/icmpv6.h>
#include <net/if.h> #include <net/if.h>
#include <net/if_arp.h> #include <net/if_arp.h>
#include <net/route.h> #include <net/route.h>
...@@ -200,7 +202,8 @@ ccflags="$@" ...@@ -200,7 +202,8 @@ ccflags="$@"
$2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ || $2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ ||
$2 ~ /^IN_/ || $2 ~ /^IN_/ ||
$2 ~ /^LOCK_(SH|EX|NB|UN)$/ || $2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||
$2 == "ICMPV6_FILTER" ||
$2 == "SOMAXCONN" || $2 == "SOMAXCONN" ||
$2 == "NAME_MAX" || $2 == "NAME_MAX" ||
$2 == "IFNAMSIZ" || $2 == "IFNAMSIZ" ||
......
...@@ -414,6 +414,20 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { ...@@ -414,6 +414,20 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
return &value, err return &value, err
} }
func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
var value IPv6MTUInfo
vallen := _Socklen(SizeofIPv6MTUInfo)
err := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, err
}
func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
var value ICMPv6Filter
vallen := _Socklen(SizeofICMPv6Filter)
err := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, err
}
func SetsockoptByte(fd, level, opt int, value byte) (err error) { func SetsockoptByte(fd, level, opt int, value byte) (err error) {
var n = byte(value) var n = byte(value)
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 1) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&n)), 1)
...@@ -444,6 +458,10 @@ func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { ...@@ -444,6 +458,10 @@ func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq)) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq))
} }
func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(filter)), SizeofICMPv6Filter)
}
func SetsockoptString(fd, level, opt int, s string) (err error) { func SetsockoptString(fd, level, opt int, s string) (err error) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&[]byte(s)[0])), uintptr(len(s))) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&[]byte(s)[0])), uintptr(len(s)))
} }
......
...@@ -540,6 +540,20 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { ...@@ -540,6 +540,20 @@ func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
return &value, err return &value, err
} }
func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
var value IPv6MTUInfo
vallen := _Socklen(SizeofIPv6MTUInfo)
err := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, err
}
func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {
var value ICMPv6Filter
vallen := _Socklen(SizeofICMPv6Filter)
err := getsockopt(fd, level, opt, uintptr(unsafe.Pointer(&value)), &vallen)
return &value, err
}
func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { func GetsockoptUcred(fd, level, opt int) (*Ucred, error) {
var value Ucred var value Ucred
vallen := _Socklen(SizeofUcred) vallen := _Socklen(SizeofUcred)
...@@ -576,6 +590,9 @@ func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { ...@@ -576,6 +590,9 @@ func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq)) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(mreq)), unsafe.Sizeof(*mreq))
} }
func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(filter)), SizeofICMPv6Filter)
}
func SetsockoptString(fd, level, opt int, s string) (err error) { func SetsockoptString(fd, level, opt int, s string) (err error) {
return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&[]byte(s)[0])), uintptr(len(s))) return setsockopt(fd, level, opt, uintptr(unsafe.Pointer(&[]byte(s)[0])), uintptr(len(s)))
} }
......
...@@ -45,6 +45,7 @@ package syscall ...@@ -45,6 +45,7 @@ package syscall
#include <net/if_var.h> #include <net/if_var.h>
#include <net/route.h> #include <net/route.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
enum { enum {
...@@ -154,6 +155,10 @@ type Inet4Pktinfo C.struct_in_pktinfo ...@@ -154,6 +155,10 @@ type Inet4Pktinfo C.struct_in_pktinfo
type Inet6Pktinfo C.struct_in6_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo
type IPv6MTUInfo C.struct_ip6_mtuinfo
type ICMPv6Filter C.struct_icmp6_filter
const ( const (
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
...@@ -167,6 +172,8 @@ const ( ...@@ -167,6 +172,8 @@ const (
SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
) )
// Ptrace requests // Ptrace requests
......
...@@ -39,6 +39,7 @@ package syscall ...@@ -39,6 +39,7 @@ package syscall
#include <net/if_dl.h> #include <net/if_dl.h>
#include <net/route.h> #include <net/route.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
enum { enum {
...@@ -159,6 +160,10 @@ type Cmsghdr C.struct_cmsghdr ...@@ -159,6 +160,10 @@ type Cmsghdr C.struct_cmsghdr
type Inet6Pktinfo C.struct_in6_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo
type IPv6MTUInfo C.struct_ip6_mtuinfo
type ICMPv6Filter C.struct_icmp6_filter
const ( const (
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
...@@ -172,6 +177,8 @@ const ( ...@@ -172,6 +177,8 @@ const (
SizeofMsghdr = C.sizeof_struct_msghdr SizeofMsghdr = C.sizeof_struct_msghdr
SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
) )
// Ptrace requests // Ptrace requests
......
...@@ -49,6 +49,7 @@ package syscall ...@@ -49,6 +49,7 @@ package syscall
#include <linux/filter.h> #include <linux/filter.h>
#include <linux/netlink.h> #include <linux/netlink.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <linux/icmpv6.h>
#include <termios.h> #include <termios.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
...@@ -193,6 +194,10 @@ type Inet4Pktinfo C.struct_in_pktinfo ...@@ -193,6 +194,10 @@ type Inet4Pktinfo C.struct_in_pktinfo
type Inet6Pktinfo C.struct_in6_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo
type IPv6MTUInfo C.struct_ip6_mtuinfo
type ICMPv6Filter C.struct_icmp6_filter
type Ucred C.struct_ucred type Ucred C.struct_ucred
type TCPInfo C.struct_tcp_info type TCPInfo C.struct_tcp_info
...@@ -212,6 +217,8 @@ const ( ...@@ -212,6 +217,8 @@ const (
SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
SizeofUcred = C.sizeof_struct_ucred SizeofUcred = C.sizeof_struct_ucred
SizeofTCPInfo = C.sizeof_struct_tcp_info SizeofTCPInfo = C.sizeof_struct_tcp_info
) )
......
...@@ -41,6 +41,7 @@ package syscall ...@@ -41,6 +41,7 @@ package syscall
#include <net/if_dl.h> #include <net/if_dl.h>
#include <net/route.h> #include <net/route.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
enum { enum {
...@@ -138,6 +139,10 @@ type Cmsghdr C.struct_cmsghdr ...@@ -138,6 +139,10 @@ type Cmsghdr C.struct_cmsghdr
type Inet6Pktinfo C.struct_in6_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo
type IPv6MTUInfo C.struct_ip6_mtuinfo
type ICMPv6Filter C.struct_icmp6_filter
const ( const (
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
...@@ -150,6 +155,8 @@ const ( ...@@ -150,6 +155,8 @@ const (
SizeofMsghdr = C.sizeof_struct_msghdr SizeofMsghdr = C.sizeof_struct_msghdr
SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
) )
// Ptrace requests // Ptrace requests
......
...@@ -40,6 +40,7 @@ package syscall ...@@ -40,6 +40,7 @@ package syscall
#include <net/if_dl.h> #include <net/if_dl.h>
#include <net/route.h> #include <net/route.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/tcp.h> #include <netinet/tcp.h>
enum { enum {
...@@ -154,6 +155,10 @@ type Cmsghdr C.struct_cmsghdr ...@@ -154,6 +155,10 @@ type Cmsghdr C.struct_cmsghdr
type Inet6Pktinfo C.struct_in6_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo
type IPv6MTUInfo C.struct_ip6_mtuinfo
type ICMPv6Filter C.struct_icmp6_filter
const ( const (
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
...@@ -166,6 +171,8 @@ const ( ...@@ -166,6 +171,8 @@ const (
SizeofMsghdr = C.sizeof_struct_msghdr SizeofMsghdr = C.sizeof_struct_msghdr
SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
) )
// Ptrace requests // Ptrace requests
......
...@@ -273,6 +273,7 @@ const ( ...@@ -273,6 +273,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFF_ALLMULTI = 0x200 IFF_ALLMULTI = 0x200
......
...@@ -273,6 +273,7 @@ const ( ...@@ -273,6 +273,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFF_ALLMULTI = 0x200 IFF_ALLMULTI = 0x200
......
...@@ -461,6 +461,7 @@ const ( ...@@ -461,6 +461,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -461,6 +461,7 @@ const ( ...@@ -461,6 +461,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -466,6 +466,7 @@ const ( ...@@ -466,6 +466,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -276,6 +276,7 @@ const ( ...@@ -276,6 +276,7 @@ const (
F_ULOCK = 0x0 F_ULOCK = 0x0
F_UNLCK = 0x2 F_UNLCK = 0x2
F_WRLCK = 0x1 F_WRLCK = 0x1
ICMPV6_FILTER = 0x1
IFA_F_DADFAILED = 0x8 IFA_F_DADFAILED = 0x8
IFA_F_DEPRECATED = 0x20 IFA_F_DEPRECATED = 0x20
IFA_F_HOMEADDRESS = 0x10 IFA_F_HOMEADDRESS = 0x10
......
...@@ -276,6 +276,7 @@ const ( ...@@ -276,6 +276,7 @@ const (
F_ULOCK = 0x0 F_ULOCK = 0x0
F_UNLCK = 0x2 F_UNLCK = 0x2
F_WRLCK = 0x1 F_WRLCK = 0x1
ICMPV6_FILTER = 0x1
IFA_F_DADFAILED = 0x8 IFA_F_DADFAILED = 0x8
IFA_F_DEPRECATED = 0x20 IFA_F_DEPRECATED = 0x20
IFA_F_HOMEADDRESS = 0x10 IFA_F_HOMEADDRESS = 0x10
......
...@@ -274,6 +274,7 @@ const ( ...@@ -274,6 +274,7 @@ const (
F_ULOCK = 0x0 F_ULOCK = 0x0
F_UNLCK = 0x2 F_UNLCK = 0x2
F_WRLCK = 0x1 F_WRLCK = 0x1
ICMPV6_FILTER = 0x1
IFA_F_DADFAILED = 0x8 IFA_F_DADFAILED = 0x8
IFA_F_DEPRECATED = 0x20 IFA_F_DEPRECATED = 0x20
IFA_F_HOMEADDRESS = 0x10 IFA_F_HOMEADDRESS = 0x10
......
...@@ -570,6 +570,7 @@ const ( ...@@ -570,6 +570,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -560,6 +560,7 @@ const ( ...@@ -560,6 +560,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -560,6 +560,7 @@ const ( ...@@ -560,6 +560,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -439,6 +439,7 @@ const ( ...@@ -439,6 +439,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -445,6 +445,7 @@ const ( ...@@ -445,6 +445,7 @@ const (
F_WRLCK = 0x3 F_WRLCK = 0x3
HUPCL = 0x4000 HUPCL = 0x4000
ICANON = 0x100 ICANON = 0x100
ICMP6_FILTER = 0x12
ICRNL = 0x100 ICRNL = 0x100
IEXTEN = 0x400 IEXTEN = 0x400
IFAN_ARRIVAL = 0x0 IFAN_ARRIVAL = 0x0
......
...@@ -237,6 +237,15 @@ type Inet6Pktinfo struct { ...@@ -237,6 +237,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -250,6 +259,8 @@ const ( ...@@ -250,6 +259,8 @@ const (
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -245,6 +245,15 @@ type Inet6Pktinfo struct { ...@@ -245,6 +245,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -258,6 +267,8 @@ const ( ...@@ -258,6 +267,8 @@ const (
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -236,6 +236,15 @@ type Inet6Pktinfo struct { ...@@ -236,6 +236,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -249,6 +258,8 @@ const ( ...@@ -249,6 +258,8 @@ const (
SizeofMsghdr = 0x1c SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -238,6 +238,15 @@ type Inet6Pktinfo struct { ...@@ -238,6 +238,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -251,6 +260,8 @@ const ( ...@@ -251,6 +260,8 @@ const (
SizeofMsghdr = 0x30 SizeofMsghdr = 0x30
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -238,6 +238,15 @@ type Inet6Pktinfo struct { ...@@ -238,6 +238,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -251,6 +260,8 @@ const ( ...@@ -251,6 +260,8 @@ const (
SizeofMsghdr = 0x1c SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -245,6 +245,15 @@ type Inet6Pktinfo struct { ...@@ -245,6 +245,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Data [8]uint32
}
type Ucred struct { type Ucred struct {
Pid int32 Pid int32
Uid uint32 Uid uint32
...@@ -300,6 +309,8 @@ const ( ...@@ -300,6 +309,8 @@ const (
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc SizeofUcred = 0xc
SizeofTCPInfo = 0x68 SizeofTCPInfo = 0x68
) )
......
...@@ -247,6 +247,15 @@ type Inet6Pktinfo struct { ...@@ -247,6 +247,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Data [8]uint32
}
type Ucred struct { type Ucred struct {
Pid int32 Pid int32
Uid uint32 Uid uint32
...@@ -302,6 +311,8 @@ const ( ...@@ -302,6 +311,8 @@ const (
SizeofCmsghdr = 0x10 SizeofCmsghdr = 0x10
SizeofInet4Pktinfo = 0xc SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc SizeofUcred = 0xc
SizeofTCPInfo = 0x68 SizeofTCPInfo = 0x68
) )
......
...@@ -247,6 +247,15 @@ type Inet6Pktinfo struct { ...@@ -247,6 +247,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Data [8]uint32
}
type Ucred struct { type Ucred struct {
Pid int32 Pid int32
Uid uint32 Uid uint32
...@@ -302,6 +311,8 @@ const ( ...@@ -302,6 +311,8 @@ const (
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc SizeofUcred = 0xc
SizeofTCPInfo = 0x68 SizeofTCPInfo = 0x68
) )
......
...@@ -185,6 +185,15 @@ type Inet6Pktinfo struct { ...@@ -185,6 +185,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -197,6 +206,8 @@ const ( ...@@ -197,6 +206,8 @@ const (
SizeofMsghdr = 0x1c SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -191,6 +191,15 @@ type Inet6Pktinfo struct { ...@@ -191,6 +191,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -203,6 +212,8 @@ const ( ...@@ -203,6 +212,8 @@ const (
SizeofMsghdr = 0x30 SizeofMsghdr = 0x30
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -185,6 +185,15 @@ type Inet6Pktinfo struct { ...@@ -185,6 +185,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -197,6 +206,8 @@ const ( ...@@ -197,6 +206,8 @@ const (
SizeofMsghdr = 0x1c SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -226,6 +226,15 @@ type Inet6Pktinfo struct { ...@@ -226,6 +226,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -238,6 +247,8 @@ const ( ...@@ -238,6 +247,8 @@ const (
SizeofMsghdr = 0x1c SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
...@@ -231,6 +231,15 @@ type Inet6Pktinfo struct { ...@@ -231,6 +231,15 @@ type Inet6Pktinfo struct {
Ifindex uint32 Ifindex uint32
} }
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Filt [8]uint32
}
const ( const (
SizeofSockaddrInet4 = 0x10 SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c SizeofSockaddrInet6 = 0x1c
...@@ -243,6 +252,8 @@ const ( ...@@ -243,6 +252,8 @@ const (
SizeofMsghdr = 0x30 SizeofMsghdr = 0x30
SizeofCmsghdr = 0xc SizeofCmsghdr = 0xc
SizeofInet6Pktinfo = 0x14 SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
) )
const ( const (
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment