Documentation ¶
Index ¶
- Constants
- Variables
- func AFCreatePfdTransaction(trans []byte) ([]byte, string, error)
- func AFCreateSubscription(sub []byte) (string, error)
- func AFDeletePfdApplication(transID string, appID string) error
- func AFDeletePfdTransaction(transID string) error
- func AFDeleteSubscription(subID string) error
- func AFGetPfdApplication(transID string, appID string) ([]byte, error)
- func AFGetPfdTransaction(transID string) ([]byte, error)
- func AFGetSubscription(subID string) ([]byte, error)
- func AFPatchPfdApplication(transID string, appID string, trans []byte) ([]byte, error)
- func AFPatchPfdTransaction(transID string, trans []byte) ([]byte, error)
- func AFPatchSubscription(subID string, sub []byte) error
- func Execute() error
- func InitHTTP2Client(clientCertData string) error
- func InitHTTPClient()
- func LteCreateUserplane(up []byte) (string, error)
- func LteDeleteUserplane(upID string) error
- func LteGetUserplane(upID string) ([]byte, error)
- func LtePatchUserplane(upID string, up []byte) error
- func OAM5gRegisterAFService(locService []byte) (string, error)
- func OAM5gUnregisterAFService(serviceID string) error
- type AFPfdData
- type AFPfdManagement
- type AFService
- type AFServiceID
- type AFServiceList
- type AFTrafficInfluSub
- type ConfigInfoCpup
- type ConfigInfoUp
- type CupsUserplane
- type CupsUserplaneID
- type DNAI
- type DNAIChangeType
- type DurationSec
- type DurationSecRm
- type DurationSecRo
- type EntitlementImsiList
- type EthFlowDescription
- type EventNotification
- type FailureCode
- type FlowInfo
- type GPSI
- type HTTPProtocol
- type Header
- type IPv4Addr
- type IPv6Addr
- type InvalidParam
- type LTEUserplane
- type Link
- type LocationService
- type LteConfigInfoCpup
- type LteConfigInfoUp
- type MacAddr
- type Pfd
- type PfdData
- type PfdManagement
- type PfdReport
- type ProblemDetails
- type RouteInformation
- type RouteToLocation
- type SNSSAI
- type SelectorNetwork
- type SelectorPdn
- type SelectorUli
- type SrcUEIPv4Addr
- type SrcUEIPv6Prefix
- type SubscribedEvent
- type SupportedFeatures
- type TemporalValidity
- type TgtUEIPv4Addr
- type TgtUEIPv6Prefix
- type TrafficInfluSub
- type TrafficInfluSubPatch
- type UEMac
- type Uliecgi
- type Ulitai
- type UserplaneConfig
- type UserplaneEntitlement
- type UserplaneFunction
- type UserplaneSelector
- type WebsockNotifConfig
Constants ¶
const ( NgcOAMServiceEndpoint = "http://localhost:8070/ngcoam/v1/af" NgcAFServiceEndpoint = "http://localhost:8050/af/v1" LteOAMServiceEndpoint = "http://localhost:8082" NgcOAMServiceHTTP2Endpoint = "https://localhost:8070/ngcoam/v1/af" NgcAFServiceHTTP2Endpoint = "https://localhost:8050/af/v1" LteOAMServiceHTTP2Endpoint = "https://localhost:8082" )
Connectivity constants
const ( UseHTTPProtocol = HTTP2 TLSCAFile = "root-ca-cert.pem" DefaultTLSCAFilePath = "/etc/certs/" )
HTTP2/HTTPS constants
const ( // This value indicates that something functions wrongly in PFD // provisioning or the PFD provisioning does not function at all. Malfunction FailureCode = "MALFUNCTION" // This value indicates there is resource limitation for PFD storage. ResourceLimitation = "RESOURCE_LIMITATION" // This value indicates that the allowed delay is too short and PFD(s) are // not stored ShortDelay = "SHORT_DELAY" // The received external application identifier(s) are already provisioned AppIDDuplicated = "APP_ID_DUPLICATED" // Other reason specified OtherReason = "OTHER_REASON" )
Possible values of FailureCode
Variables ¶
var HTTP2ClientTLSCAPath string
Functions ¶
func AFCreatePfdTransaction ¶
AFCreatePfdTransaction create new PFD transaction at AF
func AFCreateSubscription ¶
AFCreateSubscription create new Traffic Influence Subscription at AF
func AFDeletePfdApplication ¶
AFDeletePfdApplication delete an active PFD Application for the AF
func AFDeletePfdTransaction ¶
AFDeletePfdTransaction delete an active PFD Transaction for the AF
func AFDeleteSubscription ¶
AFDeleteSubscription delete an active Traffic Influence Subscription for AF
func AFGetPfdApplication ¶
AFGetPfdApplication get the active PFD Application for the AF
func AFGetPfdTransaction ¶
AFGetPfdTransaction get the active PFD Transaction for the AF
func AFGetSubscription ¶
AFGetSubscription get the active Traffic Influence Subscription for the AF
func AFPatchPfdApplication ¶
AFPatchPfdApplication update an active PFD Application for the AF
func AFPatchPfdTransaction ¶
AFPatchPfdTransaction update an active PFD Transaction for the AF
func AFPatchSubscription ¶
AFPatchSubscription update an active subscription for the AF
func InitHTTP2Client ¶
func InitHTTPClient ¶
func InitHTTPClient()
func LteCreateUserplane ¶
LteCreateUserplane create new LTE userplane
func LteDeleteUserplane ¶
LteDeleteUserplane delete an active LTE CUPS userplane
func LteGetUserplane ¶
LteGetUserplane get the active CUPS userplane
func LtePatchUserplane ¶
LtePatchUserplane update an active LTE CUPS userplane
func OAM5gRegisterAFService ¶
OAM5gRegisterAFService register controller to AF services registry
func OAM5gUnregisterAFService ¶
OAM5gUnregisterAFService unregister controller from AF services registry
Types ¶
type AFPfdData ¶
type AFPfdData struct { H Header Policy struct { // Each element uniquely identifies external application identifier ExternalAppID string `yaml:"externalAppID"` // Link to the resource. This parameter shall be supplied by the AF in // HTTP responses that include an object of PfdData type Self string `yaml:"self,omitempty"` // Contains the PFDs of the external application identifier. Each PFD is // identified in the map via a key containing the PFD identifier. Pfds []struct { // Identifies a PDF of an application identifier. PfdID string `yaml:"pfdID"` // Represents a 3-tuple with protocol, server ip and server port for UL/DL // application traffic. The content of the string has the same encoding as // the IPFilterRule AVP value as defined in IETFÂ RFCÂ 6733. FlowDescriptions []string `yaml:"flowDescriptions,omitempty"` // Indicates a URL or a regular expression which is used to match the // significant parts of the URL. Urls []string `yaml:"urls,omitempty"` // Indicates an FQDN or a regular expression as a domain name matching // criteria. DomainNames []string `yaml:"domainNames,omitempty"` } `yaml:"pfds"` // Indicates that the list of PFDs in this request should be deployed // within the time interval indicated by the Allowed Delay AllowedDelay *uint64 `yaml:"allowedDelay,omitempty"` // SCEF supplied property, inclusion of this property means the allowed // delayed cannot be satisfied, i.e. it is smaller than the caching time, // but the PFD data is still stored. CachingTime *uint64 `yaml:"cachingTime,omitempty"` } `yaml:"policy"` }
AFPfdData describes NGC AF Pfd Application
type AFPfdManagement ¶
type AFPfdManagement struct { H Header Policy struct { // Link to the resource "Individual PFD Management Transaction". // This parameter shall be supplied by the AF in HTTP responses. Self string `yaml:"self,omitempty"` // String identifying supported optional features of PFD Management // This attribute shall be provided in the POST request and in the // response of successful resource creation. SuppFeat *string `yaml:"suppFeat,omitempty"` // Each element uniquely identifies the PFDs for an external application // identifier. Each element is identified in the map via an external // application identifier as key. The response shall include successfully // provisioned PFD data of application(s). PfdDatas []struct { // Each element uniquely identifies external application identifier ExternalAppID string `yaml:"externalAppID"` // Link to the resource. This parameter shall be supplied by the AF in // HTTP responses that include an object of PfdData type Self string `yaml:"self,omitempty"` // Contains the PFDs of the external application identifier. Each PFD is // identified in the map via a key containing the PFD identifier. Pfds []struct { // Identifies a PDF of an application identifier. PfdID string `yaml:"pfdID"` // Represents a 3-tuple with protocol, server ip and server port for UL/DL // application traffic. The content of the string has the same encoding as // the IPFilterRule AVP value as defined in IETFÂ RFCÂ 6733. FlowDescriptions []string `yaml:"flowDescriptions,omitempty"` // Indicates a URL or a regular expression which is used to match the // significant parts of the URL. Urls []string `yaml:"urls,omitempty"` // Indicates an FQDN or a regular expression as a domain name matching // criteria. DomainNames []string `yaml:"domainNames,omitempty"` } `yaml:"pfds"` // Indicates that the list of PFDs in this request should be deployed // within the time interval indicated by the Allowed Delay AllowedDelay *uint64 `yaml:"allowedDelay,omitempty"` // SCEF supplied property, inclusion of this property means the allowed // delayed cannot be satisfied, i.e. it is smaller than the caching time, // but the PFD data is still stored. CachingTime *uint64 `yaml:"cachingTime,omitempty"` } `yaml:"pfdDatas"` // Supplied by the AF and contains the external application identifiers // for which PFD(s) are not added or modified successfully. The failure // reason is also included. Each element provides the related information // for one or more external application identifier(s) and is identified in // the map via the failure identifier as key. PfdReports map[string]PfdReport `yaml:"pfdReports,omitempty"` } `yaml:"policy"` }
AFPfdManagement describes NGC AF Pfd Transaction
type AFService ¶
type AFService struct { AFServiceID string `json:"afServiceId,omitempty"` LocationService LocationService `json:"locationService,omitempty"` }
AFService JSON struct
type AFServiceID ¶
type AFServiceID struct {
AFServiceID string `json:"afServiceId,omitempty"`
}
AFServiceID identifies AF Service ID
type AFServiceList ¶
type AFServiceList struct {
AfServiceList []AFService `json:"afServiceList,omitempty"`
}
AFServiceList JSON struct
type AFTrafficInfluSub ¶
type AFTrafficInfluSub struct { H Header Policy struct { // Identifies a service on behalf of which the AF is issuing the request. AfServiceID string `yaml:"afServiceId,omitempty"` // Identifies an application. AfAppID string `yaml:"afAppId,omitempty"` // Identifies an NEF Northbound interface transaction, generated by the AF. AfTransID string `yaml:"afTransId,omitempty"` // Identifies whether an application can be relocated once a location of the application has been selected. AppReloInd bool `yaml:"appReloInd,omitempty"` // Identifies data network name DNN string `yaml:"dnn,omitempty"` // Snssai SNSSAI struct { SST int32 `yaml:"sst"` SD string `yaml:"sd,omitempty"` } `yaml:"snssai,omitempty"` // string containing a local identifier followed by \"@\" and a domain identifier. Both the local identifier // and the domain identifier shall be encoded as strings that do not contain any \"@\" characters. // See Clauses 4.6.2 and 4.6.3 of 3GPP TS 23.682 for more information. ExternalGroupID string `yaml:"externalGroupId,omitempty"` // Identifies whether the AF request applies to any UE. AnyUeInd bool `yaml:"anyUeInd,omitempty"` // Identifies the requirement to be notified of the event(s): // - UP_PATH_CHANGE SubscribedEvents []string `yaml:"subscribedEvents,omitempty"` // Gpsi GPSI string `yaml:"gpsi,omitempty"` // string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166. IPv4Addr string `yaml:"ipv4Addr,omitempty"` // string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. IPv6Addr string `yaml:"ipv6Addr,omitempty"` // string identifying MAC Address MACAddr string `yaml:"macAddr,omitempty"` // Identifies the type of notification regarding UP path management event. Possible values are // EARLY - early notification of UP path reconfiguration. // EARLY_LATE - early and late notification of UP path reconfiguration. This value shall only be present in // the subscription to the DNAI change event. // LATE - late notification of UP path reconfiguration. DNAIChgType string `yaml:"dnaiChgType,omitempty"` // string formatted according to IETF RFC 3986 identifying a referenced resource. NotificationDestination string `yaml:"notificationDestination,omitempty"` // Set to true by the AF to request the NEF to send a test notification. Set to false or omitted otherwise. RequestTestNotification bool `yaml:"requestTestNotification,omitempty"` // WebsockNotifConfig WebsockNotifConfig struct { WebsocketURI string `yaml:"websocketUri,omitempty"` RequestWebsocketURI bool `yaml:"requestWebsocketUri,omitempty"` } `yaml:"websockNotifConfig,omitempty"` // Identifies IP packet filters. TrafficFilters []struct { // Indicates the IP flow. FlowID int32 `yaml:"flowId"` // Indicates the packet filters of the IP flow. Refer to subclause 5.3.8 of 3GPP TS 29.214 for encoding. // It shall contain UL and/or DL IP flow description. FlowDescriptions []string `yaml:"flowDescriptions,omitempty"` } `yaml:"trafficFilters,omitempty"` // Identifies Ethernet packet filters. EthTrafficFilters []struct { DestMACAddr string `yaml:"destMacAddr,omitempty"` EthType string `yaml:"ethType"` // Defines a packet filter of an IP flow. FDesc string `yaml:"fDesc,omitempty"` // Possible values are : // - DOWNLINK - The corresponding filter applies for traffic to the UE. // - UPLINK - The corresponding filter applies for traffic from the UE. // - BIDIRECTIONAL The corresponding filter applies for traffic both to and from the UE. // UNSPECIFIED - The corresponding filter applies for traffic to the UE (downlink), but has no specific // direction declared. The service data flow detection shall apply the filter for uplink // traffic as if the filter was bidirectional. FDir string `yaml:"fDir,omitempty"` SourceMACAddr string `yaml:"sourceMacAddr,omitempty"` VLANTags []string `yaml:"vlanTags,omitempty"` } `yaml:"ethTrafficFilters,omitempty"` // Identifies the N6 traffic routing requirement. TrafficRoutes []struct { DNAI string `yaml:"dnai"` RouteInfo struct { IPv4Addr string `yaml:"ipv4Addr,omitempty"` IPv6Addr string `yaml:"ipv6Addr,omitempty"` PortNumber int32 `yaml:"portNumber"` } `yaml:"routeInfo,omitempty"` RouteProfID string `yaml:"routeProfId,omitempty"` } `yaml:"trafficRoutes,omitempty"` // Indicates the time interval(s) during which the AF request is to be applied TempValidities []struct { // string with format \"date-time\" as defined in OpenAPI. StartTime string `yaml:"startTime,omitempty"` // string with format \"date-time\" as defined in OpenAPI. StopTime string `yaml:"stopTime,omitempty"` } `yaml:"tempValidities,omitempty"` // Identifies a geographic zone that the AF request applies only to the traffic of UE(s) located in this // specific zone. ValidGeoZoneIds []string `yaml:"validGeoZoneIds,omitempty"` } `yaml:"policy"` }
AFTrafficInfluSub describes NGC AF Traffic Influence Subscription
type ConfigInfoCpup ¶
type ConfigInfoCpup struct { CpIPAddress string `json:"cp_ip_address,omitempty"` UpIPAddress string `json:"up_ip_address,omitempty"` }
ConfigInfoCpup Information that the userplane should configure, which relates to the control plane (CP) side and the user plane (UP) side.
type ConfigInfoUp ¶
type ConfigInfoUp struct {
UpIPAddress string `json:"up_ip_address,omitempty"`
}
ConfigInfoUp Information that the userplane should configure, which relates to the user plane (UP) side only.
type CupsUserplane ¶
type CupsUserplane struct { ID string `json:"id,omitempty"` UUID string `json:"uuid,omitempty"` Function *UserplaneFunction `json:"function,omitempty"` Config *UserplaneConfig `json:"config,omitempty"` Selectors []UserplaneSelector `json:"selectors,omitempty"` // The UEs that should be entitled to access privileged networks via this // userplane. Note: UEs not in this list will still be able to get a bearer // via the userplane. The UEs in this list are just for entitlement // purposes. (optional) Entitlements []UserplaneEntitlement `json:"entitlements,omitempty"` }
CupsUserplane CupsUserplane
type CupsUserplaneID ¶
type CupsUserplaneID struct {
ID string `json:"id,omitempty"`
}
CupsUserplaneID identifies CUPS userplane ID
type DNAIChangeType ¶
type DNAIChangeType string
DNAIChangeType type
const ( Early DNAIChangeType = "EARLY" EarlyLate DNAIChangeType = "EARLY_LATE" Late DNAIChangeType = "LATE" )
List of DnaiChangeType
type DurationSec ¶
type DurationSec uint64
DurationSec is unsigned integer identifying a period of time in units of seconds.
type DurationSecRm ¶
type DurationSecRm DurationSec
DurationSecRm is unsigned integer identifying a period of time in units of seconds with "nullable=true" property.
type DurationSecRo ¶
type DurationSecRo DurationSec
DurationSecRo is unsigned integer identifying a period of time in units of seconds with "readOnly=true" property.
type EntitlementImsiList ¶
type EntitlementImsiList struct { Begin string `json:"begin,omitempty"` End string `json:"end,omitempty"` }
EntitlementImsiList EntitlementImsiList
type EthFlowDescription ¶
type EthFlowDescription struct { DestMacAddr string `json:"destMacAddr,omitempty"` //EtherType number EthType string `json:"ethType"` // Defines a packet filter of an IP flow. FDesc string `json:"fDesc,omitempty"` // Possible values are DOWNLINK - The corresponding filter applies for // traffic to the UE. // UPLINK - The corresponding filter applies for traffic from the UE. // BIDIRECTIONAL The corresponding filter applies for traffic both to and // from the UE. // UNSPECIFIED - The corresponding filter applies for traffic to the UE // (downlink), but has no specific direction declared. // The service data flow detection shall apply the filter for uplink traffic // as if the filter was bidirectional. FDir string `json:"fDir,omitempty"` // Source mac address SourceMacAddr string `json:"sourceMacAddr,omitempty"` // Vlan tags VLANTags []string `json:"vlanTags,omitempty"` }
EthFlowDescription Identifies an Ethernet flow
type EventNotification ¶
type EventNotification struct { // AfTransID AFTransID string `json:"afTransId,omitempty"` // DnaiChgType DNAIChgType DNAIChangeType `json:"dnaiChgType,omitempty"` // SourceTrafficRoute SourceTrafficRoute RouteToLocation `json:"sourceTrafficRoute,omitempty"` // SubscribedEvent SubscribedEvent SubscribedEvent `json:"subscribedEvent,omitempty"` // TargetTrafficRoute TargetTrafficRoute RouteToLocation `json:"targetTrafficRoute,omitempty"` // Gpsi GPSI string `json:"gpsi,omitempty"` // SrcUeIpv4Addr SrcUEIPv4Addr SrcUEIPv4Addr `json:"srcUeIpv4Addr,omitempty"` // SrcUeIpv6Prefix SrcUEIPv6Prefix SrcUEIPv6Prefix `json:"srcUeIpv6Prefix,omitempty"` // TgtUeIpv4Addr TgtUEIP4Addr TgtUEIPv4Addr `json:"tgtUeIpv4Addr,omitempty"` // TgtUeIpv6Prefix TgtUEIPv6Prefix TgtUEIPv6Prefix `json:"tgtUeIpv6Prefix,omitempty"` // UeMac UEMac UEMac `json:"ueMac,omitempty"` }
EventNotification structure
type FailureCode ¶
type FailureCode string
FailureCode represents the failure reason of the PFD management
type FlowInfo ¶
type FlowInfo struct { // Indicates the packet filters of the IP flow. Refer to subclause 5.3.8 of //3GPP TS 29.214 for encoding. // It shall contain UL and/or DL IP flow description. FlowDescriptions []string `json:"flowDescriptions,omitempty"` // Indicates the IP flow. FlowID int32 `json:"flowId"` }
FlowInfo Flow information struct
type Header ¶
type Header struct { Version string `yaml:"apiVersion"` // ngc: 5G Traffic Influence Subscription, or // lte: LTE CUPS Userplane, or // ngc_pfd: 5G PFD Transaction Kind string `yaml:"kind"` }
Header holds version & type of YAML configuration
type InvalidParam ¶
type InvalidParam struct { // Attribute”s name encoded as a JSON Pointer, or header”s name. Param string `json:"param"` // A human-readable reason, e.g. \"must be a positive integer\". Reason string `json:"reason,omitempty"` }
InvalidParam Invalid Parameters struct
type LTEUserplane ¶
type LTEUserplane struct { H Header Policy struct { ID string `yaml:"id,omitempty"` UUID string `yaml:"uuid,omitempty"` Function string `yaml:"function,omitempty"` Config struct { Sxa LteConfigInfoCpup `yaml:"sxa,omitempty"` Sxb LteConfigInfoCpup `yaml:"sxb,omitempty"` S1u LteConfigInfoUp `yaml:"s1u,omitempty"` S5uSGW LteConfigInfoUp `yaml:"s5u_sgw,omitempty"` S5uPGW LteConfigInfoUp `yaml:"s5u_pgw,omitempty"` SGi LteConfigInfoUp `yaml:"sgi,omitempty"` Breakout []LteConfigInfoUp `yaml:"breakout,omitempty"` DNS []LteConfigInfoUp `yaml:"dns,omitempty"` } `yaml:"config,omitempty"` Selectors []struct { ID string `yaml:"id,omitempty"` Network struct { MCC string `yaml:"mcc,omitempty"` MNC string `yaml:"mnc,omitempty"` } `yaml:"network,omitempty"` ULI struct { TAI struct { // Tracking area code (TAC), which is typically an unsigned integer // from 1 to 2^16, inclusive. TAC int64 `yaml:"tac,omitempty"` } `yaml:"tai,omitempty"` ECGI struct { // E-UTRAN cell identifier (ECI), which is typically an unsigned integer // from 1 to 2^32, inclusive. ECI int64 `yaml:"eci,omitempty"` } `yaml:"ecgi,omitempty"` } `yaml:"uli,omitempty"` PDN struct { APNs []string `yaml:"apns,omitempty"` } `yaml:"pdn,omitempty"` } `yaml:"selectors,omitempty"` // The UEs that should be entitled to access privileged networks via this // userplane. Note: UEs not in this list will still be able to get a bearer // via the userplane. The UEs in this list are just for entitlement // purposes. (optional) Entitlements []struct { ID string `yaml:"id,omitempty"` APNs []string `yaml:"apns,omitempty"` IMSIs []struct { Begin string `yaml:"begin,omitempty"` End string `yaml:"end,omitempty"` } `yaml:"imsis,omitempty"` } `yaml:"entitlements,omitempty"` } }
LTEUserplane describes LTE Userplane Configuration
type Link ¶
type Link string
Link is a string identifying the referenced resource URI URI string formatted accordingding to IETF RFC 3986
type LocationService ¶
type LocationService struct { DNAI string `json:"dnai,omitempty"` //DNAI value DNN string `json:"dnn,omitempty"` //DNN value TAC int `json:"tac,omitempty"` PriDNS string `json:"priDns,omitempty"` SecDNS string `json:"secDns,omitempty"` UPFIP string `json:"upfIp,omitempty"` SNSSAI string `json:"snssai,omitempty"` }
LocationService JSON struct
type LteConfigInfoCpup ¶
type LteConfigInfoCpup struct { CpIPAddress string `yaml:"cp_ip_address,omitempty"` UpIPAddress string `yaml:"up_ip_address,omitempty"` }
LteConfigInfoCpup Information that the userplane should configure, which relates to the control plane (CP) side and the user plane (UP) side.
type LteConfigInfoUp ¶
type LteConfigInfoUp struct {
UpIPAddress string `yaml:"up_ip_address,omitempty"`
}
LteConfigInfoUp Information that the userplane should configure, which relates to the user plane (UP) side only.
type Pfd ¶
type Pfd struct { // Identifies a PDF of an application identifier. PfdID string `json:"pfdID"` // Represents a 3-tuple with protocol, server ip and server port for UL/DL // application traffic. The content of the string has the same encoding as // the IPFilterRule AVP value as defined in IETFÂ RFCÂ 6733. FlowDescriptions []string `json:"flowDescriptions,omitempty"` // Indicates a URL or a regular expression which is used to match the // significant parts of the URL. Urls []string `json:"urls,omitempty"` // Indicates an FQDN or a regular expression as a domain name matching // criteria. DomainNames []string `json:"domainNames,omitempty"` }
Pfd is the structure of Packet Flow Description for an external Application Identifier
type PfdData ¶
type PfdData struct { // Each element uniquely identifies external application identifier ExternalAppID string `json:"externalAppID"` // Link to the resource. This parameter shall be supplied by the AF in // HTTP responses that include an object of PfdData type Self Link `json:"self,omitempty"` // Contains the PFDs of the external application identifier. Each PFD is // identified in the map via a key containing the PFD identifier. Pfds map[string]Pfd `json:"pfds"` // Indicates that the list of PFDs in this request should be deployed // within the time interval indicated by the Allowed Delay AllowedDelay *DurationSecRm `json:"allowedDelay,omitempty"` // SCEF supplied property, inclusion of this property means the allowed // delayed cannot be satisfied, i.e. it is smaller than the caching time, // but the PFD data is still stored. CachingTime *DurationSecRo `json:"cachingTime,omitempty"` }
PfdData is the type that represents a PFD request to add, update or remove PFD(s) for one external application identifier provided by AF
type PfdManagement ¶
type PfdManagement struct { // Link to the resource "Individual PFD Management Transaction". // This parameter shall be supplied by the AF in HTTP responses. Self Link `json:"self,omitempty"` // String identifying supported optional features of PFD Management // This attribute shall be provided in the POST request and in the // response of successful resource creation. SuppFeat *SupportedFeatures `json:"suppFeat,omitempty"` // Each element uniquely identifies the PFDs for an external application // identifier. Each element is identified in the map via an external // application identifier as key. The response shall include successfully // provisioned PFD data of application(s). PfdDatas map[string]PfdData `json:"pfdDatas"` // Supplied by the AF and contains the external application identifiers // for which PFD(s) are not added or modified successfully. The failure // reason is also included. Each element provides the related information // for one or more external application identifier(s) and is identified in // the map via the failure identifier as key. PfdReports map[string]PfdReport `json:"pfdReports,omitempty"` }
PfdManagement resource for a PFD management request
type PfdReport ¶
type PfdReport struct { // Identifies the external application identifier(s) which PFD(s) are not // added or modified successfully ExternalAppIds []string `json:"externalAppIds"` // Identifies the failure reason FailureCode FailureCode `json:"failureCode"` // It shall be included when the allowed delayed cannot be satisfied, i.e. // it is smaller than the caching time configured in fetching PFD. CachingTime *DurationSec `json:"cachingTime,omitempty"` }
PfdReport is the type that represents a PFD report to indicate the external application identifier(s) which PFD(s) are not added or modified successfully and corresponding failure reason.
type ProblemDetails ¶
type ProblemDetails struct { // problem type Type Link `json:"type,omitempty"` // A short, human-readable summary of the problem type. // It should not change from occurrence to occurrence of the problem. Title string `json:"title,omitempty"` // A human-readable explanation specific to this occurrence of the problem. Detail string `json:"detail,omitempty"` // URL to problem instance Instance Link `json:"instance,omitempty"` // A machine-readable application error cause specific to this occurrence // of the problem. // This IE should be present and provide application-related error // information, if available. Cause string `json:"cause,omitempty"` // Description of invalid parameters, for a request rejected due to // invalid parameters. InvalidParams []InvalidParam `json:"invalidParams,omitempty"` // The HTTP status code for this occurrence of the problem. Status int `json:"status,omitempty"` }
ProblemDetails Problem details struct
type RouteInformation ¶
type RouteInformation struct { // string identifying a Ipv4 address formatted in the \"dotted decimal\" // notation as defined in IETF RFC 1166. IPv4Addr IPv4Addr `json:"ipv4Addr,omitempty"` // string identifying a Ipv6 address formatted according to clause 4 in // IETF RFC 5952. // The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall // not be used. IPv6Addr IPv6Addr `json:"ipv6Addr,omitempty"` // Port number PortNumber int32 `json:"portNumber"` }
RouteInformation Route information struct
type RouteToLocation ¶
type RouteToLocation struct { // Data network access identifier DNAI DNAI `json:"dnai"` // Dnai route profile identifier RouteProfID string `json:"routeProfId,omitempty"` // Additional route information about the route to Dnai RouteInfo RouteInformation `json:"routeInfo,omitempty"` }
RouteToLocation Route to location structure
type SelectorNetwork ¶
SelectorNetwork SelectorNetwork
type SelectorPdn ¶
type SelectorPdn struct {
APNs []string `json:"apns,omitempty"`
}
SelectorPdn SelectorPdn
type SelectorUli ¶
type SelectorUli struct { TAI *Ulitai `json:"tai,omitempty"` ECGI *Uliecgi `json:"ecgi,omitempty"` }
SelectorUli SelectorUli
type SubscribedEvent ¶
type SubscribedEvent string
SubscribedEvent : The possible value is CHANGE_OF_DNAI - the AF requests to be notified when the UP path changes for the PDU isession.
const ( //UP_PATH_CHANGE SubscribedEvent = "UP_PATH_CHANGE" >> causing lint error UPPathChange SubscribedEvent = "UP_PATH_CHANGE" )
List of SubscribedEvent
type SupportedFeatures ¶
type SupportedFeatures string
SupportedFeatures string used to indicate the features supported by an API that is used (subclause 6.6 in 3GPP TS 29.500). The string shall contain a bitmask indicating supported features in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent the support of 4 features as described in table 5.2.2-3. The most significant character representing the highest-numbered features shall appear first in the string, and the character representing features 1 to 4 shall appear last in the string. The list of features and their numbering (starting with 1) are defined separately for each API. Possible features for traffic influencing are Notification_websocket( takes vlue of 1) and Notification_test_event(takes value of 2) pattern: '^[A-Fa-f0-9]*$'
type TemporalValidity ¶
type TemporalValidity struct { // string with format \"date-time\" as defined in OpenAPI. StartTime string `json:"startTime,omitempty"` // string with format \"date-time\" as defined in OpenAPI. StopTime string `json:"stopTime,omitempty"` }
TemporalValidity Indicates the time interval(s) during which the AF request is to be applied
type TrafficInfluSub ¶
type TrafficInfluSub struct { // Identifies a service on behalf of which the AF is issuing the request. AFServiceID string `json:"afServiceId,omitempty"` // Identifies an application. AFAppID string `json:"afAppId,omitempty"` // Identifies an NEF Northbound interface transaction, generated by the AF. AFTransID string `json:"afTransId,omitempty"` // Identifies data network name DNN string `json:"dnn,omitempty"` // Network slice identifier SNSSAI SNSSAI `json:"snssai,omitempty"` //p // string containing a local identifier followed by \"@\" and // a domain identifier. // Both the local identifier and the domain identifier shall be encoded as // strings that do not contain any \"@\" characters. // See Clauses 4.6.2 and 4.6.3 of 3GPP TS 23.682 for more information. ExternalGroupID string `json:"externalGroupId,omitempty"` // Identifies the requirement to be notified of the event(s). SubscribedEvents []SubscribedEvent `json:"subscribedEvents,omitempty"` //Generic Public Servie Identifiers asssociated wit the UE GPSI GPSI `json:"gpsi,omitempty"` // string identifying a Ipv4 address formatted in the \"dotted decimal\" //notation as defined in IETF RFC 1166. IPv4Addr IPv4Addr `json:"ipv4Addr,omitempty"` // string identifying a Ipv6 address formatted according to clause 4 // in IETF RFC 5952. IPv6Addr IPv6Addr `json:"ipv6Addr,omitempty"` // string identifying mac address of UE MacAddr MacAddr `json:"macAddr,omitempty"` // Identifies the type of notification regarding UP path management event. // Possible values are: // EARLY - early notification of UP path reconfiguration. // EARLY_LATE - early and late notification of UP path reconfiguration. // This value shall only be present in the subscription to the // DNAI change event. // LATE - late notification of UP path reconfiguration. DNAIChgType DNAIChangeType `json:"dnaiChgType,omitempty"` // URL where notifications shall be sent NotificationDestination Link `json:"notificationDestination,omitempty"` // URL of created subscription resource Self Link `json:"self,omitempty"` // Identifies IP packet filters. TrafficFilters []FlowInfo `json:"trafficFilters,omitempty"` // Identifies Ethernet packet filters. EthTrafficFilters []EthFlowDescription `json:"ethTrafficFilters,omitempty"` // Identifies the N6 traffic routing requirement. TrafficRoutes []RouteToLocation `json:"trafficRoutes,omitempty"` // Settings for temporary validity of the subscription TempValidities []TemporalValidity `json:"tempValidities,omitempty"` // Identifies a geographic zone that the AF request applies only to the // traffic of UE(s) located in this specific zone. ValidGeoZoneIDs []string `json:"validGeoZoneIds,omitempty"` // String identifying supported features per Traffic Influence service SuppFeat SupportedFeatures `json:"suppFeat,omitempty"` // Configuration used for sending notifications though web sockets WebsockNotifConfig WebsockNotifConfig `json:"websockNotifConfig,omitempty"` // Set to true by the AF to request the NEF to send a test notification. //Set to false or omitted otherwise. RequestTestNotification bool `json:"requestTestNotification,omitempty"` // Identifies whether an application can be relocated once a location of // the application has been selected. AppReloInd bool `json:"appReloInd,omitempty"` // Identifies whether the AF request applies to any UE. AnyUEInd bool `json:"anyUeInd,omitempty"` }
TrafficInfluSub is Traffic Influence Subscription structure
type TrafficInfluSubPatch ¶
type TrafficInfluSubPatch struct { // Identifies IP packet filters. TrafficFilters []FlowInfo `json:"trafficFilters,omitempty"` // Identifies whether an application can be relocated once a location of // the application has been selected. AppReloInd bool `json:"appReloInd,omitempty"` // Identifies Ethernet packet filters. EthTrafficFilters []EthFlowDescription `json:"ethTrafficFilters,omitempty"` // Identifies the N6 traffic routing requirement. TrafficRoutes []RouteToLocation `json:"trafficRoutes,omitempty"` // Settings for temporary validity of the subscription TempValidities []TemporalValidity `json:"tempValidities,omitempty"` // Identifies a geographic zone that the AF request applies only to the // traffic of UE(s) located in this specific zone. ValidGeoZoneIDs []string `json:"validGeoZoneIds,omitempty"` }
TrafficInfluSubPatch Traffic Influence Subscription Patch structure
type Uliecgi ¶
type Uliecgi struct { // E-UTRAN cell identifier (ECI), which is typically an unsigned integer // from 1 to 2^32, inclusive. ECI int64 `json:"eci,omitempty"` }
Uliecgi Uliecgi
type Ulitai ¶
type Ulitai struct { // Tracking area code (TAC), which is typically an unsigned integer // from 1 to 2^16, inclusive. TAC int64 `json:"tac,omitempty"` }
Ulitai Ulitai
type UserplaneConfig ¶
type UserplaneConfig struct { Sxa *ConfigInfoCpup `json:"sxa,omitempty"` Sxb *ConfigInfoCpup `json:"sxb,omitempty"` S1u *ConfigInfoUp `json:"s1u,omitempty"` S5uSGW *ConfigInfoUp `json:"s5u_sgw,omitempty"` S5uPGW *ConfigInfoUp `json:"s5u_pgw,omitempty"` SGi *ConfigInfoUp `json:"sgi,omitempty"` Breakout []ConfigInfoUp `json:"breakout,omitempty"` DNS []ConfigInfoUp `json:"dns,omitempty"` }
UserplaneConfig UserplaneConfig
type UserplaneEntitlement ¶
type UserplaneEntitlement struct { ID string `json:"id,omitempty"` APNs []string `json:"apns,omitempty"` IMSIs []EntitlementImsiList `json:"imsis,omitempty"` }
UserplaneEntitlement UserplaneEntitlement
type UserplaneFunction ¶
type UserplaneFunction string
UserplaneFunction :
- NONE: No function
- SGWU: 4G serving gateway userplane (SGW-U)
- PGWU: 4G packet data network (PDN) gateway userplane (PGW-U)
- SAEGWU: 4G combination SGW-U and PGW-U
const ( // NONE: No function NONE UserplaneFunction = "NONE" // SGWU: 4G serving gateway userplane (SGW-U) SGWU UserplaneFunction = "SGWU" // PGWU: 4G packet data network (PDN) gateway userplane (PGW-U) PGWU UserplaneFunction = "PGWU" // SAEGWU: 4G combination SGW-U and PGW-U SAEGWU UserplaneFunction = "SAEGWU" )
List of UserplaneFunction
type UserplaneSelector ¶
type UserplaneSelector struct { ID string `json:"id,omitempty"` Network *SelectorNetwork `json:"network,omitempty"` ULI *SelectorUli `json:"uli,omitempty"` PDN *SelectorPdn `json:"pdn,omitempty"` }
UserplaneSelector UserplaneSelector
type WebsockNotifConfig ¶
type WebsockNotifConfig struct { // string formatted according to IETF RFC 3986 identifying a // referenced resource. WebsocketURI string `json:"websocketUri,omitempty"` // Set by the AF to indicate that the Websocket delivery is requested. RequestWebsocketURI bool `json:"requestWebsocketUri,omitempty"` }
WebsockNotifConfig Websocket noticcation configuration