af

package
v0.0.0-...-462693d Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2020 License: Apache-2.0, Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
const DefaultNotifURL = "/af/v1/notifications"

DefaultNotifURL const

View Source
const (
	// HTTP2Enabled flag is for enabling/disabling HTTP2
	HTTP2Enabled = true
)

Variables

View Source
var (

	//AfCtx public var
	AfCtx *Context
	//AfRouter public var
	AfRouter *mux.Router
	//NotifRouter public var
	NotifRouter *mux.Router
)
View Source
var HTTPClient *http.Client

HTTPClient to be setup in AF UT

View Source
var TestAf bool = false

TestAf boolean to be set to true in AF UT

View Source
var TransIDMax = math.MaxInt32

TransIDMax var

Functions

func CreatePfdTransaction

func CreatePfdTransaction(w http.ResponseWriter, r *http.Request)

CreatePfdTransaction function - Create a PFD transaction

func CreateSubscription

func CreateSubscription(w http.ResponseWriter, r *http.Request)

CreateSubscription function

func DeletePfdAppTransaction

func DeletePfdAppTransaction(w http.ResponseWriter, r *http.Request)

DeletePfdAppTransaction function

func DeletePfdTransaction

func DeletePfdTransaction(w http.ResponseWriter, r *http.Request)

DeletePfdTransaction function

func DeleteSubscription

func DeleteSubscription(w http.ResponseWriter, r *http.Request)

DeleteSubscription function

func GetAllPfdTransactions

func GetAllPfdTransactions(w http.ResponseWriter, r *http.Request)

GetAllPfdTransactions - Function to read all PFD transactions

func GetAllSubscriptions

func GetAllSubscriptions(w http.ResponseWriter, r *http.Request)

GetAllSubscriptions function

func GetPfdAppTransaction

func GetPfdAppTransaction(w http.ResponseWriter, r *http.Request)

GetPfdAppTransaction function

func GetPfdTransaction

func GetPfdTransaction(w http.ResponseWriter, r *http.Request)

GetPfdTransaction function - Read a particular PFD transaction

func GetSubscription

func GetSubscription(w http.ResponseWriter, r *http.Request)

GetSubscription function

func ModifySubscriptionPatch

func ModifySubscriptionPatch(w http.ResponseWriter, r *http.Request)

ModifySubscriptionPatch function

func ModifySubscriptionPut

func ModifySubscriptionPut(w http.ResponseWriter, r *http.Request)

ModifySubscriptionPut function

func NewAFRouter

func NewAFRouter(afCtx *Context) *mux.Router

NewAFRouter function

func NewNotifRouter

func NewNotifRouter(afCtx *Context) *mux.Router

NewNotifRouter function

func NotificationPost

func NotificationPost(w http.ResponseWriter, r *http.Request)

NotificationPost function

func PatchPfdAppTransaction

func PatchPfdAppTransaction(w http.ResponseWriter, r *http.Request)

PatchPfdAppTransaction function

func PutPfdAppTransaction

func PutPfdAppTransaction(w http.ResponseWriter, r *http.Request)

PutPfdAppTransaction function

func PutPfdTransaction

func PutPfdTransaction(w http.ResponseWriter, r *http.Request)

PutPfdTransaction function - To update the PFD transcation

func Run

func Run(parentCtx context.Context, cfgPath string) error

Run function

func SetHTTPClient

func SetHTTPClient(httpClient *http.Client)

SetHTTPClient Function to setup a httpClient for testing if required

Types

type CliConfig

type CliConfig struct {
	Protocol       string `json:"Protocol"`
	NEFHostname    string `json:"NEFHostname"`
	NEFPort        string `json:"NEFPort"`
	NEFBasePath    string `json:"NEFBasePath"`
	NEFPFDBasePath string `json:"NEFPFDBasePath"`
	UserAgent      string `json:"UserAgent"`
	NEFCliCertPath string `json:"NEFCliCertPath"`
	HTTPClient     *http.Client
	OAuth2Support  bool `json:"OAuth2Support"`
}

CliConfig struct

func NewConfiguration

func NewConfiguration(afCtx *Context) *CliConfig

NewConfiguration function initializes client configuration

type Client

