netfunc

package
v0.0.26 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewEndpoint

func NewEndpoint(ec *config.Endpoint, ttl uint8, hopLimit uint8) (netfunc_api.NetFunc, error)

func NewHeadend

func NewHeadend(he *config.Headend, ttl uint8, hopLimit uint8) (netfunc_api.NetFunc, error)

func NewHeadendWithCtrl added in v0.0.12

func NewHeadendWithCtrl(he *config.Headend, ttl uint8, hopLimit uint8, setup_registry app_api.Registry) (netfunc_api.NetFunc, error)

Types

type BaseHandler

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

Use this as a base for new handlers

func NewBaseHandler

func NewBaseHandler(prefix netip.Prefix, ttl uint8, hopLimit uint8) BaseHandler

func (BaseHandler) CheckDAInPrefixRange

func (h BaseHandler) CheckDAInPrefixRange(pqt *Packet) (netip.Addr, error)

Return the packet IP destination address (first network layer) if it is in the prefix range

func (BaseHandler) GetSrcAddr added in v0.0.12

func (h BaseHandler) GetSrcAddr(pqt *Packet) (netip.Addr, error)

func (BaseHandler) HopLimit

func (h BaseHandler) HopLimit() uint8

func (BaseHandler) Prefix

func (h BaseHandler) Prefix() netip.Prefix

Return prefix of the Handler as a *netip.Prefix

func (BaseHandler) TTL

func (h BaseHandler) TTL() uint8

type EndpointMGTP4E

type EndpointMGTP4E struct {
	BaseHandler
}

func NewEndpointMGTP4E

func NewEndpointMGTP4E(prefix netip.Prefix, ttl uint8, hopLimit uint8) *EndpointMGTP4E

func (EndpointMGTP4E) Handle

func (e EndpointMGTP4E) Handle(ctx context.Context, packet []byte) ([]byte, error)

Handle a packet

type HeadendEncapsWithCtrl added in v0.0.12

type HeadendEncapsWithCtrl struct {
	BaseHandler
	// contains filtered or unexported fields
}

func NewHeadendEncapsWithCtrl added in v0.0.12

func NewHeadendEncapsWithCtrl(prefix netip.Prefix, srcPrefix netip.Prefix, ttl uint8, hopLimit uint8, db db_api.Downlink) *HeadendEncapsWithCtrl

func (HeadendEncapsWithCtrl) Handle added in v0.0.12

func (h HeadendEncapsWithCtrl) Handle(ctx context.Context, packet []byte) ([]byte, error)

Handle a packet

type HeadendGTP4

type HeadendGTP4 struct {
	BaseHandler
	// contains filtered or unexported fields
}

func NewHeadendGTP4

func NewHeadendGTP4(prefix netip.Prefix, sourceAddressPrefix netip.Prefix, policy []config.Policy, ttl uint8, hopLimit uint8) *HeadendGTP4

func (HeadendGTP4) Handle

func (h HeadendGTP4) Handle(ctx context.Context, packet []byte) ([]byte, error)

Handle a packet

type HeadendGTP4WithCtrl added in v0.0.12

type HeadendGTP4WithCtrl struct {
	BaseHandler
	// contains filtered or unexported fields
}

func NewHeadendGTP4WithCtrl added in v0.0.12

func NewHeadendGTP4WithCtrl(prefix netip.Prefix, srcPrefix netip.Prefix, ttl uint8, hopLimit uint8, db db_api.Uplink) (*HeadendGTP4WithCtrl, error)

func (HeadendGTP4WithCtrl) Handle added in v0.0.12

func (h HeadendGTP4WithCtrl) Handle(ctx context.Context, packet []byte) ([]byte, error)

Handle a packet

type NetFunc

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

func NewNetFunc

func NewNetFunc(handler netfunc_api.Handler) *NetFunc

func (*NetFunc) Run added in v0.0.13

func (n *NetFunc) Run(ctx context.Context, tunIface *iproute2.TunIface) error

Run the NetFunc goroutine

type Packet

type Packet struct {
	gopacket.Packet
	// contains filtered or unexported fields
}

func NewIPv4Packet

func NewIPv4Packet(packet []byte) (*Packet, error)

func NewIPv6Packet

func NewIPv6Packet(packet []byte) (*Packet, error)

func (*Packet) CheckDAInPrefixRange

func (p *Packet) CheckDAInPrefixRange(prefix netip.Prefix) (netip.Addr, error)

Return the packet IP destination address (first network layer) if it is in the prefix range

func (*Packet) DownlinkAction added in v0.0.12

func (p *Packet) DownlinkAction(ctx context.Context, db db_api.Downlink) (n4tosrv6.Action, error)

Returns the DownlinkAction related to this packet

func (*Packet) GetSrcAddr added in v0.0.12

func (p *Packet) GetSrcAddr() (netip.Addr, error)

func (*Packet) PopGTP4Headers

func (p *Packet) PopGTP4Headers() (gopacket.Layer, error)

Returns the first gopacket.Layer after IPv4/UDP/GTPU headers

func (*Packet) PopIPv6Headers

func (p *Packet) PopIPv6Headers() (gopacket.Layer, error)

Returns the first gopacket.Layer after IPv6 header / extension headers

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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