package udp
import "gvisor.dev/gvisor/pkg/tcpip/transport/udp"
Package udp contains the implementation of the UDP transport protocol.
Index ¶
- Constants
- func NewProtocol(s *stack.Stack) stack.TransportProtocol
- type Forwarder
- func NewForwarder(s *stack.Stack, handler func(*ForwarderRequest)) *Forwarder
- func (f *Forwarder) HandlePacket(id stack.TransportEndpointID, pkt *stack.PacketBuffer) bool
- type ForwarderRequest
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 )
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.
Source Files ¶
endpoint.go endpoint_state.go forwarder.go protocol.go
- Version
- v0.0.0-20250605235530-a6711d1e1dc6 (latest)
- Published
- Jun 5, 2025
- Platform
- linux/amd64
- Imports
- 17 packages
- Last checked
- 5 hours ago –
Tools for package owners.