pfcp

package module
v1.0.7 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2024 License: Apache-2.0 Imports: 10 Imported by: 21

Documentation

Index

Constants

View Source
const (
	SEID_NOT_PRESENT = 0
	SEID_PRESENT     = 1
)
View Source
const (
	NumOfResend                 = 3
	ResendRequestTimeOutPeriod  = 3
	ResendResponseTimeOutPeriod = 15
)
View Source
const PfcpVersion uint8 = 1

Variables

This section is empty.

Functions

func ReceiveNode

func ReceiveNode(seq int)

func RemoveNode

func RemoveNode(index int)

Types

type AdditionalMonitoringTime

type AdditionalMonitoringTime struct {
	MonitoringTime            *pfcpType.MonitoringTime            `tlv:"33"`
	SubsequentVolumeThreshold *pfcpType.SubsequentVolumeThreshold `tlv:"34"`
	SubsequentTimeThreshold   *pfcpType.SubsequentTimeThreshold   `tlv:"35"`
	SubsequentVolumeQuota     *pfcpType.SubsequentVolumeQuota     `tlv:"121"`
	SubsequentTimeQuota       *pfcpType.SubsequentTimeQuota       `tlv:"122"`
}

type AggregatedURRs

type AggregatedURRs struct {
	AggregatedURRID *pfcpType.AggregatedURRID `tlv:"120"`
	Multiplier      *pfcpType.Multiplier      `tlv:"119"`
}

type ApplicationDetectionInformation

type ApplicationDetectionInformation struct {
	ApplicationID         *pfcpType.ApplicationID         `tlv:"24"`
	ApplicationInstanceID *pfcpType.ApplicationInstanceID `tlv:"91"`
	FlowInformation       *pfcpType.FlowInformation       `tlv:"92"`
}

type ApplicationIDsPFDs

type ApplicationIDsPFDs struct {
	ApplicationID pfcpType.ApplicationID `tlv:"24"`
	PFD           *PFD                   `tlv:"59"`
}

type CreateBAR

type CreateBAR struct {
	BARID                          *pfcpType.BARID                          `tlv:"88"`
	DownlinkDataNotificationDelay  *pfcpType.DownlinkDataNotificationDelay  `tlv:"46"`
	SuggestedBufferingPacketsCount *pfcpType.SuggestedBufferingPacketsCount `tlv:"140"`
}

type CreateFAR

type CreateFAR struct {
	FARID                 *pfcpType.FARID                 `tlv:"108"`
	ApplyAction           *pfcpType.ApplyAction           `tlv:"44"`
	ForwardingParameters  *ForwardingParametersIEInFAR    `tlv:"4"`
	DuplicatingParameters *pfcpType.DuplicatingParameters `tlv:"5"`
	BARID                 *pfcpType.BARID                 `tlv:"88"`
}

type CreatePDR

type CreatePDR struct {
	PDRID                   *pfcpType.PacketDetectionRuleID   `tlv:"56"`
	Precedence              *pfcpType.Precedence              `tlv:"29"`
	PDI                     *PDI                              `tlv:"2"`
	OuterHeaderRemoval      *pfcpType.OuterHeaderRemoval      `tlv:"95"`
	FARID                   *pfcpType.FARID                   `tlv:"108"`
	URRID                   []*pfcpType.URRID                 `tlv:"81"`
	QERID                   []*pfcpType.QERID                 `tlv:"109"`
	ActivatePredefinedRules *pfcpType.ActivatePredefinedRules `tlv:"106"`
}

type CreateQER

type CreateQER struct {
	QERID              *pfcpType.QERID              `tlv:"109"`
	QERCorrelationID   *pfcpType.QERCorrelationID   `tlv:"28"`
	GateStatus         *pfcpType.GateStatus         `tlv:"25"`
	MaximumBitrate     *pfcpType.MBR                `tlv:"26"`
	GuaranteedBitrate  *pfcpType.GBR                `tlv:"27"`
	PacketRate         *pfcpType.PacketRate         `tlv:"94"`
	DLFlowLevelMarking *pfcpType.DLFlowLevelMarking `tlv:"97"`
	QoSFlowIdentifier  *pfcpType.QFI                `tlv:"124"`
	ReflectiveQoS      *pfcpType.RQI                `tlv:"123"`
}

type CreateTrafficEndpoint

type CreateTrafficEndpoint struct {
	TrafficEndpointID             *pfcpType.TrafficEndpointID             `tlv:"131"`
	LocalFTEID                    *pfcpType.FTEID                         `tlv:"21"`
	NetworkInstance               *pfcpType.NetworkInstance               `tlv:"22"`
	UEIPAddress                   *pfcpType.UEIPAddress                   `tlv:"93"`
	EthernetPDUSessionInformation *pfcpType.EthernetPDUSessionInformation `tlv:"142"`
	FramedRoute                   *pfcpType.FramedRoute                   `tlv:"153"`
	FramedRouting                 *pfcpType.FramedRouting                 `tlv:"154"`
	FramedIPv6Route               *pfcpType.FramedIPv6Route               `tlv:"155"`
}

type CreateURR

