| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright 2013 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package ipv6
- import (
- "net"
- "syscall"
- )
- // RFC 2292 options
- const (
- // See /usr/include/netinet6/in6.h.
- sysSockopt2292HopLimit = syscall.IPV6_2292HOPLIMIT
- sysSockopt2292PacketInfo = syscall.IPV6_2292PKTINFO
- sysSockopt2292NextHop = syscall.IPV6_2292NEXTHOP
- )
- // RFC 3542 options
- const (
- // See /usr/include/netinet6/in6.h.
- sysSockoptReceiveTrafficClass = 0x23 // IPV6_RECVTCLASS
- sysSockoptTrafficClass = 0x24 // IPV6_TCLASS
- sysSockoptReceiveHopLimit = 0x25 // IPV6_RECVHOPLIMIT
- sysSockoptHopLimit = 0x2f // IPV6_HOPLIMIT
- sysSockoptReceivePacketInfo = 0x3d // IPV6_RECVPKTINFO
- sysSockoptPacketInfo = 0x2e // IPV6_PKTINFO
- sysSockoptReceivePathMTU = 0x2b // IPV6_RECVPATHMTU
- sysSockoptPathMTU = 0x2c // IPV6_PATHMTU
- sysSockoptNextHop = 0x30 // IPV6_NEXTHOP
- sysSockoptChecksum = 0x1a // IPV6_CHECKSUM
- // See /usr/include/netinet6/in6.h.
- sysSockoptICMPFilter = 0x12 // ICMP6_FILTER
- )
- func setSockaddr(sa *syscall.RawSockaddrInet6, ip net.IP, ifindex int) {
- sa.Len = syscall.SizeofSockaddrInet6
- sa.Family = syscall.AF_INET6
- copy(sa.Addr[:], ip)
- sa.Scope_id = uint32(ifindex)
- }
|