Documentation ¶
Overview ¶
Package udp contains the implementation of the UDP transport protocol.
Index ¶
Constants ¶
const ( // ProtocolNumber is the udp protocol number. ProtocolNumber = header.UDPProtocolNumber // MinBufferSize is the smallest size of a receive or send buffer. MinBufferSize = 4 << 10 // 4KiB bytes. // DefaultSendBufferSize is the default size of the send buffer for // an endpoint. DefaultSendBufferSize = 32 << 10 // 32KiB // DefaultReceiveBufferSize is the default size of the receive buffer // for an endpoint. DefaultReceiveBufferSize = 32 << 10 // 32KiB // MaxBufferSize is the largest size a receive/send buffer can grow to. MaxBufferSize = 4 << 20 // 4MiB )
Variables ¶
This section is empty.
Functions ¶
func NewProtocol ¶
func NewProtocol(s *stack.Stack) stack.TransportProtocol
NewProtocol returns a UDP transport protocol.
Types ¶
type Forwarder ¶
type Forwarder struct {
// contains filtered or unexported fields
}
Forwarder is a session request forwarder, which allows clients to decide what to do with a session request, for example: ignore it, or process it.
The canonical way of using it is to pass the Forwarder.HandlePacket function to stack.SetTransportProtocolHandler.
func NewForwarder ¶
func NewForwarder(s *stack.Stack, handler func(*ForwarderRequest)) *Forwarder
NewForwarder allocates and initializes a new forwarder.
func (*Forwarder) HandlePacket ¶
func (f *Forwarder) HandlePacket(id stack.TransportEndpointID, pkt *stack.PacketBuffer) bool
HandlePacket handles all packets.
This function is expected to be passed as an argument to the stack.SetTransportProtocolHandler function.
type ForwarderRequest ¶
type ForwarderRequest struct {
// contains filtered or unexported fields
}
ForwarderRequest represents a session request received by the forwarder and passed to the client. Clients may optionally create an endpoint to represent it via CreateEndpoint.
func (*ForwarderRequest) CreateEndpoint ¶
CreateEndpoint creates a connected UDP endpoint for the session request.
func (*ForwarderRequest) ID ¶
func (r *ForwarderRequest) ID() stack.TransportEndpointID
ID returns the 4-tuple (src address, src port, dst address, dst port) that represents the session request.