6 API Definitions

29.5503GPP5G SystemRelease 18Stage 3Steering of roaming application function servicesTS

6.1 Nsoraf_SteeringOfRoaming Service API

6.1.1 Introduction

The Nsoraf_SOR service shall use the Nsoraf_SOR service API.

The request URI used in HTTP request from the NF service consumer towards the NF service producer shall have the structure defined in clause 4.4.1 of 3GPP TS 29.501 [5], i.e.:

{apiRoot}/<apiName>/<apiVersion>/<apiSpecificResourceUriPart>

with the following components:

– The {apiRoot} shall be set as described in 3GPP TS 29.501 [5].

– The <apiName> shall be "nsoraf-sor".

– The <apiVersion> shall be "v1".

– The <apiSpecificResourceUriPart> shall be set as described in clause 6.1.3.

6.1.2 Usage of HTTP

6.1.2.1 General

HTTP/2, IETF RFC 7540 [11], shall be used as specified in clause 5 of 3GPP TS 29.500 [4].

HTTP/2 shall be transported as specified in clause 5.3 of 3GPP TS 29.500 [4].

The OpenAPI [6] specification of HTTP messages and content bodies for the Nsoraf_SOR API is contained in Annex A.

6.1.2.2 HTTP standard headers

6.1.2.2.1 General

See clause 5.2.2 of 3GPP TS 29.500 [4] for the usage of HTTP standard headers.

6.1.2.2.2 Content type

JSON, IETF RFC 8259 [12], shall be used as content type of the HTTP bodies specified in the present specification as specified in clause 5.4 of 3GPP TS 29.500 [4]. The use of the JSON format shall be signalled by the content type "application/json".

"Problem Details" JSON object shall be used to indicate additional details of the error in a HTTP response body and shall be signalled by the content type "application/problem+json", as defined in IETF RFC 7807 [13].

6.1.2.2.3 Cache-Control

The "Cache-Control" header set to the value "no-cache" shall be included in HTTP responses for resources that shall not be cached (e.g. SorInformation).

6.1.2.3 HTTP custom headers

The mandatory HTTP custom header fields specified in clause 5.2.3.2 of 3GPP TS 29.500 [4] shall be applicable.

6.1.3 Resources

6.1.3.1 Overview

The structure of the Resource URIs of the "Nsoraf_SOR" service is depicted in Figure 6.1.3.1-1.

Figure 6.1.3.1-1: Resource URI structure of the Nsoraf_SOR API

Table 6.1.3.1-1 provides an overview of the resources and applicable HTTP methods.

Table 6.1.3.1-1: Resources and methods overview

Resource name

Resource URI

HTTP method or custom operation

Description

sor-information

(Document)

/{supi}/sor-information

GET

Retrieve the SoR information.

sor-ack

(Document)

/{supi}/sor-information/sor-ack

PUT

Inform the SOR-AF of the reception status of the Acknowledgment of successful reception of SoR information by the UE.

6.1.3.2 Resource: sor-information

6.1.3.2.1 Description

This resource represents the SoR information for a SUPI. It is used by NF consumers (e.g. UDM) to:

– request the retrieval of the SoR information during registration in a VPLMN as specified in clause C.2 in Annex C of 3GPP°TS°23.122°[14].

6.1.3.2.2 Resource Definition

Resource URI: {apiRoot}/nsoraf-sor/v1/{supi}/sor-information

This resource shall support the resource URI variables defined in table 6.1.3.2.2-1.

Table 6.1.3.2.2-1: Resource URI variables for this resource

Name

Data type

Definition

apiRoot

string

See clause 6.1.1

supi

Supi

Represents the Subscription Permanent Identifier (see 3GPP TS 23.501 [2] clause 5.9.2)
pattern: "^(imsi-[0-9]{5,15}|nai-.+|.+)$"

6.1.3.2.3 Resource Standard Methods
6.1.3.2.3.1 GET

This method shall support the URI query parameters specified in table 6.1.3.2.3.1-1.

