| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // 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 = 0x14
- sysSockopt2292PacketInfo = 0x13
- sysSockopt2292NextHop = 0x15
- )
- // RFC 3493 options
- const (
- // See /usr/include/netinet6/in6.h.
- sysSockoptUnicastHopLimit = 0x4
- sysSockoptMulticastHopLimit = 0xa
- sysSockoptMulticastInterface = 0x9
- sysSockoptMulticastLoopback = 0xb
- sysSockoptJoinGroup = 0xc
- sysSockoptLeaveGroup = 0xd
- )
- // RFC 3542 options
- const (
- // See /usr/include/netinet6/in6.h.
- sysSockoptReceiveTrafficClass = 0x23
- sysSockoptTrafficClass = 0x24
- sysSockoptReceiveHopLimit = 0x25
- sysSockoptHopLimit = 0x2f
- sysSockoptReceivePacketInfo = 0x3d
- sysSockoptPacketInfo = 0x2e
- sysSockoptReceivePathMTU = 0x2b
- sysSockoptPathMTU = 0x2c
- sysSockoptNextHop = 0x30
- sysSockoptChecksum = 0x1a
- // See /usr/include/netinet6/in6.h.
- sysSockoptICMPFilter = 0x12
- )
- 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)
- }
|