Help us shape the future of Go! Take the 2026 Go Developer Survey

muxed

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package muxed provides a muxed link endpoints.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InjectableEndpoint

type InjectableEndpoint struct {
	// contains filtered or unexported fields
}

InjectableEndpoint is an injectable multi endpoint. The endpoint has trivial routing rules that determine which InjectableEndpoint a given packet will be written to. Note that HandleLocal works differently for this endpoint (see WritePacket).

func NewInjectableEndpoint

func NewInjectableEndpoint(routes map[tcpip.Address]stack.InjectableLinkEndpoint) *InjectableEndpoint

NewInjectableEndpoint creates a new multi-endpoint injectable endpoint.

func (*InjectableEndpoint) Attach

func (m *InjectableEndpoint) Attach(dispatcher stack.NetworkDispatcher)

Attach implements stack.LinkEndpoint.

func (*InjectableEndpoint) Capabilities

Capabilities implements stack.LinkEndpoint.

func (*InjectableEndpoint) InjectInbound

func (m *InjectableEndpoint) InjectInbound(protocol tcpip.NetworkProtocolNumber, pkt tcpip.PacketBuffer)

InjectInbound implements stack.InjectableLinkEndpoint.

func (*InjectableEndpoint) InjectOutbound

func (m *InjectableEndpoint) InjectOutbound(dest tcpip.Address, packet []byte) *tcpip.Error

InjectOutbound writes outbound packets to the appropriate LinkInjectableEndpoint based on the dest address.

func (*InjectableEndpoint) IsAttached

func (m *InjectableEndpoint) IsAttached() bool

IsAttached implements stack.LinkEndpoint.

func (*InjectableEndpoint) LinkAddress

func (m *InjectableEndpoint) LinkAddress() tcpip.LinkAddress

LinkAddress implements stack.LinkEndpoint.

func (*InjectableEndpoint) MTU

func (m *InjectableEndpoint) MTU() uint32

MTU implements stack.LinkEndpoint.

func (*InjectableEndpoint) MaxHeaderLength

func (m *InjectableEndpoint) MaxHeaderLength() uint16

MaxHeaderLength implements stack.LinkEndpoint.

func (*InjectableEndpoint) Wait

func (m *InjectableEndpoint) Wait()

Wait implements stack.LinkEndpoint.Wait.

func (*InjectableEndpoint) WritePacket

func (m *InjectableEndpoint) WritePacket(r *stack.Route, gso *stack.GSO, protocol tcpip.NetworkProtocolNumber, pkt tcpip.PacketBuffer) *tcpip.Error

WritePacket writes outbound packets to the appropriate LinkInjectableEndpoint based on the RemoteAddress. HandleLocal only works if r.RemoteAddress has a route registered in this endpoint.

func (*InjectableEndpoint) WritePackets

func (m *InjectableEndpoint) WritePackets(r *stack.Route, gso *stack.GSO, hdrs []stack.PacketDescriptor, payload buffer.VectorisedView, protocol tcpip.NetworkProtocolNumber) (int, *tcpip.Error)

WritePackets writes outbound packets to the appropriate LinkInjectableEndpoint based on the RemoteAddress. HandleLocal only works if r.RemoteAddress has a route registered in this endpoint.

func (*InjectableEndpoint) WriteRawPacket

func (m *InjectableEndpoint) WriteRawPacket(buffer.VectorisedView) *tcpip.Error

WriteRawPacket implements stack.LinkEndpoint.WriteRawPacket.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL