forked from mystiq/dex
47 lines
1.9 KiB
Go
47 lines
1.9 KiB
Go
|
// 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
|
||
|
|
||
|
// 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
|
||
|
ssoMax
|
||
|
)
|
||
|
|
||
|
// Sticky socket option value types
|
||
|
const (
|
||
|
ssoTypeInt = iota + 1
|
||
|
ssoTypeInterface
|
||
|
ssoTypeICMPFilter
|
||
|
ssoTypeMTUInfo
|
||
|
ssoTypeIPMreq
|
||
|
ssoTypeGroupReq
|
||
|
ssoTypeGroupSourceReq
|
||
|
)
|
||
|
|
||
|
// A sockOpt represents a binding for sticky socket option.
|
||
|
type sockOpt struct {
|
||
|
level int // option level
|
||
|
name int // option name, must be equal or greater than 1
|
||
|
typ int // option value type, must be equal or greater than 1
|
||
|
}
|