blob: cc3907df385cac707cccb4489da5a04e5c80bac9 [file] [log] [blame]
// Copyright 2014 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 "golang.org/x/net/internal/socket"
// Sticky socket options
const (
ssoTrafficClass = iota // header field for unicast packet, RFC 3542
ssoHopLimit // header field for unicast packet, RFC 3493
ssoMulticastInterface // outbound interface for multicast packet, RFC 3493
ssoMulticastHopLimit // header field for multicast packet, RFC 3493
ssoMulticastLoopback // loopback for multicast packet, RFC 3493
ssoReceiveTrafficClass // header field on received packet, RFC 3542
ssoReceiveHopLimit // header field on received packet, RFC 2292 or 3542
ssoReceivePacketInfo // incbound or outbound packet path, RFC 2292 or 3542
ssoReceivePathMTU // path mtu, RFC 3542
ssoPathMTU // path mtu, RFC 3542
ssoChecksum // packet checksum, RFC 2292 or 3542
ssoICMPFilter // icmp filter, RFC 2292 or 3542
ssoJoinGroup // any-source multicast, RFC 3493
ssoLeaveGroup // any-source multicast, RFC 3493
ssoJoinSourceGroup // source-specific multicast
ssoLeaveSourceGroup // source-specific multicast
ssoBlockSourceGroup // any-source or source-specific multicast
ssoUnblockSourceGroup // any-source or source-specific multicast
ssoAttachFilter // attach BPF for filtering inbound traffic
)
// Sticky socket option value types
const (
ssoTypeIPMreq = iota + 1
ssoTypeGroupReq
ssoTypeGroupSourceReq
)
// A sockOpt represents a binding for sticky socket option.
type sockOpt struct {
socket.Option
typ int // hint for option value type; optional
}