| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // 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 3493 options
- const (
- // See /usr/include/linux/in6.h.
- sysSockoptUnicastHopLimit = 0x10
- sysSockoptMulticastHopLimit = 0x12
- sysSockoptMulticastInterface = 0x11
- sysSockoptMulticastLoopback = 0x13
- sysSockoptJoinGroup = 0x14
- sysSockoptLeaveGroup = 0x15
- )
- // RFC 3542 options
- const (
- // See /usr/include/linux/ipv6.h,in6.h.
- sysSockoptReceiveTrafficClass = 0x42
- sysSockoptTrafficClass = 0x43
- sysSockoptReceiveHopLimit = 0x33
- sysSockoptHopLimit = 0x34
- sysSockoptReceivePacketInfo = 0x31
- sysSockoptPacketInfo = 0x32
- sysSockoptReceivePathMTU = 0x3c
- sysSockoptPathMTU = 0x3d
- sysSockoptNextHop = 0x9
- sysSockoptChecksum = 0x7
- // See /usr/include/linux/icmpv6.h.
- sysSockoptICMPFilter = 0x1
- )
- func setSockaddr(sa *syscall.RawSockaddrInet6, ip net.IP, ifindex int) {
- sa.Family = syscall.AF_INET6
- copy(sa.Addr[:], ip)
- sa.Scope_id = uint32(ifindex)
- }
|