Versions in this module Expand all Collapse all v1 v1.2.5 Jul 26, 2024 Changes in this version + const DefaultNonGBR5QI + const DefaultPrecedence + const MeasureInfoMBQE + const MeasureInfoMNOP + const MeasurePeriodReport + const MesureMethodTime + const MesureMethodVol + var TeidGenerator *idgenerator.IDGenerator + func AllocateLocalSEID() uint64 + func AllocateUPFID() + func BuildGSMPDUSessionEstablishmentAccept(smContext *SMContext) ([]byte, error) + func BuildGSMPDUSessionEstablishmentReject(smContext *SMContext, cause uint8) ([]byte, error) + func BuildGSMPDUSessionModificationCommand(smContext *SMContext) ([]byte, error) + func BuildGSMPDUSessionModificationReject(smContext *SMContext) ([]byte, error) + func BuildGSMPDUSessionReleaseCommand(smContext *SMContext, cause uint8, isTriggeredByUE bool) ([]byte, error) + func BuildGSMPDUSessionReleaseReject(smContext *SMContext) ([]byte, error) + func BuildHandoverCommandTransfer(ctx *SMContext) ([]byte, error) + func BuildNASPacketFiltersFromFlowInformation(pfInfo *models.FlowInformation, smCtx *SMContext) ([]nasType.PacketFilter, error) + func BuildPDUSessionResourceModifyRequestTransfer(ctx *SMContext) ([]byte, error) + func BuildPDUSessionResourceReleaseCommandTransfer(ctx *SMContext) (buf []byte, err error) + func BuildPDUSessionResourceSetupRequestTransfer(ctx *SMContext) ([]byte, error) + func BuildPathSwitchRequestAcknowledgeTransfer(ctx *SMContext) ([]byte, error) + func BuildPathSwitchRequestUnsuccessfulTransfer(causePresent int, causeValue aper.Enumerated) (buf []byte, err error) + func CheckUEHasPreConfig(supi string) (exist bool) + func GenerateChargingID() int32 + func GenerateTEID() (uint32, error) + func GetSMContextCount() uint64 + func GetULCLGroupNameFromSUPI(supi string) string + func GetUpfIdFromUrrIdKey(urrIdKey string) string + func HandleHandoverRequestAcknowledgeTransfer(b []byte, ctx *SMContext) error + func HandleHandoverRequiredTransfer(b []byte, ctx *SMContext) error + func HandlePDUSessionResourceModifyResponseTransfer(b []byte, ctx *SMContext) error + func HandlePDUSessionResourceSetupResponseTransfer(b []byte, ctx *SMContext) error + func HandlePDUSessionResourceSetupUnsuccessfulTransfer(b []byte, ctx *SMContext) error + func HandlePathSwitchRequestSetupFailedTransfer(b []byte, ctx *SMContext) error + func HandlePathSwitchRequestTransfer(b []byte, ctx *SMContext) error + func Init() + func InitSMFUERouting(routingConfig *factory.RoutingConfig) + func InitSmfContext(config *factory.Config) + func MeasureInformation(isMeasurePkt, isMeasureBeforeQos bool) pfcpType.MeasurementInformation + func ReleaseTEID(teid uint32) + func RemoveSMContext(ref string) + func RemoveUPFNodeByNodeID(nodeID pfcpType.NodeID) bool + func ResolveIP(host string) net.IP + func ResolveRef(id string, pduSessID int32) (string, error) + func SNssaiSmfInfo() *[]models.SnssaiSmfInfoItem + func SetupSMFContext(config *factory.Config) error + type AddingPSAState int + const ActivatingDataPath + const EstablishingNewPSA + const EstablishingULCL + const Finished + const UpdatingPSA2DownLink + const UpdatingRANAndIUPFUpLink + type BAR struct + BARID uint8 + DownlinkDataNotificationDelay pfcpType.DownlinkDataNotificationDelay + State RuleState + SuggestedBufferingPacketsCount pfcpType.SuggestedBufferingPacketsCount + type BPManager struct + ActivatedPaths []*DataPath + ActivatingPath *DataPath + AddingPSAState AddingPSAState + BPStatus BPStatus + ULCL *UPF + UpdatedBranchingPoint map[*UPF]int + func NewBPManager(supi string) (bpManager *BPManager) + func (bpMGR *BPManager) FindULCL(smContext *SMContext) error + func (bpMGR *BPManager) SelectPSA2(smContext *SMContext) + type BPStatus int + const AddPSASuccess + const AddingPSA + const InitializedFail + const InitializedSuccess + const UnInitialized + type ChargingInfo struct + ChargingLevel ChargingLevel + ChargingMethod models.QuotaManagementIndicator + EventLimitExpiryTimer *Timer + RatingGroup int32 + UpfId string + VolumeLimitExpiryTimer *Timer + type ChargingLevel uint8 + const FlowCharging + const PduSessionCharging + type DLForwardingType int + const DirectForwarding + const IndirectForwarding + const NoForwarding + type DNS struct + IPv4Addr net.IP + IPv6Addr net.IP + type DataPath struct + Activated bool + Destination Destination + FirstDPNode *DataPathNode + GBRFlow bool + HasBranchingPoint bool + IsDefaultPath bool + PathID int64 + func GenerateDataPath(upPath UPPath) *DataPath + func NewDataPath() *DataPath + func (dataPath *DataPath) ActivateTunnelAndPDR(smContext *SMContext, precedence uint32) + func (dataPath *DataPath) CopyFirstDPNode() *DataPathNode + func (dataPath *DataPath) DeactivateTunnelAndPDR(smContext *SMContext) + func (dataPath *DataPath) String() string + func (p *DataPath) AddChargingRules(smContext *SMContext, chgLevel ChargingLevel, chgData *models.ChargingData) + func (p *DataPath) AddForwardingParameters(fwdPolicyID string, teid uint32) + func (p *DataPath) AddQoS(smContext *SMContext, qfi uint8, qos *models.QosData) + func (p *DataPath) GetChargingUrr(smContext *SMContext) []*URR + func (p *DataPath) RemovePDR() + func (p *DataPath) UpdateFlowDescription(ulFlowDesc, dlFlowDesc string) + type DataPathNode struct + DownLinkTunnel *GTPTunnel + IsBranchingPoint bool + UPF *UPF + UpLinkTunnel *GTPTunnel + func NewDataPathNode() *DataPathNode + func NewUEDataPathNode(name string) (node *DataPathNode, err error) + func (node *DataPathNode) ActivateDownLinkTunnel(smContext *SMContext) error + func (node *DataPathNode) ActivateUpLinkTunnel(smContext *SMContext) error + func (node *DataPathNode) AddNext(next *DataPathNode) + func (node *DataPathNode) AddPrev(prev *DataPathNode) + func (node *DataPathNode) DeactivateDownLinkTunnel(smContext *SMContext) + func (node *DataPathNode) DeactivateUpLinkTunnel(smContext *SMContext) + func (node *DataPathNode) GetNodeIP() (ip string) + func (node *DataPathNode) GetUPFID() (id string, err error) + func (node *DataPathNode) GetUpLinkFAR() (far *FAR) + func (node *DataPathNode) GetUpLinkPDR() (pdr *PDR) + func (node *DataPathNode) IsANUPF() bool + func (node *DataPathNode) IsAnchorUPF() bool + func (node *DataPathNode) Next() *DataPathNode + func (node *DataPathNode) Prev() *DataPathNode + type DataPathPool map[int64]*DataPath + func NewDataPathPool() DataPathPool + func (dataPathPool DataPathPool) GetDefaultPath() *DataPath + func (dataPathPool DataPathPool) ResetDefaultPath() error + type DefaultPathPool map[string]*DataPath + type Destination struct + DestinationIP string + DestinationPort string + Url string + type DnnUPFInfoItem struct + DnaiList []string + Dnn string + PduSessionTypes []models.PduSessionType + StaticIPPools []*UeIPPool + UeIPPools []*UeIPPool + func (d *DnnUPFInfoItem) ContainsDNAI(targetDnai string) bool + func (d *DnnUPFInfoItem) ContainsIPPool(ip net.IP) bool + type EventExposureNotification struct + Uri string + type FAR struct + ApplyAction pfcpType.ApplyAction + BAR *BAR + FARID uint32 + ForwardingParameters *ForwardingParameters + State RuleState + type FSEID struct + IP net.IP + SEID uint64 + type ForwardingParameters struct + DestinationInterface pfcpType.DestinationInterface + ForwardingPolicyID string + NetworkInstance *pfcpType.NetworkInstance + OuterHeaderCreation *pfcpType.OuterHeaderCreation + SendEndMarker bool + type GTPTunnel struct + DestEndPoint *DataPathNode + PDR *PDR + SrcEndPoint *DataPathNode + TEID uint32 + type NFContext interface + AuthorizationCheck func(token string, serviceName models.ServiceName) error + type NFProfile struct + NFServiceVersion *[]models.NfServiceVersion + NFServices *[]models.NfService + PLMNList *[]models.PlmnId + SMFInfo *models.SmfInfo + type NotifCallback func(uri string, notification *models.NsmfEventExposureNotification) + type PCCRule struct + Datapath *DataPath + QFI uint8 + func NewPCCRule(mPcc *models.PccRule) *PCCRule + func (r *PCCRule) AddDataPathForwardingParameters(c *SMContext, tgtRoute *models.RouteToLocation) + func (r *PCCRule) BuildNasQoSRule(smCtx *SMContext, opCode nasType.QoSRuleOperationCode) (*nasType.QoSRule, error) + func (r *PCCRule) FlowDescription() string + func (r *PCCRule) IdentifyChargingLevel() (ChargingLevel, error) + func (r *PCCRule) RefChgDataID() string + func (r *PCCRule) RefQosDataID() string + func (r *PCCRule) RefTcDataID() string + func (r *PCCRule) SetQFI(qfi uint8) + func (r *PCCRule) UpdateDataPathFlowDescription(dlFlowDesc string) error + type PCSCF struct + IPv4Addr net.IP + type PDI struct + ApplicationID string + LocalFTeid *pfcpType.FTEID + NetworkInstance *pfcpType.NetworkInstance + SDFFilter *pfcpType.SDFFilter + SourceInterface pfcpType.SourceInterface + UEIPAddress *pfcpType.UEIPAddress + type PDR struct + FAR *FAR + OuterHeaderRemoval *pfcpType.OuterHeaderRemoval + PDI PDI + PDRID uint16 + Precedence uint32 + QER []*QER + State RuleState + URR []*URR + func (pdr *PDR) AppendURRs(urrs []*URR) + type PFCPSessionContext struct + LocalSEID uint64 + NodeID pfcpType.NodeID + PDRs map[uint16]*PDR + RemoteSEID uint64 + func (pfcpSessionContext *PFCPSessionContext) String() string + type PFCPSessionResponseStatus int + const SessionEstablishFailed + const SessionEstablishSuccess + const SessionReleaseFailed + const SessionReleaseSuccess + const SessionUpdateFailed + const SessionUpdateSuccess + func (pfcpSessionResponseStatus PFCPSessionResponseStatus) String() string + type ProtocolConfigurationOptions struct + DNSIPv4Request bool + DNSIPv6Request bool + IPv4LinkMTURequest bool + PCSCFIPv4Request bool + type QER struct + GBR *pfcpType.GBR + GateStatus *pfcpType.GateStatus + MBR *pfcpType.MBR + QERID uint32 + QFI pfcpType.QFI + State RuleState + type QoSFlow struct + QFI uint8 + QoSProfile *models.QosData + State QoSFlowState + func NewQoSFlow(qfi uint8, qosModel *models.QosData) *QoSFlow + func (q *QoSFlow) BuildNasQoSDesc(opCode nasType.QoSFlowOperationCode) (nasType.QoSFlowDesc, error) + func (q *QoSFlow) BuildNgapQosFlowAddOrModifyRequestItem() (ngapType.QosFlowAddOrModifyRequestItem, error) + func (q *QoSFlow) BuildNgapQosFlowSetupRequestItem() (ngapType.QosFlowSetupRequestItem, error) + func (q *QoSFlow) Get5QI() uint8 + func (q *QoSFlow) GetQFI() uint8 + func (q *QoSFlow) GetQoSProfile() *models.QosData + func (q *QoSFlow) IsGBRFlow() bool + type QoSFlowState int + const QoSFlowSet + const QoSFlowToBeModify + const QoSFlowUnset + type RequestType uint8 + const CHARGING_INIT + const CHARGING_RELEASE + const CHARGING_UPDATE + type RuleState uint8 + const RULE_CREATE + const RULE_INITIAL + const RULE_QUERY + const RULE_REMOVE + const RULE_UPDATE + type SMContext struct + AMBRQerMap map[uuid.UUID]uint32 + AMFProfile models.NfProfile + AdditonalQosFlows map[uint8]*QoSFlow + BPManager *BPManager + ChargingData map[string]*models.ChargingData + ChargingDataRef string + ChargingID int32 + ChargingInfo map[uint32]*ChargingInfo + CommunicationClientApiPrefix string + DLDirectForwardingTunnel *ngapType.UPTransportLayerInformation + DLForwardingType DLForwardingType + DNNInfo *SnssaiSmfDnnInfo + DataPathToBeRemoved map[int64]*DataPath + DnnConfiguration models.DnnConfiguration + EstAcceptCause5gSMValue uint8 + HoState models.HoState + Identifier string + IndirectForwardingTunnel *DataPath + LocalDLTeid uint32 + LocalSEID uint64 + LocalULTeid uint32 + Log *logrus.Entry + MaximumDataRatePerUEForUserPlaneIntegrityProtectionForDownLink models.MaxIntegrityProtectedDataRate + MaximumDataRatePerUEForUserPlaneIntegrityProtectionForUpLink models.MaxIntegrityProtectedDataRate + PCCRuleIDToQoSRuleID map[string]uint8 + PCCRules map[string]*PCCRule + PDUAddress net.IP + PDUSessionID int32 + PDUSessionRelease_DUE_TO_DUP_PDU_ID bool + PFCPContext map[string]*PFCPSessionContext + PacketFilterIDGenerator *idgenerator.IDGenerator + PacketFilterIDToNASPFID map[string]uint8 + Pei string + ProtocolConfigurationOptions *ProtocolConfigurationOptions + Pti uint8 + QFIGenerator *idgenerator.IDGenerator + QerUpfMap map[string]uint32 + QoSRuleIDGenerator *idgenerator.IDGenerator + QosDatas map[string]*models.QosData + Ref string + RemoteSEID uint64 + RequestedUnit int32 + SMLock sync.Mutex + SMPolicyID string + SelectedCHFProfile models.NfProfile + SelectedPCFProfile models.NfProfile + SelectedPDUSessionType uint8 + SelectedSessionRuleID string + SelectedUPF *UPNode + SelectionParam *UPFSelectionParams + SessionRules map[string]*SessionRule + SmStatusNotifyUri string + T3591 *Timer + T3592 *Timer + TrafficControlDatas map[string]*TrafficControlData + Tunnel *UPTunnel + UeCmRegistered bool + UnauthenticatedSupi bool + UpCnxState models.UpCnxState + UpPathChgEarlyNotification map[string]*EventExposureNotification + UpPathChgLateNotification map[string]*EventExposureNotification + UpSecurity *models.UpSecurity + UpSecurityFromPathSwitchRequestSameAsLocalStored bool + UrrIDGenerator *idgenerator.IDGenerator + UrrIdMap map[UrrType]uint32 + UrrReportThreshold uint64 + UrrReportTime time.Duration + UrrReports []UsageReport + UrrUpfMap map[string]*URR + UseStaticIP bool + func GetSMContextById(id string, pduSessID int32) *SMContext + func GetSMContextByRef(ref string) *SMContext + func GetSMContextBySEID(seid uint64) *SMContext + func NewSMContext(id string, pduSessID int32) *SMContext + func (c *SMContext) AddQosFlow(qfi uint8, qos *models.QosData) + func (c *SMContext) AllocUeIP() error + func (c *SMContext) ApplyPccRules(decision *models.SmPolicyDecision) error + func (c *SMContext) ApplySessionRules(decision *models.SmPolicyDecision) error + func (c *SMContext) BuildUpPathChgEventExposureNotification(chgEvent *models.UpPathChgEvent, srcRoute, tgtRoute *models.RouteToLocation) + func (c *SMContext) CreatePccRuleDataPath(pccRule *PCCRule, tcData *TrafficControlData, qosData *models.QosData, ...) error + func (c *SMContext) PostRemoveDataPath() + func (c *SMContext) PreRemoveDataPath(dp *DataPath) + func (c *SMContext) RemoveQosFlow(qfi uint8) + func (c *SMContext) SelectDefaultDataPath() error + func (c *SMContext) SelectedSessionRule() *SessionRule + func (c *SMContext) SendUpPathChgNotification(chgType string, notifCb NotifCallback) + func (smContext *SMContext) AllocateLocalSEIDForDataPath(dataPath *DataPath) + func (smContext *SMContext) AllocateLocalSEIDForUPPath(path UPPath) + func (smContext *SMContext) AssignQFI(qosId string) uint8 + func (smContext *SMContext) BuildCreatedData() *models.SmContextCreatedData + func (smContext *SMContext) CheckState(state SMContextState) bool + func (smContext *SMContext) GenerateUrrId() + func (smContext *SMContext) GetNodeIDByLocalSEID(seid uint64) pfcpType.NodeID + func (smContext *SMContext) HandleReports(usageReportRequest []*pfcp.UsageReportPFCPSessionReportRequest, ...) + func (smContext *SMContext) IsAllowedPDUSessionType(requestedPDUSessionType uint8) error + func (smContext *SMContext) PDUAddressToNAS() ([12]byte, uint8) + func (smContext *SMContext) PutPDRtoPFCPSession(nodeID pfcpType.NodeID, pdr *PDR) error + func (smContext *SMContext) RemovePDRfromPFCPSession(nodeID pfcpType.NodeID, pdr *PDR) + func (smContext *SMContext) RemoveQFI(qosId string) + func (smContext *SMContext) SetState(state SMContextState) + func (smContext *SMContext) State() SMContextState + func (smContext *SMContext) StopT3591() + func (smContext *SMContext) StopT3592() + type SMContextState uint32 + const Active + const ActivePending + const InActive + const InActivePending + const ModificationPending + const PFCPModification + func (smContextState SMContextState) String() string + type SMFContext struct + AssocFailAlertInterval time.Duration + AssocFailRetryInterval time.Duration + BindingIPv4 string + CPNodeID pfcpType.NodeID + ChargingIDGenerator *idgenerator.IDGenerator + Ctx context.Context + ExternalAddr string + Key string + KeyLog string + ListenAddr string + LocalSEIDCount uint64 + Locality string + Name string + NfInstanceID string + NfProfile NFProfile + NrfCertPem string + NrfUri string + OAuth2Required bool + PEM string + PFCPCancelFunc context.CancelFunc + PfcpHeartbeatInterval time.Duration + RegisterIPv4 string + SBIPort int + SnssaiInfos []*SnssaiSmfInfo + SupportedPDUSessionType string + UDMProfile models.NfProfile + UEDefaultPathPool map[string]*UEDefaultPaths + UEPreConfigPathPool map[string]*UEPreConfigPaths + ULCLGroups map[string][]string + ULCLSupport bool + URIScheme models.UriScheme + UserPlaneInformation *UserPlaneInformation + func GetSelf() *SMFContext + func (c *SMFContext) AuthorizationCheck(token string, serviceName models.ServiceName) error + func (c *SMFContext) GetTokenCtx(serviceName models.ServiceName, targetNF models.NfType) (context.Context, *models.ProblemDetails, error) + func (c *SMFContext) SetupNFProfile(nfProfileconfig *factory.Config) + func (s *SMFContext) ExternalIP() net.IP + func (s *SMFContext) ListenIP() net.IP + type SNssai struct + Sd string + Sst int32 + func (s *SNssai) Equal(target *SNssai) bool + func (s *SNssai) EqualModelsSnssai(target *models.Snssai) bool + type SessionRule struct + DefQosQFI uint8 + func NewSessionRule(model *models.SessionRule) *SessionRule + type SnssaiSmfDnnInfo struct + DNS DNS + PCSCF PCSCF + func RetrieveDnnInformation(snssai *models.Snssai, dnn string) *SnssaiSmfDnnInfo + type SnssaiSmfInfo struct + DnnInfos map[string]*SnssaiSmfDnnInfo + Snssai SNssai + type SnssaiUPFInfo struct + DnnList []*DnnUPFInfoItem + SNssai *SNssai + type Timer struct + func NewTimer(d time.Duration, maxRetryTimes int, expiredFunc func(expireTimes int32), ...) *Timer + func (t *Timer) ExpireTimes() int32 + func (t *Timer) MaxRetryTimes() int32 + func (t *Timer) Stop() + type TrafficControlData struct + func NewTrafficControlData(model *models.TrafficControlData) *TrafficControlData + type UEDefaultPaths struct + AnchorUPFs []string + DefaultPathPool DefaultPathPool + func GetUEDefaultPathPool(groupName string) *UEDefaultPaths + func NewUEDefaultPaths(upi *UserPlaneInformation, topology []factory.UPLink) (*UEDefaultPaths, error) + func (dfp *UEDefaultPaths) GetDefaultPath(upfName string) *DataPath + func (dfp *UEDefaultPaths) SelectUPFAndAllocUEIPForULCL(upi *UserPlaneInformation, selection *UPFSelectionParams) (string, net.IP, bool) + type UEPreConfigPaths struct + DataPathPool DataPathPool + PathIDGenerator *idgenerator.IDGenerator + func GetUEPreConfigPaths(supi string, upfName string) *UEPreConfigPaths + func NewUEPreConfigPaths(paths []factory.SpecificPath) (*UEPreConfigPaths, error) + type UPF struct + Addr string + CancelFunc context.CancelFunc + Ctx context.Context + N3Interfaces []*UPFInterfaceInfo + N9Interfaces []*UPFInterfaceInfo + NodeID pfcpType.NodeID + RecoveryTimeStamp time.Time + SNssaiInfos []*SnssaiUPFInfo + UPFStatus UPFStatus + UPIPInfo pfcpType.UserPlaneIPResourceInformation + func GetUpfById(uuid string) *UPF + func NewUPF(nodeID *pfcpType.NodeID, ifaces []*factory.InterfaceUpfInfoItem) (upf *UPF) + func RetrieveUPFNodeByNodeID(nodeID pfcpType.NodeID) *UPF + func SelectUPFByDnn(dnn string) *UPF + func (upf *UPF) AddBAR() (*BAR, error) + func (upf *UPF) AddFAR() (*FAR, error) + func (upf *UPF) AddPDR() (*PDR, error) + func (upf *UPF) AddQER() (*QER, error) + func (upf *UPF) AddURR(urrId uint32, opts ...UrrOpt) (*URR, error) + func (upf *UPF) GetInterface(interfaceType models.UpInterfaceType, dnn string) *UPFInterfaceInfo + func (upf *UPF) GetQERById(qerId uint32) *QER + func (upf *UPF) GetUPFID() string + func (upf *UPF) GetUPFIP() string + func (upf *UPF) GetUUID() uuid.UUID + func (upf *UPF) PFCPAddr() *net.UDPAddr + func (upf *UPF) ProcEachSMContext(procFunc func(*SMContext)) + func (upf *UPF) RemoveBAR(bar *BAR) (err error) + func (upf *UPF) RemoveFAR(far *FAR) (err error) + func (upf *UPF) RemovePDR(pdr *PDR) (err error) + func (upf *UPF) RemoveQER(qer *QER) (err error) + func (upf *UPF) UUID() string + type UPFInterfaceInfo struct + EndpointFQDN string + IPv4EndPointAddresses []net.IP + IPv6EndPointAddresses []net.IP + NetworkInstances []string + func NewUPFInterfaceInfo(i *factory.InterfaceUpfInfoItem) *UPFInterfaceInfo + func (i *UPFInterfaceInfo) IP(pduSessType uint8) (net.IP, error) + type UPFSelectionParams struct + Dnai string + Dnn string + PDUAddress net.IP + SNssai *SNssai + func (upfSelectionParams *UPFSelectionParams) String() string + type UPFStatus int + const AssociatedSetUpSuccess + const AssociatedSettingUp + const NotAssociated + type UPNode struct + ANIP net.IP + Dnn string + Links []*UPNode + Name string + NodeID pfcpType.NodeID + Type UPNodeType + UPF *UPF + func (u *UPNode) MatchedSelection(selection *UPFSelectionParams) bool + type UPNodeType string + const UPNODE_AN + const UPNODE_UPF + type UPPath []*UPNode + type UPTunnel struct + ANInformation struct{ ... } + DataPathPool DataPathPool + PathIDGenerator *idgenerator.IDGenerator + func NewUPTunnel() (tunnel *UPTunnel) + func (t *UPTunnel) AddDataPath(dataPath *DataPath) + func (t *UPTunnel) RemoveDataPath(pathID int64) + func (t *UPTunnel) UpdateANInformation(ip net.IP, teid uint32) + type URR struct + MeasureMethod string + MeasurementInformation pfcpType.MeasurementInformation + MeasurementPeriod time.Duration + QuotaValidityTime time.Time + ReportingTrigger pfcpType.ReportingTriggers + State RuleState + URRID uint32 + VolumeQuota uint64 + VolumeThreshold uint64 + type UeIPPool struct + func NewUEIPPool(factoryPool *factory.UEIPPool) *UeIPPool + func (u *UeIPPool) Pool() *pool.LazyReusePool + func (ueIPPool *UeIPPool) Allocate(request net.IP) net.IP + func (ueIPPool *UeIPPool) Exclude(excludePool *UeIPPool) error + func (ueIPPool *UeIPPool) Release(addr net.IP) + type UrrOpt func(urr *URR) + func NewMeasureInformation(isMeasurePkt, isMeasureBeforeQos bool) UrrOpt + func NewMeasurementPeriod(time time.Duration) UrrOpt + func NewVolumeQuota(quota uint64) UrrOpt + func NewVolumeThreshold(threshold uint64) UrrOpt + func SetStartOfSDFTrigger() UrrOpt + type UrrType int + const N3N6_MAQE_URR + const N3N6_MBQE_URR + const N3N9_MAQE_URR + const N3N9_MBQE_URR + const N9N6_MAQE_URR + const N9N6_MBQE_URR + const NOT_FOUND_URR + func (t UrrType) Direct() string + func (t UrrType) IsBeforeQos() bool + func (t UrrType) String() string + type UsageReport struct + DownlinkPktNum uint64 + DownlinkVolume uint64 + ReportTpye models.TriggerType + TotalPktNum uint64 + TotalVolume uint64 + UpfId string + UplinkPktNum uint64 + UplinkVolume uint64 + UrrId uint32 + type UserPlaneInformation struct + AccessNetwork map[string]*UPNode + DefaultUserPlanePath map[string][]*UPNode + DefaultUserPlanePathToUPF map[string]map[string][]*UPNode + Mu sync.RWMutex + UPFIPToName map[string]string + UPFs map[string]*UPNode + UPFsID map[string]string + UPFsIPtoID map[string]string + UPNodes map[string]*UPNode + func GetUserPlaneInformation() *UserPlaneInformation + func NewUserPlaneInformation(upTopology *factory.UserPlaneInformation) *UserPlaneInformation + func (upi *UserPlaneInformation) ExistDefaultPath(dnn string) bool + func (upi *UserPlaneInformation) GenerateDefaultPath(selection *UPFSelectionParams) bool + func (upi *UserPlaneInformation) GenerateDefaultPathToUPF(selection *UPFSelectionParams, destination *UPNode) bool + func (upi *UserPlaneInformation) GetDefaultUserPlanePathByDNN(selection *UPFSelectionParams) (path UPPath) + func (upi *UserPlaneInformation) GetDefaultUserPlanePathByDNNAndUPF(selection *UPFSelectionParams, upf *UPNode) (path UPPath) + func (upi *UserPlaneInformation) GetUPFIDByIP(ip string) string + func (upi *UserPlaneInformation) GetUPFNameByIp(ip string) string + func (upi *UserPlaneInformation) GetUPFNodeByIP(ip string) *UPNode + func (upi *UserPlaneInformation) GetUPFNodeIDByName(name string) pfcpType.NodeID + func (upi *UserPlaneInformation) LinksFromConfiguration(upTopology *factory.UserPlaneInformation) + func (upi *UserPlaneInformation) LinksToConfiguration() []*factory.UPLink + func (upi *UserPlaneInformation) ReleaseUEIP(upf *UPNode, addr net.IP, static bool) + func (upi *UserPlaneInformation) SelectUPFAndAllocUEIP(selection *UPFSelectionParams) (*UPNode, net.IP, bool) + func (upi *UserPlaneInformation) UpNodeDelete(upNodeName string) + func (upi *UserPlaneInformation) UpNodesFromConfiguration(upTopology *factory.UserPlaneInformation) + func (upi *UserPlaneInformation) UpNodesToConfiguration() map[string]*factory.UPNode