Table 6.1.3.2.3.1-1: URI query parameters supported by the GET method on this resource

Name

Data type

P

Cardinality

Description

Applicability

supported-features

SupportedFeatures

O

0..1

See clause 6.1.8, and 3GPP TS 29.500 [4] clause 6.6.

plmn-id

PlmnIdNid

M

1

Identity of the PLMN or SNPN serving the UE.

access-type

AccessType

O

0..1

Access type used by the UE.

This method shall support the request data structures specified in table 6.1.3.2.3.1-2 and the response data structures and response codes specified in table 6.1.3.2.3.1-3.

Table 6.1.3.2.3.1-2: Data structures supported by the GET Request Body on this resource

Data type

P

Cardinality

Description

n/a

Table 6.1.3.2.3.1-3: Data structures supported by the GET Response Body on this resource

Data type

P

Cardinality

Response

codes

Description

SorInformation

M

1

200 OK

Upon success, a response with "200 OK" status code and a response body containing the SoR information as requested by the NF consumer (e.g. UDM) shall be returned by the SOR-AF.

RedirectResponse

O

0..1

307 Temporary Redirect

Temporary redirection. The response shall include a Location header field containing a URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

(NOTE 2)

RedirectResponse

O

0..1

308 Permanent Redirect

Permanent redirection. The response shall include a Location header field containing a URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

(NOTE 2)

ProblemDetails

O

0..1

404 Not Found

The "cause" attribute may be set to one of the following application errors:

– USER_NOT_FOUND

NOTE 1: The manadatory HTTP error status code for the GET method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply.

NOTE 2: RedirectResponses may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4].

Table 6.1.3.2.3.1-4: Headers supported by the 200 Response Code on this resource

Name

Data type

P

Cardinality

Description

Cache-Control

string

M

1

The Cache-Control HTTP header is set to the value "no-cache" instructing the NF consumer (e.g. UDM) to not cache the received SoR information.

Table 6.1.3.2.3.1-5: Headers supported by the 307 Response Code on this endpoint

Name

Data type

P

Cardinality

Description

Location

string

M

1

A URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

Table 6.1.3.2.3.1-6: Headers supported by the 308 Response Code on this endpoint

Name

Data type

P

Cardinality

Description

Location

string

M

1

A URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

6.1.3.3 Resource: sor-ack

6.1.3.3.1 Description

This resource represents the notification from the NF consumer (e.g. UDM) of the reception status of the acknowledgment of successful reception of SoR information by the UE as specified in in Annex C of 3GPP°TS°23.122 [14].

6.1.3.3.2 Resource Definition

Resource URI: {apiRoot}/nsoraf-sor/v1/{supi}/sor-information/sor-ack

This resource shall support the resource URI variables defined in table 6.1.3.3.2-1.

Table 6.1.3.3.2-1: Resource URI variables for this resource

Name

Data type

Definition

apiRoot

string

See clause 6.1.1

supi

Supi

Represents the Subscription Permanent Identifier (see 3GPP TS 23.501 [2] clause 5.9.2)
pattern: "^(imsi-[0-9]{5,15}|nai-.+|.+)$"

6.1.3.3.3 Resource Standard Methods
6.1.3.3.3.1 PUT

This method shall support the URI query parameters specified in table 6.1.3.3.3.1-1.

Table 6.1.3.3.3.1-1: URI query parameters supported by the PUT method on this resource

Name

Data type

P

Cardinality

Description

Applicability

n/a

This method shall support the request data structures specified in table 6.1.3.3.3.1-2 and the response data structures and response codes specified in table 6.1.3.3.3.1-3.

Table 6.1.3.3.3.1-2: Data structures supported by the PUT Request Body on this resource

Data type

P

Cardinality

Description

SorAckInfo

M

1

Contains an indication on the reception status of the acknowledgment of successful reception of SoR information by the UE.

Table 6.1.3.3.3.1-3: Data structures supported by the PUT Response Body on this resource