type Client struct {

	// API Services
	TrafficInfluSubGetAllAPI  *TrafficInfluenceSubscriptionGetAllAPIService
	TrafficInfluSubDeleteAPI  *TrafficInfluenceSubscriptionDeleteAPIService
	TrafficInfluSubGetAPI     *TrafficInfluenceSubscriptionGetAPIService
	TrafficInfluSubPatchAPI   *TrafficInfluenceSubscriptionPatchAPIService
	TrafficInfluSubPostAPI    *TrafficInfluenceSubscriptionPostAPIService
	TrafficInfluSubPutAPI     *TrafficInfluenceSubscriptionPutAPIService
	PfdManagementGetAllAPI    *PfdManagementTransactionGetAllAPIService
	PfdManagementPostAPI      *PfdManagementTransactionPostAPIService
	PfdManagementGetAPI       *PfdManagementTransactionGetAPIService
	PfdManagementDeleteAPI    *PfdManagementTransactionDeleteAPIService
	PfdManagementPutAPI       *PfdManagementTransactionPutAPIService
	PfdManagementAppGetAPI    *PfdManagementTransactionAppGetAPIService
	PfdManagementAppDeleteAPI *PfdManagementTransactionAppDeleteAPIService
	PfdManagementAppPutAPI    *PfdManagementTransactionAppPutAPIService
	PfdManagementAppPatchAPI  *PfdManagementTransactionAppPatchAPIService
	// contains filtered or unexported fields
}

Client manages communication with the NEF Northbound API API v1.0.1

func NewClient

func NewClient(cfg *CliConfig) *Client

NewClient creates a new API client.

type Config

type Config struct {
	AfID              string       `json:"AfId"`
	AfAPIRoot         string       `json:"AfAPIRoot"`
	LocationPrefixPfd string       `json:"LocationPrefixPfd"`
	SrvCfg            ServerConfig `json:"ServerConfig"`
	CliCfg            CliConfig    `json:"CliConfig"`
}

Config struct

type Context

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

Context struct

type DNAI

type DNAI string

DNAI type

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 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 GPSI

type GPSI string

GPSI type

type GenericError

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

GenericError Provides access to the body, error and model on returned errors.

func (GenericError) Error

func (e GenericError) Error() string

Error returns non-empty string if there was an error.

type IPv4Addr

type IPv4Addr string

IPv4Addr type

type IPv6Addr

type IPv6Addr string

IPv6Addr type

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 Link string

Link is a string identifying the referenced resource URI URI string formatted accordingding to IETF RFC 3986

type MacAddr

type MacAddr string

MacAddr type

type NotifSubscryptions

type NotifSubscryptions map[string]map[string]TrafficInfluSub

NotifSubscryptions type

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 PfdManagementTransactionAppDeleteAPIService

type PfdManagementTransactionAppDeleteAPIService service

PfdManagementTransactionAppDeleteAPIService type

func (*PfdManagementTransactionAppDeleteAPIService) PfdAppTransactionDelete

func (a *PfdManagementTransactionAppDeleteAPIService) PfdAppTransactionDelete(
	ctx context.Context, afID string, pfdTrans string, appID string) (
	*http.Response, error)

PfdAppTransactionDelete Deletes an already existing PFD transaction for an application identifier Deletes an already existing pfd transaction

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param pfdTrans Identifier of the subscription resource
  • @param appID External application Identifier

type PfdManagementTransactionAppGetAPIService

type PfdManagementTransactionAppGetAPIService service

PfdManagementTransactionAppGetAPIService type

func (*PfdManagementTransactionAppGetAPIService) PfdAppTransactionGet

func (a *PfdManagementTransactionAppGetAPIService) PfdAppTransactionGet(
	ctx context.Context, afID string, pfdTransaction string, appID string) (
	PfdData, *http.Response, error)

PfdAppTransactionGet Read an active pfd Data for the AF, pfd transcation id and an application ID Read an active pfd transactions for the AF, pfd transaction Id and app ID

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param pfd transaction Identifier of the PFD transaction resource
  • @param appID Application Identifier

@return PfdData

type PfdManagementTransactionAppPatchAPIService

type PfdManagementTransactionAppPatchAPIService service

PfdManagementTransactionAppPatchAPIService type

func (*PfdManagementTransactionAppPatchAPIService) PfdAppTransactionPatch

func (a *PfdManagementTransactionAppPatchAPIService) PfdAppTransactionPatch(
	ctx context.Context, afID string, pfdTransID string, appID string,
	body PfdData) (PfdData, *http.Response, []byte, error)

PfdAppTransactionPatch Updates an existing pfd transaction for an app ID

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or
  • context.Background().
  • @param afID Identifier of the AF
  • @param pfdTransId Identifier of the pfdData
  • @param appID Identifier of the external application
  • @param body Provides a pfd data for pfd management identified by
  • transaction id and appID

