core

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Copyright 2024 Ella Networks

Copyright 2024 Ella Networks

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTransportLevelMarking

func GetTransportLevelMarking(far *ie.IE) (uint16, error)

func IndexFunc

func IndexFunc[S ~[]E, E any](s S, f func(E) bool) int

func ParseCidrIp

func ParseCidrIp(ipStr, maskStr string) (ebpf.IpWMask, error)

func ParsePort

func ParsePort(str string) (uint16, error)

func ParsePortRange

func ParsePortRange(str string) (ebpf.PortRange, error)

func ParseProtocol

func ParseProtocol(protocol string) (uint8, error)

func ParseSdfFilter

func ParseSdfFilter(flowDescription string) (ebpf.SdfFilter, error)

Types

type GtpPathManager

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

func NewGtpPathManager

func NewGtpPathManager(localAddress string, interval time.Duration) *GtpPathManager

func (*GtpPathManager) AddGtpPath

func (gtpPathManager *GtpPathManager) AddGtpPath(gtpPeerAddress string)

func (*GtpPathManager) Run

func (gtpPathManager *GtpPathManager) Run()

func (*GtpPathManager) Stop

func (gtpPathManager *GtpPathManager) Stop()

type NodeAssociation

type NodeAssociation struct {
	ID            string
	NextSessionID uint64
	Sessions      map[uint64]*Session
	sync.Mutex
}

func NewNodeAssociation

func NewNodeAssociation(remoteNodeID string, addr string) *NodeAssociation

func (*NodeAssociation) NewLocalSEID

func (association *NodeAssociation) NewLocalSEID() uint64

type PDRCreationContext

type PDRCreationContext struct {
	Session         *Session
	ResourceManager *service.ResourceManager
	TEIDCache       map[uint8]uint32
}

func NewPDRCreationContext

func NewPDRCreationContext(session *Session, resourceManager *service.ResourceManager) *PDRCreationContext

type PfcpConnection

type PfcpConnection struct {
	NodeAssociations map[string]*NodeAssociation

	RecoveryTimestamp time.Time
	ResourceManager   *service.ResourceManager
	// contains filtered or unexported fields
}

func CreatePfcpConnection

func CreatePfcpConnection(addr string, nodeId string, n3Ip string, mapOperations ebpf.ForwardingPlaneController, resourceManager *service.ResourceManager) (*PfcpConnection, error)

func GetConnection added in v0.0.5

func GetConnection() *PfcpConnection

func (*PfcpConnection) ReleaseResources

func (connection *PfcpConnection) ReleaseResources(seID uint64)

type SFarInfo

type SFarInfo struct {
	FarInfo  ebpf.FarInfo
	GlobalId uint32
}

type SPDRInfo

type SPDRInfo struct {
	PdrID     uint32
	PdrInfo   ebpf.PdrInfo
	Teid      uint32
	Ipv4      net.IP
	Ipv6      net.IP
	Allocated bool
}

type SQerInfo

type SQerInfo struct {
	QerInfo  ebpf.QerInfo
	GlobalId uint32
}

type Session

type Session struct {
	LocalSEID  uint64
	RemoteSEID uint64
	PDRs       map[uint32]SPDRInfo
	FARs       map[uint32]SFarInfo
	QERs       map[uint32]SQerInfo
}

func NewSession

func NewSession(localSEID uint64, remoteSEID uint64) *Session

func (*Session) GetFar

func (s *Session) GetFar(id uint32) SFarInfo

func (*Session) GetPDR

func (s *Session) GetPDR(id uint16) SPDRInfo

func (*Session) GetQer

func (s *Session) GetQer(id uint32) SQerInfo

func (*Session) NewFar

func (s *Session) NewFar(id uint32, internalId uint32, farInfo ebpf.FarInfo)

func (*Session) NewQer

func (s *Session) NewQer(id uint32, internalId uint32, qerInfo ebpf.QerInfo)

func (*Session) PutPDR

func (s *Session) PutPDR(id uint32, info SPDRInfo)

func (*Session) RemoveFar

func (s *Session) RemoveFar(id uint32) SFarInfo

func (*Session) RemovePDR

func (s *Session) RemovePDR(id uint32) SPDRInfo

func (*Session) RemoveQer

func (s *Session) RemoveQer(id uint32) SQerInfo

func (*Session) UpdateFar

func (s *Session) UpdateFar(id uint32, farInfo ebpf.FarInfo)

func (*Session) UpdateQer

func (s *Session) UpdateQer(id uint32, qerInfo ebpf.QerInfo)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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