Data type

P

Cardinality

Response

codes

Description

n/a

204 No Content

Upon success, a response with "204 No Content" status code shall be returned.

RedirectResponse

O

0..1

307 Temporary Redirect

Temporary redirection. The response shall include a Location header field containing a URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

(NOTE 2)

RedirectResponse

O

0..1

308 Permanent Redirect

Permanent redirection. The response shall include a Location header field containing a URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

(NOTE 2)

ProblemDetails

O

0..1

404 Not Found

The "cause" attribute may be set to the following application error:

– USER_NOT_FOUND

NOTE 1: The manadatory HTTP error status code for the PUT method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply.

NOTE 2: RedirectResponses may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4].

Table 6.1.3.3.3.1-4: Headers supported by the 307 Response Code on this endpoint

Name

Data type

P

Cardinality

Description

Location

string

M

1

A URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

Table 6.1.3.3.3.1-5: Headers supported by the 308 Response Code on this endpoint

Name

Data type

P

Cardinality

Description

Location

string

M

1

A URI pointing to a resource located on alternative SOR-AF or the initial target SOR-AF when this is a redirection triggered by an SCP via another SCP.

6.1.4 Custom Operations without associated resources

No custom operations without associated resources are defined for the Nsoraf_SOR Service.

6.1.5 Notifications

6.1.5.1 General

In this release of this specification, no notifications are defined for the Nsoraf_SOR Service.

6.1.6 Data Model

6.1.6.1 General

This clause specifies the application data model supported by the API.

Table 6.1.6.1-1 specifies the data types defined for the Nsoraf_SOR service based interface protocol.

Table 6.1.6.1-1: Nsoraf specific Data Types

Data type

Clause defined

Description

Applicability

SorInformation

6.1.6.2.2

Contains the SoR information to be conveyed to the UE.

SorAckInfo

6.1.6.2.3

Contains an indication to the SOR-AF on the reception status of the acknowledgment of successful reception of SoR Information by the UE.

SteeringContainer

6.1.6.2.x

It consists of either a list (array) of SteeringInfo objects, or a Secured Packet.

SteeringInfo

6.1.6.2.x

Contains a PLMN-ID, or SNPN-ID or a GIN, and, for the case of PLMNs, the preferred access technologies.

SorAckStatus

6.1.6.3.3

Contains the reception status of the acknowledgment of successful reception of SoR Information by the UE.

Table 6.1.6.1-2 specifies data types re-used by the Nsoraf_SOR service based interface protocol from other specifications, including a reference to their respective specifications and when needed, a short description of their use within the Nsoraf service based interface.

Table 6.1.6.1-2: Nsoraf re-used Data Types

Data type

Reference

Comments

Applicability

PlmnId

3GPP TS 29.571 [16]

PLMN Identity

PlmnIdNid

3GPP TS 29.571 [16]

SNPN Identity or GIN

ProblemDetails

3GPP TS 29.571 [16]

Common data type used in response bodies

RedirectResponse

3GPP TS 29.571 [10]

Redirect Response

SupportedFeatures

3GPP TS 29.571 [16]

see 3GPP TS 29.500 [4] clause 6.6

Supi

3GPP TS 29.571 [16]

Contains the SUPI information.

DateTime

3GPP TS 29.571 [16]

Date Time

AccessType

3GPP TS 29.571 [16]

Access type (e.g. 3GPP)

SorCmci

3GPP TS 29.503 [15]

Contains SOR-CMCI as defined in 3GPP TS 24.501 [18]

AccessTech

3GPP TS 29.509 [20]

List of access technologies

SecuredPacket

3GPP TS 29.509 [20]

Secured Packet

6.1.6.2 Structured data types

6.1.6.2.1 Introduction

This clause defines the structures to be used in resource representations.

6.1.6.2.2 Type: SorInformation

Table 6.1.6.2.2-1: Definition of type SorInformation

Attribute name

Data type

P

Cardinality

Description

Applicability

supportedFeatures

SupportedFeatures

O

0..1

Features supported by the SOR-AF (see clause 6.1.8).

steeringContainer

SteeringContainer

C

0..1

When present, this attribute contains the information needed to update the "Operator Controlled PLMN Selector with Access Technology" list stored in the UE, either as an array of preferred PLMN/Access Technologies combinations in priority order (with the first entry in the array indicating the highest priority and the last entry indicating the lowest) or a secured packet.

If no change of the "Operator Controlled PLMN Selector with Access Technology" list stored in the UE is needed, then this attribute shall be absent.

When the eNPN feature is supported, this IE may contain SOR information for SNPNs or GINs.

sorAckIndication

Boolean

M

1

This attribute indicates to the NF consumer (e.g. UDM) whether an Acknowledgment of successful reception of SoR information shall be requested to the UE (when set to "True") or not (when set to "False").

sorCmci

SorCmci

O

0..1

When present, provides the SOR-CMCI values as defined in 3GPP TS 24.501 [18]

If "ME Support of SOR-CMCI" as provided in meSupportOfSorCmci from UE to SOR-AF via AMF and UDM is not stored as "supported", then this attribute shall be absent.

Shall be absent if steeringContainer is provided with contents in secured packet.

storeSorCmciInMe

Boolean

O

0..1

When present, indicates "Store the SOR-CMCI in the ME" as supported as defined in 3GPP TS 23.122 [14] and 3GPP TS 24.501 [18].

If sorCmci is absent, then this attribute shall also be absent.

– True: Indicates to store the SOR-CMCI in the ME

– False or absent: Indicates storing the SOR-CMCI in the ME is not required

Shall be absent if steeringContainer is provided with contents in secured packet.

sorSendingTime

DateTime

M

1

Contains the date and time at which SOR-AF returns SorInformation.

It is used to correlate the SoR acknowledgement with the associated SoR information.

6.1.6.2.3 Type: SorAckInfo

Table 6.1.6.2.3-1: Definition of type SorAckInfo

Attribute name

Data type

P

Cardinality

Description

Applicability

sorAckStatus

SorAckStatus

M

1

Contains the reception status of the acknowledgment of successful reception of SoR Information by the UE.

sorSendingTime

DateTime

M

1

Contains the date and time at which SOR-AF sent the SorInformation to which the acknowledgment status relates.

meSupportOfSorCmci

Boolean

O

0..1

When present, indicates "ME support of SOR-CMCI" sent from UE to SOR-AF via AMF and UDM as defined in 3GPP TS 23.122 [14] and 3GPP TS 24.501 [18].

– True: ME supports SOR-CMCI

– False or absent: ME does not support SOR-CMCI

6.1.6.2.4 Type: SteeringContainer

Table 6.1.6.2.4.-1: Definition of type SteeringContainer as a list of mutually exclusive alternatives

Data type

Cardinality

Description

array(SteeringInfo)

1..N

List of PLMN/AccessTechnologies combinations.

SecuredPacket

1

A secured packet containing one or more APDUs commands dedicated to Remote File Management.

6.1.6.2.5 Type: SteeringInfo

Table 6.1.6.2.5-1: Definition of type SteeringInfo

Attribute name

Data type

P

Cardinality

Description

plmnId

PlmnId

C

0..1

Contains a preferred PLMN identity.

(NOTE)

snpnId

PlmnIdNid

C

0..1

Contains a preferred SNPN identity.

(NOTE)

gin

PlmnIdNid

C

0..1

Contains a preferred Group ID for Network Selection.

(NOTE)

accessTechList

array(AccessTech)

O

1..N

This IE is only applicable when plmnId is present, and it shall be absent when snpnId or gin are present.

It contains the preferred access technologies for such PLMN, as listed in clause 6.2.6.3.3 of 3GPP TS 29.509 [20]. If absent it means that all access technologies are equivalently preferred in such PLMN.

NOTE: Exactly one of plmnId, snpnId or gin shall be present.

6.1.6.3 Simple data types and enumerations

6.1.6.3.1 Introduction

This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.

6.1.6.3.2 Simple data types

The simple data types defined in table 6.1.6.3.2-1 shall be supported.

Table 6.1.6.3.2-1: Simple data types

Type Name

Type Definition

Description

Applicability

n/a

6.1.6.3.3 Enumeration: SorAckStatus

The enumeration SorAckStatus represents an indication to the SOR-AF on whether the acknowledgment of successful reception of SoR information was received from the UE. It shall comply with the provisions defined in table 6.1.6.3.3-1.

Table 6.1.6.3.3-1: Enumeration SorAckStatus

Enumeration value

Description

Applicability

"ACK_SUCCESSFUL"

Indicates to the SOR-AF that the acknowledgment of successful reception of SoR information was received from the UE and the integrity check was successful.

"ACK_NOT_RECEIVED"

Indicates to the SOR-AF that the acknowledgment of successful reception of SoR information was NOT received from the UE.

"ACK_NOT_SUCCESSFUL"

Indicates to the SOR-AF that the acknowledgment of successful reception of SoR information was received from the UE and the integrity check was NOT successful.

6.1.7 Error Handling

6.1.7.1 General

For the Nsoraf_SOR API, HTTP error responses shall be supported as specified in clause 4.8 of 3GPP TS 29.501 [5]. Protocol errors and application errors specified in table 5.2.7.2-1 of 3GPP TS 29.500 [4] shall be supported for an HTTP method if the corresponding HTTP status codes are specified as mandatory for that HTTP method in table 5.2.7.1-1 of 3GPP TS 29.500 [4].

In addition, the requirements in the following clauses are applicable for the Nsoraf_SOR API.

6.1.7.2 Protocol Errors

No specific procedures for the Nsoraf_SOR service are specified.

6.1.7.3 Application Errors

The application errors defined for the Nsoraf_SOR service are listed in Table 6.1.7.3-1.

Table 6.1.7.3-1: Application errors

Application Error

HTTP status code

Description

USER_NOT_FOUND

404 Not Found

The user does not exist

This error is applicable to all Nsoraf_SOR operations.

6.1.8 Feature negotiation

The optional features in table 6.1.8-1 are defined for the Nsoraf_SOR API. They shall be negotiated using the extensibility mechanism defined in clause 6.6 of 3GPP TS 29.500 [4].

Table 6.1.8-1: Supported Features

Feature number

Feature Name

Description

1

eNPN

If this feature is supported, the query parameter "plmn-id" (see Table 6.1.3.2.3.1-1) is recognized by the SOR-AF as a PLMN-ID or an SNPN-ID, and the steeringContainer attribute (see clause 6.1.6.2.2) returned by the SOR-AF may include SOR information for SNPNs.

If this feature is not supported, such query parameter is recognized by the SOR-AF as a PLMN-ID, and the steeringContainer attribute contains only SOR information for PLMNs.

6.1.9 Security

As indicated in 3GPP TS 33.501 [8] and 3GPP TS 29.500 [4], the access to the Nsoraf_SOR API may be authorized by means of the OAuth2 protocol (see IETF RFC 6749 [9]), based on local configuration, using the "Client Credentials" authorization grant, where the NRF (see 3GPP TS 29.510 [10]) plays the role of the authorization server.

If OAuth2 is used, an NF Service Consumer, prior to consuming services offered by the Nsoraf_SOR API, shall obtain a "token" from the authorization server, by invoking the Access Token Request service, as described in 3GPP TS 29.510 [10], clause 5.4.2.2.

NOTE: When multiple NRFs are deployed in a network, the NRF used as authorization server is the same NRF that the NF Service Consumer used for discovering the Nsoraf_SOR service.

The Nsoraf_SOR API defines a single scope "nsoraf-sor" for the entire service, and it does not define any additional scopes at resource or operation level.

Annex A (normative):
OpenAPI specification