45 lines
1.7 KiB
Go
45 lines
1.7 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 ipv4
|
||
|
|
||
|
import "golang.org/x/net/internal/socket"
|
||
|
|
||
|
// Sticky socket options
|
||
|
const (
|
||
|
ssoTOS = iota // header field for unicast packet
|
||
|
ssoTTL // header field for unicast packet
|
||
|
ssoMulticastTTL // header field for multicast packet
|
||
|
ssoMulticastInterface // outbound interface for multicast packet
|
||
|
ssoMulticastLoopback // loopback for multicast packet
|
||
|
ssoReceiveTTL // header field on received packet
|
||
|
ssoReceiveDst // header field on received packet
|
||
|
ssoReceiveInterface // inbound interface on received packet
|
||
|
ssoPacketInfo // incbound or outbound packet path
|
||
|
ssoHeaderPrepend // ipv4 header prepend
|
||
|
ssoStripHeader // strip ipv4 header
|
||
|
ssoICMPFilter // icmp filter
|
||
|
ssoJoinGroup // any-source multicast
|
||
|
ssoLeaveGroup // any-source multicast
|
||
|
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
|
||
|
ssoTypeIPMreqn
|
||
|
ssoTypeGroupReq
|
||
|
ssoTypeGroupSourceReq
|
||
|
)
|
||
|
|
||
|
// A sockOpt represents a binding for sticky socket option.
|
||
|
type sockOpt struct {
|
||
|
socket.Option
|
||
|
typ int // hint for option value type; optional
|
||
|
}
|