type CreateURR struct {
	URRID                     *pfcpType.URRID                     `tlv:"81"`
	MeasurementMethod         *pfcpType.MeasurementMethod         `tlv:"62"`
	ReportingTriggers         *pfcpType.ReportingTriggers         `tlv:"37"`
	MeasurementPeriod         *pfcpType.MeasurementPeriod         `tlv:"64"`
	VolumeThreshold           *pfcpType.VolumeThreshold           `tlv:"31"`
	VolumeQuota               *pfcpType.VolumeQuota               `tlv:"73"`
	TimeThreshold             *pfcpType.TimeThreshold             `tlv:"32"`
	TimeQuota                 *pfcpType.TimeQuota                 `tlv:"74"`
	QuotaHoldingTime          *pfcpType.QuotaHoldingTime          `tlv:"71"`
	DroppedDLTrafficThreshold *pfcpType.DroppedDLTrafficThreshold `tlv:"72"`
	MonitoringTime            *pfcpType.MonitoringTime            `tlv:"33"`
	EventInformation          *EventInformation                   `tlv:"148"`
	SubsequentVolumeThreshold *pfcpType.SubsequentVolumeThreshold `tlv:"34"`
	SubsequentTimeThreshold   *pfcpType.SubsequentTimeThreshold   `tlv:"35"`
	SubsequentVolumeQuota     *pfcpType.SubsequentVolumeQuota     `tlv:"121"`
	SubsequentTimeQuota       *pfcpType.SubsequentTimeQuota       `tlv:"122"`
	InactivityDetectionTime   *pfcpType.InactivityDetectionTime   `tlv:"36"`
	LinkedURRID               *pfcpType.LinkedURRID               `tlv:"82"`
	MeasurementInformation    *pfcpType.MeasurementInformation    `tlv:"100"`
	TimeQuotaMechanism        *pfcpType.TimeQuotaMechanism        `tlv:"115"`
	AggregatedURRs            []*AggregatedURRs                   `tlv:"118"`
	FARIDForQuotaAction       *pfcpType.FARID                     `tlv:"108"`
	EthernetInactivityTimer   *pfcpType.EthernetInactivityTimer   `tlv:"146"`
	AdditionalMonitoringTime  *AdditionalMonitoringTime           `tlv:"147"`
	QuotaValidityTime         *pfcpType.QuotaValidityTime         `tlv:"181"`
}

type CreatedPDR

type CreatedPDR struct {
	PDRID      *pfcpType.PacketDetectionRuleID `tlv:"56"`
	LocalFTEID *pfcpType.FTEID                 `tlv:"21"`
}

type CreatedTrafficEndpoint

type CreatedTrafficEndpoint struct {
	TrafficEndpointID *pfcpType.TrafficEndpointID `tlv:"131"`
	LocalFTEID        *pfcpType.FTEID             `tlv:"21"`
}

type DownlinkDataReport

type DownlinkDataReport struct {
	PDRID                          *pfcpType.PacketDetectionRuleID          `tlv:"56"`
	DownlinkDataServiceInformation *pfcpType.DownlinkDataServiceInformation `tlv:"45"`
}

type DuplicatingParametersIEInFAR

type DuplicatingParametersIEInFAR struct {
	DestinationInterface  *pfcpType.DestinationInterface  `tlv:"42"`
	OuterHeaderCreation   *pfcpType.OuterHeaderCreation   `tlv:"84"`
	TransportLevelMarking *pfcpType.TransportLevelMarking `tlv:"30"`
	ForwardingPolicy      *pfcpType.ForwardingPolicy      `tlv:"41"`
}

type ErrorIndicationReport

type ErrorIndicationReport struct {
	RemoteFTEID *pfcpType.FTEID `tlv:"21"`
}

type EthernetPacketFilter

type EthernetPacketFilter struct {
	EthernetFilterID         *pfcpType.EthernetFilterID         `tlv:"138"`
	EthernetFilterProperties *pfcpType.EthernetFilterProperties `tlv:"139"`
	MACAddress               *pfcpType.MACAddress               `tlv:"133"`
	Ethertype                *pfcpType.Ethertype                `tlv:"136"`
	CTAG                     *pfcpType.CTAG                     `tlv:"134"`
	STAG                     *pfcpType.STAG                     `tlv:"135"`
	SDFFilter                *pfcpType.SDFFilter                `tlv:"23"`
}

type EthernetTrafficInformation

type EthernetTrafficInformation struct {
	MACAddressesDetected *pfcpType.MACAddressesDetected `tlv:"144"`
	MACAddressesRemoved  *pfcpType.MACAddressesRemoved  `tlv:"145"`
}

type EventInformation

type EventInformation struct {
	EventID        *pfcpType.EventID        `tlv:"150"`
	EventThreshold *pfcpType.EventThreshold `tlv:"151"`
}

type EventReporting

type EventReporting struct {
	EventID *pfcpType.EventID `tlv:"150"`
}

type ForwardingParametersIEInFAR

type ForwardingParametersIEInFAR struct {
	DestinationInterface    *pfcpType.DestinationInterface  `tlv:"42"`
	NetworkInstance         *pfcpType.NetworkInstance       `tlv:"22"`
	RedirectInformation     *pfcpType.RedirectInformation   `tlv:"38"`
	OuterHeaderCreation     *pfcpType.OuterHeaderCreation   `tlv:"84"`
	TransportLevelMarking   *pfcpType.TransportLevelMarking `tlv:"30"`
	ForwardingPolicy        *pfcpType.ForwardingPolicy      `tlv:"41"`
	HeaderEnrichment        *pfcpType.HeaderEnrichment      `tlv:"98"`
	LinkedTrafficEndpointID *pfcpType.TrafficEndpointID     `tlv:"131"`
	Proxying                *pfcpType.Proxying              `tlv:"137"`
}
type Header struct {
	Version         uint8
	MP              uint8
	S               uint8
	MessageType     MessageType
	MessageLength   uint16
	SEID            uint64
	SequenceNumber  uint32
	MessagePriority uint8
}