@return PfdData

type PfdManagementTransactionAppPutAPIService

type PfdManagementTransactionAppPutAPIService service

PfdManagementTransactionAppPutAPIService type

func (*PfdManagementTransactionAppPutAPIService) PfdAppTransactionPut

func (a *PfdManagementTransactionAppPutAPIService) PfdAppTransactionPut(
	ctx context.Context, afID string, pfdTransaction string, appID string,
	body PfdData) (PfdData, *http.Response, []byte, error)

PfdAppTransactionPut updates an existing PFD transaction for an external app ID source Updates an existing pfd transaction resource for an external application id

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or
  • context.Background().
  • @param afID Identifier of the AF
  • @param pfdTransactionID Identifier of the pfd Transaction resource
  • @param appID Identifier of the external application id
  • @param body Provides the PfdData structure identified by
  • pfdTransaction ID and appID

@return PfdData

type PfdManagementTransactionDeleteAPIService

type PfdManagementTransactionDeleteAPIService service

PfdManagementTransactionDeleteAPIService type

func (*PfdManagementTransactionDeleteAPIService) PfdTransactionDelete

func (a *PfdManagementTransactionDeleteAPIService) PfdTransactionDelete(
	ctx context.Context, afID string, pfdTrans string) (*http.Response,
	error)

PfdTransactionDelete Deletes an already existing PFD transaction Deletes an already existing pfd transaction

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param pfdTrans Identifier of the PFD transaction resource

type PfdManagementTransactionGetAPIService

type PfdManagementTransactionGetAPIService service

PfdManagementTransactionGetAPIService type

func (*PfdManagementTransactionGetAPIService) PfdTransactionGet

func (a *PfdManagementTransactionGetAPIService) PfdTransactionGet(
	ctx context.Context, afID string, pfdTransaction string) (PfdManagement,
	*http.Response, error)

PfdTransactionGet Read an active pfd Management for the AF and the pfd transcation id Read an active pfd transactions for the AF and the pfd transaction Id

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param pfd transaction Identifier of the PFD transaction resource

@return PfdManagenent

type PfdManagementTransactionGetAllAPIService

type PfdManagementTransactionGetAllAPIService service

PfdManagementTransactionGetAllAPIService type

func (*PfdManagementTransactionGetAllAPIService) PfdTransactionsGetAll

func (a *PfdManagementTransactionGetAllAPIService) PfdTransactionsGetAll(
	ctx context.Context, afID string) ([]PfdManagement,
	*http.Response, error)

PfdTransactionsGetAll read all of the active Pfd transactions for the AF read all of the active pfd transactions for the AF

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF

@return []PfdManagement

type PfdManagementTransactionPostAPIService

type PfdManagementTransactionPostAPIService service

PfdManagementTransactionPostAPIService type

func (*PfdManagementTransactionPostAPIService) PfdTransactionPost

PfdTransactionPost Creates a new PFD management resource Creates a new PFD management resource

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param body Request to create a new PFD management resource

@return PfdManagement

type PfdManagementTransactionPutAPIService

type PfdManagementTransactionPutAPIService service

PfdManagementTransactionPutAPIService type

func (*PfdManagementTransactionPutAPIService) PfdTransactionPut

func (a *PfdManagementTransactionPutAPIService) PfdTransactionPut(
	ctx context.Context, afID string, pfdTransaction string,
	body PfdManagement) (PfdManagement, *http.Response, []byte, error)

PfdTransactionPut updates an existing PFD transaction source Updates an existing PFD transaction resource

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or
  • context.Background().
  • @param afID Identifier of the AF
  • @param pfdTransactionID Identifier of the pfd Transaction resource
  • @param body Provides the pfd management structure identified by
  • pfdTransaction ID

@return PfdManagement

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 Route

type Route struct {
	Name        string
	Method      string
	Pattern     string
	HandlerFunc http.HandlerFunc
}

Route 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 Routes

type Routes []Route

Routes type

type SNSSAI

type SNSSAI struct {
	SST int32  `json:"sst"`
	SD  string `json:"sd,omitempty"`
}

SNSSAI Network slice identifier

type ServerConfig

