pfcp

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RECEIVE_CHANNEL_LEN       = 512
	REPORT_CHANNEL_LEN        = 128
	TRANS_TIMEOUT_CHANNEL_LEN = 64
	MAX_PFCP_MSG_LEN          = 65536
)
View Source
const (
	BUFFQ_LEN = 512
)

Variables

This section is empty.

Functions

This section is empty.

Types

type LocalNode

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

func (*LocalNode) DeleteSess

func (n *LocalNode) DeleteSess(lSeid uint64) ([]report.USAReport, error)

func (*LocalNode) NewSess

func (n *LocalNode) NewSess(rSeid uint64, qlen int) *Sess

func (*LocalNode) RemoteSess

func (n *LocalNode) RemoteSess(rSeid uint64, addr net.Addr) (*Sess, error)

func (*LocalNode) Reset

func (n *LocalNode) Reset()

func (*LocalNode) Sess

func (n *LocalNode) Sess(lSeid uint64) (*Sess, error)

type PDRInfo added in v1.2.0

type PDRInfo struct {
	RelatedURRIDs map[uint32]struct{}
}

type PfcpServer

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

func NewPfcpServer

func NewPfcpServer(cfg *factory.Config, driver forwarder.Driver) *PfcpServer

func (*PfcpServer) NewNode

func (s *PfcpServer) NewNode(id string, addr net.Addr, driver forwarder.Driver) *RemoteNode

func (*PfcpServer) NotifySessReport

func (s *PfcpServer) NotifySessReport(sr report.SessReport)

func (*PfcpServer) NotifyTransTimeout

func (s *PfcpServer) NotifyTransTimeout(trType TransType, trID string)

func (*PfcpServer) PopBufPkt

func (s *PfcpServer) PopBufPkt(seid uint64, pdrid uint16) ([]byte, bool)

func (*PfcpServer) ServeReport

func (s *PfcpServer) ServeReport(sr *report.SessReport)

func (*PfcpServer) Start

func (s *PfcpServer) Start(wg *sync.WaitGroup)

func (*PfcpServer) Stop

func (s *PfcpServer) Stop()

func (*PfcpServer) UpdateNodeID

func (s *PfcpServer) UpdateNodeID(n *RemoteNode, newId string)

type ReceivePacket

type ReceivePacket struct {
	RemoteAddr net.Addr
	Buf        []byte
}

type RemoteNode

type RemoteNode struct {
	ID string
	// contains filtered or unexported fields
}

func NewRemoteNode

func NewRemoteNode(
	id string,
	addr net.Addr,
	local *LocalNode,
	driver forwarder.Driver,
	log *logrus.Entry,
) *RemoteNode

func (*RemoteNode) DeleteSess

func (n *RemoteNode) DeleteSess(lSeid uint64) []report.USAReport

func (*RemoteNode) NewSess

func (n *RemoteNode) NewSess(rSeid uint64) *Sess

func (*RemoteNode) Reset

func (n *RemoteNode) Reset()

func (*RemoteNode) Sess

func (n *RemoteNode) Sess(lSeid uint64) (*Sess, error)

type RxTransaction

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

func NewRxTransaction

func NewRxTransaction(
	server *PfcpServer,
	raddr net.Addr,
	seq uint32,
) *RxTransaction

type Sess

type Sess struct {
	LocalID  uint64
	RemoteID uint64
	PDRIDs   map[uint16]*PDRInfo // key: PDR_ID
	FARIDs   map[uint32]struct{} // key: FAR_ID
	QERIDs   map[uint32]struct{} // key: QER_ID
	URRIDs   map[uint32]*URRInfo // key: URR_ID
	BARIDs   map[uint8]struct{}  // key: BAR_ID
	// contains filtered or unexported fields
}

func (*Sess) Close

func (s *Sess) Close() []report.USAReport

func (*Sess) CreateBAR

func (s *Sess) CreateBAR(req *ie.IE) error

func (*Sess) CreateFAR

func (s *Sess) CreateFAR(req *ie.IE) error

func (*Sess) CreatePDR

func (s *Sess) CreatePDR(req *ie.IE) error

func (*Sess) CreateQER

func (s *Sess) CreateQER(req *ie.IE) error

func (*Sess) CreateURR

func (s *Sess) CreateURR(req *ie.IE) error

func (*Sess) Len

func (s *Sess) Len(pdrid uint16) int

func (*Sess) Pop

func (s *Sess) Pop(pdrid uint16) ([]byte, bool)

func (*Sess) Push

func (s *Sess) Push(pdrid uint16, p []byte)

func (*Sess) QueryURR added in v1.1.0

func (s *Sess) QueryURR(req *ie.IE) ([]report.USAReport, error)

func (*Sess) RemoveBAR

func (s *Sess) RemoveBAR(req *ie.IE) error

func (*Sess) RemoveFAR

func (s *Sess) RemoveFAR(req *ie.IE) error

func (*Sess) RemovePDR

func (s *Sess) RemovePDR(req *ie.IE) ([]report.USAReport, error)

func (*Sess) RemoveQER

func (s *Sess) RemoveQER(req *ie.IE) error

func (*Sess) RemoveURR

func (s *Sess) RemoveURR(req *ie.IE) ([]report.USAReport, error)

func (*Sess) URRSeq added in v1.1.0

func (s *Sess) URRSeq(urrid uint32) uint32

func (*Sess) UpdateBAR

func (s *Sess) UpdateBAR(req *ie.IE) error

func (*Sess) UpdateFAR

func (s *Sess) UpdateFAR(req *ie.IE) error

func (*Sess) UpdatePDR

func (s *Sess) UpdatePDR(req *ie.IE) ([]report.USAReport, error)

func (*Sess) UpdateQER

func (s *Sess) UpdateQER(req *ie.IE) error

func (*Sess) UpdateURR

func (s *Sess) UpdateURR(req *ie.IE) ([]report.USAReport, error)

type TransType

type TransType int
const (
	TX TransType = iota
	RX
)

type TransactionTimeout

type TransactionTimeout struct {
	TrType TransType
	TrID   string
}

type TxTransaction

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

func NewTxTransaction

func NewTxTransaction(
	server *PfcpServer,
	raddr net.Addr,
	seq uint32,
) *TxTransaction

type URRInfo added in v1.1.0

type URRInfo struct {
	SEQN uint32
	report.MeasureMethod
	report.MeasureInformation
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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