sockopt.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. package ipv6
  5. import "golang.org/x/net/internal/socket"
  6. // Sticky socket options
  7. const (
  8. ssoTrafficClass = iota // header field for unicast packet, RFC 3542
  9. ssoHopLimit // header field for unicast packet, RFC 3493
  10. ssoMulticastInterface // outbound interface for multicast packet, RFC 3493
  11. ssoMulticastHopLimit // header field for multicast packet, RFC 3493
  12. ssoMulticastLoopback // loopback for multicast packet, RFC 3493
  13. ssoReceiveTrafficClass // header field on received packet, RFC 3542
  14. ssoReceiveHopLimit // header field on received packet, RFC 2292 or 3542
  15. ssoReceivePacketInfo // incbound or outbound packet path, RFC 2292 or 3542
  16. ssoReceivePathMTU // path mtu, RFC 3542
  17. ssoPathMTU // path mtu, RFC 3542
  18. ssoChecksum // packet checksum, RFC 2292 or 3542
  19. ssoICMPFilter // icmp filter, RFC 2292 or 3542
  20. ssoJoinGroup // any-source multicast, RFC 3493
  21. ssoLeaveGroup // any-source multicast, RFC 3493
  22. ssoJoinSourceGroup // source-specific multicast
  23. ssoLeaveSourceGroup // source-specific multicast
  24. ssoBlockSourceGroup // any-source or source-specific multicast
  25. ssoUnblockSourceGroup // any-source or source-specific multicast
  26. ssoAttachFilter // attach BPF for filtering inbound traffic
  27. )
  28. // Sticky socket option value types
  29. const (
  30. ssoTypeIPMreq = iota + 1
  31. ssoTypeGroupReq
  32. ssoTypeGroupSourceReq
  33. )
  34. // A sockOpt represents a binding for sticky socket option.
  35. type sockOpt struct {
  36. socket.Option
  37. typ int // hint for option value type; optional
  38. }