func (*Header) Len

func (h *Header) Len() int

func (*Header) MarshalBinary

func (h *Header) MarshalBinary() (data []byte, err error)

func (*Header) UnmarshalBinary

func (h *Header) UnmarshalBinary(data []byte) error

type HeartbeatRequest

type HeartbeatRequest struct {
	RecoveryTimeStamp *pfcpType.RecoveryTimeStamp `tlv:"96"`
}

type HeartbeatResponse

type HeartbeatResponse struct {
	RecoveryTimeStamp *pfcpType.RecoveryTimeStamp `tlv:"96"`
}

type LoadControlInformation

type LoadControlInformation struct {
	LoadControlSequenceNumber *pfcpType.SequenceNumber `tlv:"52"`
	LoadMetric                *pfcpType.Metric         `tlv:"53"`
}

type Message

type Message struct {
	Header Header
	Body   interface{}
}

func (*Message) IsRequest

func (message *Message) IsRequest() (IsRequest bool)

func (*Message) IsResponse

func (message *Message) IsResponse() (IsResponse bool)

func (*Message) Marshal

func (m *Message) Marshal() ([]byte, error)

func (*Message) Unmarshal

func (m *Message) Unmarshal(data []byte) error

type MessageType

type MessageType uint8
const (
	PFCP_HEARTBEAT_REQUEST              MessageType = 1
	PFCP_HEARTBEAT_RESPONSE             MessageType = 2
	PFCP_PFD_MANAGEMENT_REQUEST         MessageType = 3
	PFCP_PFD_MANAGEMENT_RESPONSE        MessageType = 4
	PFCP_ASSOCIATION_SETUP_REQUEST      MessageType = 5
	PFCP_ASSOCIATION_SETUP_RESPONSE     MessageType = 6
	PFCP_ASSOCIATION_UPDATE_REQUEST     MessageType = 7
	PFCP_ASSOCIATION_UPDATE_RESPONSE    MessageType = 8
	PFCP_ASSOCIATION_RELEASE_REQUEST    MessageType = 9
	PFCP_ASSOCIATION_RELEASE_RESPONSE   MessageType = 10
	PFCP_VERSION_NOT_SUPPORTED_RESPONSE MessageType = 11
	PFCP_NODE_REPORT_REQUEST            MessageType = 12
	PFCP_NODE_REPORT_RESPONSE           MessageType = 13
	PFCP_SESSION_SET_DELETION_REQUEST   MessageType = 14
	PFCP_SESSION_SET_DELETION_RESPONSE  MessageType = 15

	PFCP_SESSION_ESTABLISHMENT_REQUEST  MessageType = 50
	PFCP_SESSION_ESTABLISHMENT_RESPONSE MessageType = 51
	PFCP_SESSION_MODIFICATION_REQUEST   MessageType = 52
	PFCP_SESSION_MODIFICATION_RESPONSE  MessageType = 53
	PFCP_SESSION_DELETION_REQUEST       MessageType = 54
	PFCP_SESSION_DELETION_RESPONSE      MessageType = 55
	PFCP_SESSION_REPORT_REQUEST         MessageType = 56
	PFCP_SESSION_REPORT_RESPONSE        MessageType = 57
)

type Node

type Node struct {
	State    NodeState
	Request  *Message
	Response *Message
	// contains filtered or unexported fields
}

func CreateNode

func CreateNode() (node *Node)

type NodeState

type NodeState int
const (
	INITIAL NodeState = 0
	REQUEST NodeState = 1
	FINISH  NodeState = 2
)

type OverloadControlInformation

type OverloadControlInformation struct {
	OverloadControlSequenceNumber   *pfcpType.SequenceNumber `tlv:"52"`
	OverloadReductionMetric         *pfcpType.Metric         `tlv:"53"`
	PeriodOfValidity                *pfcpType.Timer          `tlv:"55"`
	OverloadControlInformationFlags *pfcpType.OCIFlags       `tlv:"110"`
}

type PDI

type PDI struct {
	SourceInterface               *pfcpType.SourceInterface               `tlv:"20"`
	LocalFTEID                    *pfcpType.FTEID                         `tlv:"21"`
	NetworkInstance               *pfcpType.NetworkInstance               `tlv:"22"`
	UEIPAddress                   *pfcpType.UEIPAddress                   `tlv:"93"`
	TrafficEndpointID             *pfcpType.TrafficEndpointID             `tlv:"131"`
	SDFFilter                     *pfcpType.SDFFilter                     `tlv:"23"`
	ApplicationID                 *pfcpType.ApplicationID                 `tlv:"24"`
	EthernetPDUSessionInformation *pfcpType.EthernetPDUSessionInformation `tlv:"142"`
	EthernetPacketFilter          *EthernetPacketFilter                   `tlv:"132"`
	QFI                           []*pfcpType.QFI                         `tlv:"124"`
	FramedRoute                   *pfcpType.FramedRoute                   `tlv:"153"`
	FramedRouting                 *pfcpType.FramedRouting                 `tlv:"154"`
	FramedIPv6Route               *pfcpType.FramedIPv6Route               `tlv:"155"`
}