type ServerConfig struct {
	CNCAEndpoint   string `json:"CNCAEndpoint"`
	Hostname       string `json:"Hostname"`
	NotifPort      string `json:"NotifPort"`
	UIEndpoint     string `json:"UIEndpoint"`
	ServerCertPath string `json:"ServerCertPath"`
	ServerKeyPath  string `json:"ServerKeyPath"`
}

ServerConfig struct

type SrcUEIPv4Addr

type SrcUEIPv4Addr string

SrcUEIPv4Addr type

type SrcUEIPv6Prefix

type SrcUEIPv6Prefix string

SrcUEIPv6Prefix type

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 TgtUEIPv4Addr

type TgtUEIPv4Addr string

TgtUEIPv4Addr type

type TgtUEIPv6Prefix

type TgtUEIPv6Prefix string

TgtUEIPv6Prefix type

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 TrafficInfluenceSubscriptionDeleteAPIService

type TrafficInfluenceSubscriptionDeleteAPIService service

TrafficInfluenceSubscriptionDeleteAPIService type

func (*TrafficInfluenceSubscriptionDeleteAPIService) SubscriptionDelete

func (a *TrafficInfluenceSubscriptionDeleteAPIService) SubscriptionDelete(
	ctx context.Context, afID string, subscriptionID string) (*http.Response,
	error)

SubscriptionDelete Deletes an already existing subscription Deletes an already existing subscription

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param subscriptionID Identifier of the subscription resource

type TrafficInfluenceSubscriptionGetAPIService

type TrafficInfluenceSubscriptionGetAPIService service

TrafficInfluenceSubscriptionGetAPIService type

func (*TrafficInfluenceSubscriptionGetAPIService) SubscriptionGet

func (a *TrafficInfluenceSubscriptionGetAPIService) SubscriptionGet(
	ctx context.Context, afID string, subscriptionID string) (TrafficInfluSub,
	*http.Response, error)

SubscriptionGet Read an active subscriptions for the AF and the subscription Id Read an active subscriptions for the AF and the subscription Id

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param subscriptionID Identifier of the subscription resource

@return TrafficInfluSub

type TrafficInfluenceSubscriptionGetAllAPIService

type TrafficInfluenceSubscriptionGetAllAPIService service

TrafficInfluenceSubscriptionGetAllAPIService type

func (*TrafficInfluenceSubscriptionGetAllAPIService) SubscriptionsGetAll

SubscriptionsGetAll read all of the active subscriptions for the AF read all of the active subscriptions for the AF

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF

@return []TrafficInfluSub

type TrafficInfluenceSubscriptionPatchAPIService

type TrafficInfluenceSubscriptionPatchAPIService service

TrafficInfluenceSubscriptionPatchAPIService type

func (*TrafficInfluenceSubscriptionPatchAPIService) SubscriptionPatch

SubscriptionPatch Updates an existing subscriptionre source Updates an existing subscription resource

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or
  • context.Background().
  • @param afID Identifier of the AF
  • @param subscriptionID Identifier of the subscription resource
  • @param body Provides a patch for traffic subscription identified by
  • subscription ID

@return TrafficInfluSub

type TrafficInfluenceSubscriptionPostAPIService

type TrafficInfluenceSubscriptionPostAPIService service

TrafficInfluenceSubscriptionPostAPIService type

func (*TrafficInfluenceSubscriptionPostAPIService) SubscriptionPost

SubscriptionPost Creates a new subscription resource Creates a new subscription resource

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param body Request to create a new subscription resource

@return TrafficInfluSub

type TrafficInfluenceSubscriptionPutAPIService

type TrafficInfluenceSubscriptionPutAPIService service

TrafficInfluenceSubscriptionPutAPIService type

func (*TrafficInfluenceSubscriptionPutAPIService) SubscriptionPut

func (a *TrafficInfluenceSubscriptionPutAPIService) SubscriptionPut(
	ctx context.Context, afID string, subscriptionID string,
	body TrafficInfluSub) (TrafficInfluSub, *http.Response, error)

SubscriptionPut Replaces an existing subscription resource Replaces an existing subscription resource

  • @param ctx context.Context - for authentication, logging, cancellation,
  • deadlines, tracing, etc. Passed from http.Request or context.Background().
  • @param afID Identifier of the AF
  • @param subscriptionID Identifier of the subscription resource
  • @param body Parameters to replace the existing subscription

@return TrafficInfluSub, *http.Response, error

type TransactionIDs

type TransactionIDs map[int]TrafficInfluSub

TransactionIDs type

type UEMac

type UEMac string

UEMac type

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

Jump to

Keyboard shortcuts

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