muxed

package
v0.0.0-...-c88ffa3 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: Apache-2.0, MIT Imports: 4 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).

+stateify savable

func NewInjectableEndpoint

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

NewInjectableEndpoint creates a new multi-endpoint injectable endpoint.

func (*InjectableEndpoint) ARPHardwareType

func (*InjectableEndpoint) ARPHardwareType() header.ARPHardwareType

ARPHardwareType implements stack.LinkEndpoint.ARPHardwareType.

func (*InjectableEndpoint) AddHeader

func (*InjectableEndpoint) AddHeader(*stack.PacketBuffer)

AddHeader implements stack.LinkEndpoint.AddHeader.

func (*InjectableEndpoint) Attach

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

Attach implements stack.LinkEndpoint.

func (*InjectableEndpoint) Capabilities

Capabilities implements stack.LinkEndpoint.

func (*InjectableEndpoint) Close

func (*InjectableEndpoint) Close()

Close implements stack.LinkEndpoint.

func (*InjectableEndpoint) InjectInbound

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

InjectInbound implements stack.InjectableLinkEndpoint.

func (*InjectableEndpoint) InjectOutbound

func (m *InjectableEndpoint) InjectOutbound(dest tcpip.Address, packet *buffer.View) 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) ParseHeader

func (*InjectableEndpoint) ParseHeader(*stack.PacketBuffer) bool

ParseHeader implements stack.LinkEndpoint.ParseHeader.

func (*InjectableEndpoint) SetLinkAddress

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

SetLinkAddress implements stack.LinkEndpoint.SetLinkAddress.

func (*InjectableEndpoint) SetMTU

func (m *InjectableEndpoint) SetMTU(mtu uint32)

SetMTU implements stack.LinkEndpoint.

func (*InjectableEndpoint) SetOnCloseAction

func (*InjectableEndpoint) SetOnCloseAction(func())

SetOnCloseAction implements stack.LinkEndpoint.SetOnCloseAction.

func (*InjectableEndpoint) Wait

func (m *InjectableEndpoint) Wait()

Wait implements stack.LinkEndpoint.Wait.

func (*InjectableEndpoint) WritePackets

func (m *InjectableEndpoint) WritePackets(pkts stack.PacketBufferList) (int, tcpip.Error)

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

Jump to

Keyboard shortcuts

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