type PFCPAssociationReleaseRequest

type PFCPAssociationReleaseRequest struct {
	NodeID *pfcpType.NodeID `tlv:"60"`
}

type PFCPAssociationReleaseResponse

type PFCPAssociationReleaseResponse struct {
	NodeID *pfcpType.NodeID `tlv:"60"`
	Cause  *pfcpType.Cause  `tlv:"19"`
}

type PFCPAssociationSetupRequest

type PFCPAssociationSetupRequest struct {
	NodeID                         *pfcpType.NodeID                         `tlv:"60"`
	RecoveryTimeStamp              *pfcpType.RecoveryTimeStamp              `tlv:"96"`
	UPFunctionFeatures             *pfcpType.UPFunctionFeatures             `tlv:"43"`
	CPFunctionFeatures             *pfcpType.CPFunctionFeatures             `tlv:"89"`
	UserPlaneIPResourceInformation *pfcpType.UserPlaneIPResourceInformation `tlv:"116"`
}

type PFCPAssociationSetupResponse

type PFCPAssociationSetupResponse struct {
	NodeID                         *pfcpType.NodeID                         `tlv:"60"`
	Cause                          *pfcpType.Cause                          `tlv:"19"`
	RecoveryTimeStamp              *pfcpType.RecoveryTimeStamp              `tlv:"96"`
	UPFunctionFeatures             *pfcpType.UPFunctionFeatures             `tlv:"43"`
	CPFunctionFeatures             *pfcpType.CPFunctionFeatures             `tlv:"89"`
	UserPlaneIPResourceInformation *pfcpType.UserPlaneIPResourceInformation `tlv:"116"`
}

type PFCPAssociationUpdateRequest

type PFCPAssociationUpdateRequest struct {
	NodeID                         *pfcpType.NodeID                         `tlv:"60"`
	UPFunctionFeatures             *pfcpType.UPFunctionFeatures             `tlv:"43"`
	CPFunctionFeatures             *pfcpType.CPFunctionFeatures             `tlv:"89"`
	PFCPAssociationReleaseRequest  *PFCPAssociationReleaseRequest           `tlv:"111"`
	GracefulReleasePeriod          *pfcpType.GracefulReleasePeriod          `tlv:"112"`
	UserPlaneIPResourceInformation *pfcpType.UserPlaneIPResourceInformation `tlv:"116"`
}

type PFCPAssociationUpdateResponse

type PFCPAssociationUpdateResponse struct {
	NodeID             *pfcpType.NodeID             `tlv:"60"`
	Cause              *pfcpType.Cause              `tlv:"19"`
	UPFunctionFeatures *pfcpType.UPFunctionFeatures `tlv:"43"`
	CPFunctionFeatures *pfcpType.CPFunctionFeatures `tlv:"89"`
}

type PFCPNodeReportRequest

type PFCPNodeReportRequest struct {
	NodeID                     *pfcpType.NodeID                     `tlv:"60"`
	NodeReportType             *pfcpType.NodeReportType             `tlv:"101"`
	UserPlanePathFailureReport *pfcpType.UserPlanePathFailureReport `tlv:"102"`
}

type PFCPNodeReportResponse

type PFCPNodeReportResponse struct {
	NodeID      *pfcpType.NodeID      `tlv:"60"`
	Cause       *pfcpType.Cause       `tlv:"19"`
	OffendingIE *pfcpType.OffendingIE `tlv:"40"`
}

type PFCPPFDManagementRequest

type PFCPPFDManagementRequest struct {
	ApplicationIDsPFDs []ApplicationIDsPFDs `tlv:"58"`
}

type PFCPPFDManagementResponse

type PFCPPFDManagementResponse struct {
	Cause       *pfcpType.Cause       `tlv:"19"`
	OffendingIE *pfcpType.OffendingIE `tlv:"40"`
}

type PFCPSessionDeletionRequest

type PFCPSessionDeletionRequest struct{}

type PFCPSessionDeletionResponse

type PFCPSessionDeletionResponse struct {
	Cause                      *pfcpType.Cause                           `tlv:"19"`
	OffendingIE                *pfcpType.OffendingIE                     `tlv:"40"`
	LoadControlInformation     *LoadControlInformation                   `tlv:"51"`
	OverloadControlInformation *OverloadControlInformation               `tlv:"54"`
	UsageReport                []*UsageReportPFCPSessionDeletionResponse `tlv:"79"`
}

type PFCPSessionEstablishmentRequest

type PFCPSessionEstablishmentRequest struct {
	NodeID                   *pfcpType.NodeID                   `tlv:"60"`
	CPFSEID                  *pfcpType.FSEID                    `tlv:"57"`
	CreatePDR                []*CreatePDR                       `tlv:"1"`
	CreateFAR                []*CreateFAR                       `tlv:"3"`
	CreateURR                []*CreateURR                       `tlv:"6"`
	CreateQER                []*CreateQER                       `tlv:"7"`
	CreateBAR                []*CreateBAR                       `tlv:"85"`
	CreateTrafficEndpoint    *CreateTrafficEndpoint             `tlv:"127"`
	PDNType                  *pfcpType.PDNType                  `tlv:"113"`
	SGWCFQCSID               *pfcpType.FQCSID                   `tlv:"65"`
	MMEFQCSID                *pfcpType.FQCSID                   `tlv:"65"`
	PGWCFQCSID               *pfcpType.FQCSID                   `tlv:"65"`
	EPDGFQCSID               *pfcpType.FQCSID                   `tlv:"65"`
	TWANFQCSID               *pfcpType.FQCSID                   `tlv:"65"`
	UserPlaneInactivityTimer *pfcpType.UserPlaneInactivityTimer `tlv:"117"`
	UserID                   *pfcpType.UserID                   `tlv:"141"`
	TraceInformation         *pfcpType.TraceInformation         `tlv:"152"`
}

