Documentation ¶
Index ¶
- Constants
- Variables
- func ConvertBitRateToKbps(bitRate string) (kBitRate float64, err error)
- func ConvertBitRateToString(kBitRate float64) (bitRate string)
- func DecreaseRamainBitRate(remainBitRate *float64, reqBitRate string) error
- func DecreaseRamainBitRateToZero(remainBitRate *float64) string
- func DeleteIpv4index(Ipv4index int32)
- func DeleteIpv6index(Ipv6index int32)
- func GetIpv4Address(ipindex int32) string
- func GetIpv6Address(ipindex int32) string
- func GetTimeformat() string
- func GetUri(name models.ServiceName) string
- func IncreaseRamainBitRate(remainBitRate *float64, reqBitRate string) (orig *float64)
- func Ipv4Index() int32
- func Ipv4Pool(ipindex int32) string
- func Ipv6Index() int32
- func Ipv6Pool(ipindex int32) string
- type AMFStatusSubscriptionData
- type AppSessionData
- type AppSessionIdStore
- type PCFContext
- func (context *PCFContext) AllocBdtPolicyId() string
- func (context *PCFContext) GetIPv4Uri() string
- func (context *PCFContext) InitNFService(serviceList []factory.Service, version string)
- func (context *PCFContext) NewPCFUe(Supi string) (*UeContext, error)
- func (context *PCFContext) PCFUeFindByAppSessionId(appSessionId string) *UeContext
- func (context *PCFContext) PCFUeFindByPolicyId(PolicyId string) *UeContext
- func (context *PCFContext) PcfUeFindByIPv4(v4 string) *UeContext
- func (context *PCFContext) PcfUeFindByIPv6(v6 string) *UeContext
- func (context *PCFContext) SessionBinding(req *models.AppSessionContextReqData) (policy *UeSmPolicyData, err error)
- type UeAMPolicyData
- type UeContext
- func (ue *UeContext) AllocUeAppSessionId(context *PCFContext) string
- func (ue *UeContext) FindAMPolicy(anType models.AccessType, plmnId *models.NetworkId) *UeAMPolicyData
- func (ue *UeContext) NewUeAMPolicyData(assolId string, req models.PolicyAssociationRequest) *UeAMPolicyData
- func (ue *UeContext) NewUeSmPolicyData(key string, request models.SmPolicyContextData, smData *models.SmPolicyData) *UeSmPolicyData
- func (ue *UeContext) SMPolicyFindByIpv4(v4 string) *UeSmPolicyData
- func (ue *UeContext) SMPolicyFindByIpv6(v6 string) *UeSmPolicyData
- type UeSmPolicyData
- func (policy *UeSmPolicyData) ArrangeExistEventSubscription() (changed bool)
- func (policy *UeSmPolicyData) CheckRelatedAfEvent(event models.AfEvent) (found bool)
- func (policy *UeSmPolicyData) DecreaseRemainGBR(req *models.RequestedQos) (gbrDl, gbrUl string, err error)
- func (policy *UeSmPolicyData) IncreaseRemainGBR(qosId string) (origUl, origDl *float64)
- func (policy *UeSmPolicyData) RemovePccRule(pccRuleId string) error
Constants ¶
const DefaultBdtRefId = "BdtPolicyId-"
BdtPolicy default value
Variables ¶
var AppSessionContextStore []AppSessionIdStore
var BdtPolicyData_store []models.BdtPolicyData
BdtPolicyData_store -
var CheckNotifiUri = "/npcf-callback/v1/nudr-notify/"
var CreateFailBdtDateStore []models.BdtData
var IPv4Address = "192.168."
var IPv6Address = "ffab::"
var Ipv4_pool = make(map[string]string)
var Ipv6_pool = make(map[string]string)
var PolicyAuthorizationUri = "/npcf-policyauthorization/v1/app-sessions/"
var SmUri = "/npcf-smpolicycontrol/v1"
Functions ¶
func ConvertBitRateToKbps ¶
Convert bitRate string to float64 with uint Kbps
func ConvertBitRateToString ¶
Convert bitRate from float64 to String
func DecreaseRamainBitRate ¶
Decrease remain Bit Rate
func DecreaseRamainBitRateToZero ¶
Returns remin Bit rate string and decrease ir to zero
func DeleteIpv4index ¶
func DeleteIpv4index(Ipv4index int32)
func DeleteIpv6index ¶
func DeleteIpv6index(Ipv6index int32)
func GetIpv4Address ¶
func GetIpv6Address ¶
func GetTimeformat ¶
func GetTimeformat() string
func GetUri ¶
func GetUri(name models.ServiceName) string
func IncreaseRamainBitRate ¶
Increase remain Bit Rate and returns original Bit Rate
Types ¶
type AppSessionData ¶
type AppSessionData struct { AppSessionId string AppSessionContext *models.AppSessionContext // (compN/compN-subCompN/appId-%s) map to PccRule RelatedPccRuleIds map[string]string PccRuleIdMapToCompId map[string]string // EventSubscription Events map[models.AfEvent]models.AfNotifMethod EventUri string // related Session SmPolicyData *UeSmPolicyData }
type AppSessionIdStore ¶
type AppSessionIdStore struct { AppSessionId string AppSessionContext models.AppSessionContext }
AppSessionIdStore -
type PCFContext ¶
type PCFContext struct { NfId string Name string UriScheme models.UriScheme HttpIPv4Address string HttpIpv4Port int TimeFormat string DefaultBdtRefId string NfService map[models.ServiceName]models.NfService PcfServiceUris map[models.ServiceName]string PcfSuppFeats map[models.ServiceName][]byte NrfUri string DefaultUdrUri string UePool map[string]*UeContext // Bdt Policy related BdtPolicyPool map[string]models.BdtPolicy // use BdtPolicyId as key BdtPolicyIdGenerator uint64 // App Session related AppSessionPool map[string]*AppSessionData // use AppSessionId(ue.Supi-%d) or (BdtRefId-%d) as key // AMF Status Change Subscription related AMFStatusSubsData map[string]AMFStatusSubscriptionData // subscriptionId as key }
func GetPcfContext ¶
func GetPcfContext() PCFContext
func (*PCFContext) AllocBdtPolicyId ¶
func (context *PCFContext) AllocBdtPolicyId() string
Return Bdt Policy Id with format "BdtPolicyId-%d" which be allocated
func (*PCFContext) GetIPv4Uri ¶
func (context *PCFContext) GetIPv4Uri() string
func (*PCFContext) InitNFService ¶
func (context *PCFContext) InitNFService(serviceList []factory.Service, version string)
Init NfService with supported service list ,and version of services
func (*PCFContext) NewPCFUe ¶
func (context *PCFContext) NewPCFUe(Supi string) (*UeContext, error)
Allocate PCF Ue with supi and add to pcf Context and returns allocated ue
func (*PCFContext) PCFUeFindByAppSessionId ¶
func (context *PCFContext) PCFUeFindByAppSessionId(appSessionId string) *UeContext
Find PcfUe which the AppSessionId belongs to
func (*PCFContext) PCFUeFindByPolicyId ¶
func (context *PCFContext) PCFUeFindByPolicyId(PolicyId string) *UeContext
Find PcfUe which the policyId belongs to
func (*PCFContext) PcfUeFindByIPv4 ¶
func (context *PCFContext) PcfUeFindByIPv4(v4 string) *UeContext
Find PcfUe which Ipv4 belongs to
func (*PCFContext) PcfUeFindByIPv6 ¶
func (context *PCFContext) PcfUeFindByIPv6(v6 string) *UeContext
Find PcfUe which Ipv6 belongs to
func (*PCFContext) SessionBinding ¶
func (context *PCFContext) SessionBinding(req *models.AppSessionContextReqData) (policy *UeSmPolicyData, err error)
Session Binding from application request to get corresponding Sm policy
type UeAMPolicyData ¶
type UeAMPolicyData struct { PolAssoId string AccessType models.AccessType NotificationUri string ServingPlmn *models.NetworkId AltNotifIpv4Addrs []string AltNotifIpv6Addrs []string // TODO: AMF Status Change AmfStatusUri string Guami *models.Guami ServiveName string // TraceReq *TraceData // Policy Association Triggers []models.RequestTrigger ServAreaRes *models.ServiceAreaRestriction Rfsp int32 UserLoc *models.UserLocation TimeZone string SuppFeat string // about AF request Pras map[string]models.PresenceInfo // related to UDR Subscription Data AmPolicyData *models.AmPolicyData // Svbscription Data // Corresponding UE PcfUe *UeContext // AMF status change subscription AmfStatusChangeSubscription *AMFStatusSubscriptionData }
type UeContext ¶
type UeContext struct { // Ue Context Supi string Gpsi string Pei string GroupIds []string PolAssociationIDGenerator uint32 AMPolicyData map[string]*UeAMPolicyData // use PolAssoId(ue.Supi-numPolId) as key // Udr Ref UdrUri string // SMPolicy SmPolicyData map[string]*UeSmPolicyData // use smPolicyId(ue.Supi-pduSessionId) as key // App Session Related AppSessionIdGenerator uint64 // PolicyAuth AfRoutReq *models.AfRoutingRequirement AspId string // Policy Decision AppSessionIdStore *AppSessionIdStore PolicyDataSubscriptionStore *models.PolicyDataSubscription PolicyDataChangeStore *models.PolicyDataChangeNotification }
key is supi
func (*UeContext) AllocUeAppSessionId ¶
func (ue *UeContext) AllocUeAppSessionId(context *PCFContext) string
Return App Session Id with format "ue.Supi-%d" which be allocated
func (*UeContext) FindAMPolicy ¶
func (ue *UeContext) FindAMPolicy(anType models.AccessType, plmnId *models.NetworkId) *UeAMPolicyData
returns AM Policy which AccessType and plmnId match
func (*UeContext) NewUeAMPolicyData ¶
func (ue *UeContext) NewUeAMPolicyData(assolId string, req models.PolicyAssociationRequest) *UeAMPolicyData
NewUeAMPolicyData returns created UeAMPolicyData data and insert this data to Ue.AMPolicyData with assolId as key
func (*UeContext) NewUeSmPolicyData ¶
func (ue *UeContext) NewUeSmPolicyData(key string, request models.SmPolicyContextData, smData *models.SmPolicyData) *UeSmPolicyData
returns UeSmPolicyData and insert related info to Ue with smPolId
func (*UeContext) SMPolicyFindByIpv4 ¶
func (ue *UeContext) SMPolicyFindByIpv4(v4 string) *UeSmPolicyData
returns SM Policy by IPv4
func (*UeContext) SMPolicyFindByIpv6 ¶
func (ue *UeContext) SMPolicyFindByIpv6(v6 string) *UeSmPolicyData
returns SM Policy by IPv6
type UeSmPolicyData ¶
type UeSmPolicyData struct { // PduSessionId int32 // DNN string // NotificationUri string // Snssai models.Snssai // PduSessionType models.PduSessionType // IPAddress models.IpAddress // IPDomain string // Var3gppPsDataOffStatus bool // SmfId string // TraceReq *TraceData // RecoveryTime *time.Time PackFiltIdGenarator int32 PccRuleIdGenarator int32 ChargingIdGenarator int32 // FlowMapsToPackFiltIds map[string][]string // use Flow Description(in TS 29214) as key map to pcc rule ids PackFiltMapToPccRuleId map[string]string // use PackFiltId as Key // Related to GBR RemainGbrUL *float64 RemainGbrDL *float64 // related to UDR Subscription Data SmPolicyData *models.SmPolicyData // Svbscription Data // related to Policy PolicyContext *models.SmPolicyContextData PolicyDecision *models.SmPolicyDecision // related to AppSession AppSessions map[string]bool // related appSessionId // Corresponding UE PcfUe *UeContext }
func (*UeSmPolicyData) ArrangeExistEventSubscription ¶
func (policy *UeSmPolicyData) ArrangeExistEventSubscription() (changed bool)
Arrange Exist Event policy Sm policy about afevents and return if it changes or not and
func (*UeSmPolicyData) CheckRelatedAfEvent ¶
func (policy *UeSmPolicyData) CheckRelatedAfEvent(event models.AfEvent) (found bool)
Check if the afEvent exists in smPolicy
func (*UeSmPolicyData) DecreaseRemainGBR ¶
func (policy *UeSmPolicyData) DecreaseRemainGBR(req *models.RequestedQos) (gbrDl, gbrUl string, err error)
Decrease remain GBR of this policy and returns UL DL GBR
func (*UeSmPolicyData) IncreaseRemainGBR ¶
func (policy *UeSmPolicyData) IncreaseRemainGBR(qosId string) (origUl, origDl *float64)
Increase remain GBR of this policy and returns original UL DL GBR for resume case
func (*UeSmPolicyData) RemovePccRule ¶
func (policy *UeSmPolicyData) RemovePccRule(pccRuleId string) error
Remove Pcc rule wich PccRuleId in the policy