OSDN Git Service

new repo
[bytom/vapor.git] / vendor / golang.org / x / net / ipv6 / sockopt.go
1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package ipv6
6
7 import "golang.org/x/net/internal/socket"
8
9 // Sticky socket options
10 const (
11         ssoTrafficClass        = iota // header field for unicast packet, RFC 3542
12         ssoHopLimit                   // header field for unicast packet, RFC 3493
13         ssoMulticastInterface         // outbound interface for multicast packet, RFC 3493
14         ssoMulticastHopLimit          // header field for multicast packet, RFC 3493
15         ssoMulticastLoopback          // loopback for multicast packet, RFC 3493
16         ssoReceiveTrafficClass        // header field on received packet, RFC 3542
17         ssoReceiveHopLimit            // header field on received packet, RFC 2292 or 3542
18         ssoReceivePacketInfo          // incbound or outbound packet path, RFC 2292 or 3542
19         ssoReceivePathMTU             // path mtu, RFC 3542
20         ssoPathMTU                    // path mtu, RFC 3542
21         ssoChecksum                   // packet checksum, RFC 2292 or 3542
22         ssoICMPFilter                 // icmp filter, RFC 2292 or 3542
23         ssoJoinGroup                  // any-source multicast, RFC 3493
24         ssoLeaveGroup                 // any-source multicast, RFC 3493
25         ssoJoinSourceGroup            // source-specific multicast
26         ssoLeaveSourceGroup           // source-specific multicast
27         ssoBlockSourceGroup           // any-source or source-specific multicast
28         ssoUnblockSourceGroup         // any-source or source-specific multicast
29         ssoAttachFilter               // attach BPF for filtering inbound traffic
30 )
31
32 // Sticky socket option value types
33 const (
34         ssoTypeIPMreq = iota + 1
35         ssoTypeGroupReq
36         ssoTypeGroupSourceReq
37 )
38
39 // A sockOpt represents a binding for sticky socket option.
40 type sockOpt struct {
41         socket.Option
42         typ int // hint for option value type; optional
43 }