type PFCPSessionEstablishmentResponse

type PFCPSessionEstablishmentResponse struct {
	NodeID                     *pfcpType.NodeID            `tlv:"60"`
	Cause                      *pfcpType.Cause             `tlv:"19"`
	OffendingIE                *pfcpType.OffendingIE       `tlv:"40"`
	UPFSEID                    *pfcpType.FSEID             `tlv:"57"`
	CreatedPDR                 *CreatedPDR                 `tlv:"8"`
	LoadControlInformation     *LoadControlInformation     `tlv:"51"`
	OverloadControlInformation *OverloadControlInformation `tlv:"54"`
	SGWUFQCSID                 *pfcpType.FQCSID            `tlv:"65"`
	PGWUFQCSID                 *pfcpType.FQCSID            `tlv:"65"`
	FailedRuleID               *pfcpType.FailedRuleID      `tlv:"114"`
	CreatedTrafficEndpoint     *CreatedTrafficEndpoint     `tlv:"128"`
}

type PFCPSessionModificationRequest

type PFCPSessionModificationRequest struct {
	CPFSEID                  *pfcpType.FSEID                          `tlv:"57"`
	RemovePDR                []*RemovePDR                             `tlv:"15"`
	RemoveFAR                []*RemoveFAR                             `tlv:"16"`
	RemoveURR                []*RemoveURR                             `tlv:"17"`
	RemoveQER                []*RemoveQER                             `tlv:"18"`
	RemoveBAR                []*RemoveBAR                             `tlv:"87"`
	RemoveTrafficEndpoint    *RemoveTrafficEndpoint                   `tlv:"130"`
	CreatePDR                []*CreatePDR                             `tlv:"1"`
	CreateFAR                []*CreateFAR                             `tlv:"3"`
	CreateURR                []*CreateURR                             `tlv:"6"`
	CreateQER                []*CreateQER                             `tlv:"7"`
	CreateBAR                []*CreateBAR                             `tlv:"85"`
	CreateTrafficEndpoint    *CreateTrafficEndpoint                   `tlv:"127"`
	UpdatePDR                []*UpdatePDR                             `tlv:"9"`
	UpdateFAR                []*UpdateFAR                             `tlv:"10"`
	UpdateURR                []*UpdateURR                             `tlv:"13"`
	UpdateQER                []*UpdateQER                             `tlv:"14"`
	UpdateBAR                *UpdateBARPFCPSessionModificationRequest `tlv:"86"`
	UpdateTrafficEndpoint    *UpdateTrafficEndpoint                   `tlv:"129"`
	PFCPSMReqFlags           *pfcpType.PFCPSMReqFlags                 `tlv:"49"`
	QueryURR                 []*QueryURR                              `tlv:"77"`
	PGWCFQCSID               *pfcpType.FQCSID                         `tlv:"65"`
	SGWCFQCSID               *pfcpType.FQCSID                         `tlv:"65"`
	MMEFQCSID                *pfcpType.FQCSID                         `tlv:"65"`
	EPDGFQCSID               *pfcpType.FQCSID                         `tlv:"65"`
	TWANFQCSID               *pfcpType.FQCSID                         `tlv:"65"`
	UserPlaneInactivityTimer *pfcpType.UserPlaneInactivityTimer       `tlv:"117"`
	QueryURRReference        *pfcpType.QueryURRReference              `tlv:"125"`
	TraceInformation         *pfcpType.TraceInformation               `tlv:"152"`
}

type PFCPSessionModificationResponse

type PFCPSessionModificationResponse struct {
	Cause                             *pfcpType.Cause                               `tlv:"19"`
	OffendingIE                       *pfcpType.OffendingIE                         `tlv:"40"`
	CreatedPDR                        *CreatedPDR                                   `tlv:"8"`
	LoadControlInformation            *LoadControlInformation                       `tlv:"51"`
	OverloadControlInformation        *OverloadControlInformation                   `tlv:"54"`
	UsageReport                       []*UsageReportPFCPSessionModificationResponse `tlv:"78"`
	FailedRuleID                      *pfcpType.FailedRuleID                        `tlv:"114"`
	AdditionalUsageReportsInformation *pfcpType.AdditionalUsageReportsInformation   `tlv:"126"`
	CreatedUpdatedTrafficEndpoint     *CreatedTrafficEndpoint                       `tlv:"128"`
}

type PFCPSessionReportRequest

type PFCPSessionReportRequest struct {
	ReportType                        *pfcpType.ReportType                        `tlv:"39"`
	DownlinkDataReport                *DownlinkDataReport                         `tlv:"83"`
	UsageReport                       []*UsageReportPFCPSessionReportRequest      `tlv:"80"`
	ErrorIndicationReport             *ErrorIndicationReport                      `tlv:"99"`
	LoadControlInformation            *LoadControlInformation                     `tlv:"51"`
	OverloadControlInformation        *OverloadControlInformation                 `tlv:"54"`
	AdditionalUsageReportsInformation *pfcpType.AdditionalUsageReportsInformation `tlv:"126"`
}

