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