type PFCPSessionReportResponse

type PFCPSessionReportResponse struct {
	Cause        *pfcpType.Cause                              `tlv:"19"`
	OffendingIE  *pfcpType.OffendingIE                        `tlv:"40"`
	UpdateBAR    *pfcpType.UpdateBARPFCPSessionReportResponse `tlv:"12"`
	SxSRRspFlags *pfcpType.PFCPSRRspFlags                     `tlv:"50"`
}

type PFCPSessionSetDeletionRequest

type PFCPSessionSetDeletionRequest struct {
	NodeID     *pfcpType.NodeID `tlv:"60"`
	SGWCFQCSID *pfcpType.FQCSID `tlv:"65"`
	PGWCFQCSID *pfcpType.FQCSID `tlv:"65"`
	SGWUFQCSID *pfcpType.FQCSID `tlv:"65"`
	PGWUFQCSID *pfcpType.FQCSID `tlv:"65"`
	TWANFQCSID *pfcpType.FQCSID `tlv:"65"`
	EPDGFQCSID *pfcpType.FQCSID `tlv:"65"`
	MMEFQCSID  *pfcpType.FQCSID `tlv:"65"`
}

type PFCPSessionSetDeletionResponse

type PFCPSessionSetDeletionResponse struct {
	NodeID      *pfcpType.NodeID      `tlv:"60"`
	Cause       *pfcpType.Cause       `tlv:"19"`
	OffendingIE *pfcpType.OffendingIE `tlv:"40"`
}

type PFD

type PFD struct {
	PFDContents []pfcpType.PFDContents `tlv:"61"`
}

type QueryURR

type QueryURR struct {
	URRID *pfcpType.URRID `tlv:"81"`
}

type ReceiveEvent added in v1.0.4

type ReceiveEvent struct {
	Type       ReceiveEventType
	RemoteAddr *net.UDPAddr
	RcvMsg     *Message
}

type ReceiveEventType added in v1.0.4

type ReceiveEventType uint8
const (
	ReceiveEventTypeResendRequest ReceiveEventType = iota
	ReceiveEventTypeValidResponse
)

type RemoveBAR

type RemoveBAR struct {
	BARID *pfcpType.BARID `tlv:"88"`
}

type RemoveFAR

type RemoveFAR struct {
	FARID *pfcpType.FARID `tlv:"108"`
}

type RemovePDR

type RemovePDR struct {
	PDRID *pfcpType.PacketDetectionRuleID `tlv:"56"`
}

type RemoveQER

type RemoveQER struct {
	QERID *pfcpType.QERID `tlv:"109"`
}

type RemoveTrafficEndpoint

type RemoveTrafficEndpoint struct {
	TrafficEndpointID *pfcpType.TrafficEndpointID `tlv:"131"`
}

type RemoveURR

type RemoveURR struct {
	URRID *pfcpType.URRID `tlv:"81"`
}

type Transaction

type Transaction struct {
	SendMsg        []byte
	SequenceNumber uint32
	MessageType    MessageType
	TxType         TransactionType
	EventChannel   chan ReceiveEvent
	Conn           *net.UDPConn
	DestAddr       *net.UDPAddr
	ConsumerAddr   string
}

Transaction - represent the transaction state of pfcp message

func NewTransaction

func NewTransaction(pfcpMSG *Message, binaryMSG []byte, Conn *net.UDPConn, DestAddr *net.UDPAddr) (tx *Transaction)

NewTransaction - create pfcp transaction object

func (*Transaction) StartSendingRequest added in v1.0.4

func (tx *Transaction) StartSendingRequest() (*ReceiveEvent, error)

func (*Transaction) StartSendingResponse added in v1.0.4

func (tx *Transaction) StartSendingResponse() error

type TransactionType

type TransactionType uint8
const (
	SendingRequest TransactionType = iota
	SendingResponse
)

type TxTable

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

func (*TxTable) Delete

func (t *TxTable) Delete(sequenceNumber uint32)

func (*TxTable) Load

func (t *TxTable) Load(sequenceNumber uint32) (*Transaction, bool)

func (*TxTable) LoadOrStore added in v1.0.5

func (t *TxTable) LoadOrStore(sequenceNumber uint32, storeTx *Transaction) (*Transaction, bool)

func (*TxTable) Store

func (t *TxTable) Store(sequenceNumber uint32, tx *Transaction)

type UpdateBARIEInPFCPSessionReportResponse

type UpdateBARIEInPFCPSessionReportResponse struct {
	BARID                           *pfcpType.BARID                           `tlv:"88"`
	DownlinkDataNotificationDelay   *pfcpType.DownlinkDataNotificationDelay   `tlv:"46"`
	DLBufferingDuration             *pfcpType.DLBufferingDuration             `tlv:"47"`
	DLBufferingSuggestedPacketCount *pfcpType.DLBufferingSuggestedPacketCount `tlv:"48"`
	SuggestedBufferingPacketsCount  *pfcpType.SuggestedBufferingPacketsCount  `tlv:"140"`
}

type UpdateBARPFCPSessionModificationRequest

type UpdateBARPFCPSessionModificationRequest struct {
	BARID                          *pfcpType.BARID                          `tlv:"88"`
	DownlinkDataNotificationDelay  *pfcpType.DownlinkDataNotificationDelay  `tlv:"46"`
	SuggestedBufferingPacketsCount *pfcpType.SuggestedBufferingPacketsCount `tlv:"140"`
}

type UpdateDuplicatingParametersIEInFAR

type UpdateDuplicatingParametersIEInFAR struct {
	DestinationInterface  *pfcpType.DestinationInterface  `tlv:"42"`
	OuterHeaderCreation   *pfcpType.OuterHeaderCreation   `tlv:"84"`
	TransportLevelMarking *pfcpType.TransportLevelMarking `tlv:"30"`
	ForwardingPolicy      *pfcpType.ForwardingPolicy      `tlv:"41"`
}

type UpdateFAR

type UpdateFAR struct {
	FARID                       *pfcpType.FARID                       `tlv:"108"`
	ApplyAction                 *pfcpType.ApplyAction                 `tlv:"44"`
	UpdateForwardingParameters  *UpdateForwardingParametersIEInFAR    `tlv:"11"`
	UpdateDuplicatingParameters *pfcpType.UpdateDuplicatingParameters `tlv:"105"`
	BARID                       *pfcpType.BARID                       `tlv:"88"`
}

type UpdateForwardingParametersIEInFAR

type UpdateForwardingParametersIEInFAR struct {
	DestinationInterface    *pfcpType.DestinationInterface  `tlv:"42"`
	NetworkInstance         *pfcpType.NetworkInstance       `tlv:"22"`
	RedirectInformation     *pfcpType.RedirectInformation   `tlv:"38"`
	OuterHeaderCreation     *pfcpType.OuterHeaderCreation   `tlv:"84"`
	TransportLevelMarking   *pfcpType.TransportLevelMarking `tlv:"30"`
	ForwardingPolicy        *pfcpType.ForwardingPolicy      `tlv:"41"`
	HeaderEnrichment        *pfcpType.HeaderEnrichment      `tlv:"98"`
	PFCPSMReqFlags          *pfcpType.PFCPSMReqFlags        `tlv:"49"`
	LinkedTrafficEndpointID *pfcpType.TrafficEndpointID     `tlv:"131"`
}

type UpdatePDR

type UpdatePDR struct {
	PDRID                     *pfcpType.PacketDetectionRuleID     `tlv:"56"`
	OuterHeaderRemoval        *pfcpType.OuterHeaderRemoval        `tlv:"95"`
	Precedence                *pfcpType.Precedence                `tlv:"29"`
	PDI                       *PDI                                `tlv:"2"`
	FARID                     *pfcpType.FARID                     `tlv:"108"`
	URRID                     []*pfcpType.URRID                   `tlv:"81"`
	QERID                     []*pfcpType.QERID                   `tlv:"109"`
	ActivatePredefinedRules   *pfcpType.ActivatePredefinedRules   `tlv:"106"`
	DeactivatePredefinedRules *pfcpType.DeactivatePredefinedRules `tlv:"107"`
}

type UpdateQER

type UpdateQER struct {
	QERID              *pfcpType.QERID              `tlv:"109"`
	QERCorrelationID   *pfcpType.QERCorrelationID   `tlv:"28"`
	GateStatus         *pfcpType.GateStatus         `tlv:"25"`
	MaximumBitrate     *pfcpType.MBR                `tlv:"26"`
	GuaranteedBitrate  *pfcpType.GBR                `tlv:"27"`
	PacketRate         *pfcpType.PacketRate         `tlv:"94"`
	DLFlowLevelMarking *pfcpType.DLFlowLevelMarking `tlv:"97"`
	QoSFlowIdentifier  *pfcpType.QFI                `tlv:"124"`
	ReflectiveQoS      *pfcpType.RQI                `tlv:"123"`
}

type UpdateTrafficEndpoint

type UpdateTrafficEndpoint struct {
	TrafficEndpointID *pfcpType.TrafficEndpointID `tlv:"131"`
	LocalFTEID        *pfcpType.FTEID             `tlv:"21"`
	NetworkInstance   *pfcpType.NetworkInstance   `tlv:"22"`
	UEIPAddress       *pfcpType.UEIPAddress       `tlv:"93"`
	FramedRoute       *pfcpType.FramedRoute       `tlv:"153"`
	FramedRouting     *pfcpType.FramedRouting     `tlv:"154"`
	FramedIPv6Route   *pfcpType.FramedIPv6Route   `tlv:"155"`
}

type UpdateURR

type UpdateURR struct {
	URRID                     *pfcpType.URRID                     `tlv:"81"`
	MeasurementMethod         *pfcpType.MeasurementMethod         `tlv:"62"`
	ReportingTriggers         *pfcpType.ReportingTriggers         `tlv:"37"`
	MeasurementPeriod         *pfcpType.MeasurementPeriod         `tlv:"64"`
	VolumeThreshold           *pfcpType.VolumeThreshold           `tlv:"31"`
	VolumeQuota               *pfcpType.VolumeQuota               `tlv:"73"`
	TimeThreshold             *pfcpType.TimeThreshold             `tlv:"32"`
	TimeQuota                 *pfcpType.TimeQuota                 `tlv:"74"`
	QuotaHoldingTime          *pfcpType.QuotaHoldingTime          `tlv:"71"`
	DroppedDLTrafficThreshold *pfcpType.DroppedDLTrafficThreshold `tlv:"72"`
	MonitoringTime            *pfcpType.MonitoringTime            `tlv:"33"`
	EventInformation          *EventInformation                   `tlv:"148"`
	SubsequentVolumeThreshold *pfcpType.SubsequentVolumeThreshold `tlv:"34"`
	SubsequentTimeThreshold   *pfcpType.SubsequentTimeThreshold   `tlv:"35"`
	SubsequentVolumeQuota     *pfcpType.SubsequentVolumeQuota     `tlv:"121"`
	SubsequentTimeQuota       *pfcpType.SubsequentTimeQuota       `tlv:"122"`
	InactivityDetectionTime   *pfcpType.InactivityDetectionTime   `tlv:"36"`
	LinkedURRID               *pfcpType.LinkedURRID               `tlv:"82"`
	MeasurementInformation    *pfcpType.MeasurementInformation    `tlv:"100"`
	TimeQuotaMechanism        *pfcpType.TimeQuotaMechanism        `tlv:"115"`
	AggregatedURRs            *AggregatedURRs                     `tlv:"118"`
	FARIDForQuotaAction       *pfcpType.FARID                     `tlv:"108"`
	EthernetInactivityTimer   *pfcpType.EthernetInactivityTimer   `tlv:"146"`
	AdditionalMonitoringTime  *AdditionalMonitoringTime           `tlv:"147"`
	QuotaValidityTime         *pfcpType.QuotaValidityTime         `tlv:"181"`
}

type UsageReportPFCPSessionDeletionResponse

type UsageReportPFCPSessionDeletionResponse struct {
	URRID                      *pfcpType.URRID               `tlv:"81"`
	URSEQN                     *pfcpType.URSEQN              `tlv:"104"`
	UsageReportTrigger         *pfcpType.UsageReportTrigger  `tlv:"63"`
	StartTime                  *pfcpType.StartTime           `tlv:"75"`
	EndTime                    *pfcpType.EndTime             `tlv:"76"`
	VolumeMeasurement          *pfcpType.VolumeMeasurement   `tlv:"66"`
	DurationMeasurement        *pfcpType.DurationMeasurement `tlv:"67"`
	TimeOfFirstPacket          *pfcpType.TimeOfFirstPacket   `tlv:"69"`
	TimeOfLastPacket           *pfcpType.TimeOfLastPacket    `tlv:"70"`
	UsageInformation           *pfcpType.UsageInformation    `tlv:"90"`
	EthernetTrafficInformation *EthernetTrafficInformation   `tlv:"143"`
}

type UsageReportPFCPSessionModificationResponse

type UsageReportPFCPSessionModificationResponse struct {
	URRID                      *pfcpType.URRID               `tlv:"81"`
	URSEQN                     *pfcpType.URSEQN              `tlv:"104"`
	UsageReportTrigger         *pfcpType.UsageReportTrigger  `tlv:"63"`
	StartTime                  *pfcpType.StartTime           `tlv:"75"`
	EndTime                    *pfcpType.EndTime             `tlv:"76"`
	VolumeMeasurement          *pfcpType.VolumeMeasurement   `tlv:"66"`
	DurationMeasurement        *pfcpType.DurationMeasurement `tlv:"67"`
	TimeOfFirstPacket          *pfcpType.TimeOfFirstPacket   `tlv:"69"`
	TimeOfLastPacket           *pfcpType.TimeOfLastPacket    `tlv:"70"`
	UsageInformation           *pfcpType.UsageInformation    `tlv:"90"`
	QueryURRReference          *pfcpType.QueryURRReference   `tlv:"125"`
	EthernetTrafficInformation *EthernetTrafficInformation   `tlv:"143"`
}

type UsageReportPFCPSessionReportRequest

type UsageReportPFCPSessionReportRequest struct {
	URRID                           *pfcpType.URRID                  `tlv:"81"`
	URSEQN                          *pfcpType.URSEQN                 `tlv:"104"`
	UsageReportTrigger              *pfcpType.UsageReportTrigger     `tlv:"63"`
	StartTime                       *pfcpType.StartTime              `tlv:"75"`
	EndTime                         *pfcpType.EndTime                `tlv:"76"`
	VolumeMeasurement               *pfcpType.VolumeMeasurement      `tlv:"66"`
	DurationMeasurement             *pfcpType.DurationMeasurement    `tlv:"67"`
	ApplicationDetectionInformation *ApplicationDetectionInformation `tlv:"68"`
	UEIPAddress                     *pfcpType.UEIPAddress            `tlv:"93"`
	NetworkInstance                 *pfcpType.NetworkInstance        `tlv:"22"`
	TimeOfFirstPacket               *pfcpType.TimeOfFirstPacket      `tlv:"69"`
	TimeOfLastPacket                *pfcpType.TimeOfLastPacket       `tlv:"70"`
	UsageInformation                *pfcpType.UsageInformation       `tlv:"90"`
	QueryURRReference               *pfcpType.QueryURRReference      `tlv:"125"`
	EventReporting                  *EventReporting                  `tlv:"149"`
	EthernetTrafficInformation      *EthernetTrafficInformation      `tlv:"143"`
}

type UserPlanePathFailure

type UserPlanePathFailure struct {
	RemoteGTPUPeer *pfcpType.RemoteGTPUPeer `tlv:"103"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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