6 API Definitions
29.5733GPP5G SystemPublic Land Mobile Network (PLMN) InterconnectionRelease 18Stage 3TS
6.1 N32 Handshake API
6.1.1 API URI
URIs of this API shall have the following root:
{apiRoot}/{apiName}/{apiVersion}
where "apiRoot" is defined in clause 4.4.1 of 3GPP TS 29.501 [5], the "apiName" shall be set to "n32c-handshake" and the "apiVersion" shall be set to "v1" for the current version of this specification.
6.1.2 Usage of HTTP
6.1.2.1 General
HTTP/2, as defined in IETF RFC 7540 [7], shall be used as specified in clause 4.3.2.1.
HTTP/2 shall be transported as specified in clause 4.3.3.
HTTP messages and bodies for the N32 handshake API shall comply with the OpenAPI [27] specification contained in Annex A.
6.1.2.2 HTTP standard headers
6.1.2.2.1 General
The HTTP standard headers as specified in clause 4.3.2.2 shall be supported for this API.
6.1.2.2.2 Content type
The following content types shall be supported:
– the JSON format (see IETF RFC 8259 [8]). The use of the JSON format shall be signalled by the content type "application/json". See also clause 5.3.4.
– the Problem Details JSON Object (see IETF RFC 7807 [22]). The use of the Problem Details JSON object in a HTTP response body shall be signalled by the content type "application/problem+json".
6.1.2.3 HTTP custom headers
6.1.2.3.1 General
In this release of the specification, no specific custom headers are defined for the N32 handshake API.
For 3GPP specific HTTP custom headers used across all service based interfaces, see clause 4.3.2.3.
6.1.3 Resources
6.1.3.1 Overview
There are no resources in this version of the N32 handshake API. All the operations are realized as custom operations without resources.
6.1.4 Custom Operations without Associated Resources
6.1.4.1 Overview
Table 6.1.4.1-1: Custom operations without associated resources
|
Operation Name |
Custom operation URI |
Mapped HTTP method |
Description |
|
Security Capability Negotiation |
/exchange-capability |
POST |
This is the N32 capability exchange API used to negotiate the security capabilities between SEPPs or tear down the N32-f TLS connection. |
|
Parameter Exchange |
/exchange-params |
POST |
This is the N32 parameter exchange API used to exchange the cipher suites and protection policies. |
|
N32-f Context Terminate |
/n32f-terminate |
POST |
This is the N32-f context termination procedure API. |
|
N32-f Error Reporting |
/n32f-error |
POST |
This is the N32-f error reporting procedure API. |
6.1.4.2 Operation: Security Capability Negotiation
6.1.4.2.1 Description
This custom operation is used between the SEPPs to negotiate their security capabilities or to tear down the N32-f connection when negotiated security scheme is TLS. The HTTP method POST shall be used on the following URI:
URI: {apiRoot}/n32c-handshake/v1/exchange-capability
This operation shall support the resource URI variables defined in table 6.1.4.2.1-1.
Table 6.1.4.2.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.1.4.2.2 Operation Definition
This operation shall support the request data structures and response codes specified in tables 6.2.4.2.2-1 and 6.2.4.2.2-2.
Table 6.1.4.2.2-1: Data structures supported by the POST Request Body
|
Data type |
P |
Cardinality |
Description |
|
SecNegotiateReqData |
M |
1 |
The IE shall contain the security capabilities of the initiating SEPP. |
Table 6.1.4.2.2-2: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
SecNegotiateRspData |
M |
1 |
200 OK |
This represents the successful processing of the requested security capabilities. The responding SEPP shall provide the security capabilities that it has selected, in the response. |
|
ProblemDetails |
O |
0..1 |
403 Forbidden |
The "cause" attribute may be used to indicate one of the following application errors: – REQUESTED_PURPOSE_NOT_ALLOWED When the receiving SEPP fails to negotiate the security capability, the "cause" attribute shall be set to "NEGOTIATION_NOT_ALLOWED". |
|
NOTE: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
6.1.4.3 Operation: Parameter Exchange
6.1.4.3.1 Description
This custom operation is used between the SEPPs to exchange the parameters for the N32-f connection. The HTTP method POST shall be used on the following URI:
URI: {apiRoot}/n32c-handshake/v1/exchange-params
This operation shall support the resource URI variables defined in table 6.1.4.3.1-1.
Table 6.1.4.3.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.1.4.3.2 Operation Definition
This operation shall support the request data structures and response codes specified in tables 6.1.4.3.2-1 and 6.1.4.3.2-2.
Table 6.1.4.3.2-1: Data structures supported by the POST Request Body
|
Data type |
P |
Cardinality |
Description |
|
SecParamExchReqData |
M |
1 |
The IE shall contain the parameters requested by the requesting SEPP. |
Table 6.1.4.3.2-2: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
SecParamExchRspData |
M |
1 |
200 OK |
This represents the successful processing of the requested parameters. The SEPP shall provide the selected parameters (i.e selected cipher suite and/or selected data type encryption policy) depending on what was requested by the requesting SEPP and what is supported by the responding SEPP, or the SEPP shall provide the modification policy and/or security information lists of the connected IPXs. |
|
ProblemDetails |
O |
0..1 |
409 Conflict |
The "cause" attribute may be used to indicate one of the following application errors: – REQUESTED_PARAM_MISMATCH |
|
NOTE: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
6.1.4.4 Operation: N32-f Context Terminate
6.1.4.4.1 Description
This custom operation is used between the SEPPs to terminate an N32-f context. The HTTP method POST shall be used on the following URI:
URI: {apiRoot}/n32c-handshake/v1/n32f-terminate
This operation shall support the resource URI variables defined in table 6.1.4.3.1-1.
Table 6.1.4.4.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.1.4.4.2 Operation Definition
This operation shall support the request data structures and response codes specified in tables 6.1.4.4.2-1 and 6.1.4.4.2-2.
Table 6.1.4.4.2-1: Data structures supported by the POST Request Body
|
Data type |
P |
Cardinality |
Description |
|
N32fContextInfo |
M |
1 |
The IE shall contain the information about the N32-f context requested to be terminated by the requesting SEPP. |
Table 6.1.4.4.2-2: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
N32fContextInfo |
M |
1 |
200 OK |
This represents the successful deletion of the request N32-f context. The responding SEPP shall return the "n32fContextId" it had towards the initiating SEPP, in this IE. |
|
NOTE: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
6.1.4.5 Operation: N32-f Error Reporting
6.1.4.5.1 Description
This custom operation is used between the SEPPs to report errors identified while processing the messages received on N32-f. The HTTP method POST shall be used on the following URI:
URI: {apiRoot}/n32c-handshake/v1/n32f-error
This operation shall support the resource URI variables defined in table 6.1.4.5.1-1.
Table 6.1.4.5.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.1.4.5.2 Operation Definition
This operation shall support the request data structures and response codes specified in tables 6.1.4.5.2-1 and 6.1.4.5.2-2.
Table 6.1.4.5.2-1: Data structures supported by the POST Request Body
|
Data type |
P |
Cardinality |
Description |
|
N32fErrorInfo |
M |
1 |
The IE shall contain the information about the N32-f message that failed to process at the SEPP initiating the N32-f error reporting procedure, together with information related to the nature of the error. |
Table 6.1.4.5.2-2: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
204 No Content |
This represents the successful processing of the N32-f error report at the receiving SEPP. |
|||
|
NOTE: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
6.1.5 Data Model
6.1.5.1 General
This clause specifies the application data model supported by the API.
Table 6.1.5.1-1 specifies the data types defined for the N32 interface.
Table 6.1.5.1-1: N32 specific Data Types
|
Data type |
Clause defined |
Description |
|
SecNegotiateReqData |
6.1.5.2.2 |
Defines the security capabilities of a SEPP sent to a receiving SEPP. |
|
SecNegotiateRspData |
6.1.5.2.3 |
Defines the selected security capabilities by a SEPP. |
|
SecurityCapability |
6.1.5.3.3 |
Enumeration of security capabilities. |
|
SecParamExchReqData |
6.1.5.2.4 |
Request data structure for parameter exchange |
|
SecParamExchRspData |
6.1.5.2.5 |
Response data structure for parameter exchange |
|
ProtectionPolicy |
6.1.5.2.6 |
The protection policy to be negotiated between the SEPPs. |
|
ApiIeMapping |
6.1.5.2.7 |
API URI to IE mapping on which the protection policy needs to be applied. |
|
IeInfo |
6.1.5.2.8 |
Protection and modification policy for the IE |
|
ApiSignature |
6.1.5.2.9 |
API URI of the service operation |
|
N32fContextInfo |
6.1.5.2.10 |
N32-f context information |
|
N32fErrorInfo |
6.1.5.2.11 |
N32-f error information. |
|
FailedModificationInfo |
6.1.5.2.12 |
Information on N32-f modifications block that failed to process. |
|
N32fErrorDetail |
6.1.5.2.13 |
Details about the N32f error. |
|
CallbackName |
6.1.5.2.14 |
Callback Name. |
|
IpxProviderSecInfo |
6.1.5.2.15 |
Defines the security information list of an IPX. |
|
IntendedN32Purpose |
6.1.5.2.16 |
Defines the intended N32 establishment purpose. |
|
HttpMethod |
6.1.5.3.4 |
Enumeration of HTTP methods. |
|
IeType |
6.1.5.3.5 |
Enumeration of types of IEs (i.e kind of IE) to specify the protection policy. |
|
IeLocation |
6.1.5.3.6 |
Location of the IE in a HTTP message. |
|
N32fErrorType |
6.1.5.3.7 |
Type of error while processing N32-f message. |
|
FailureReason |
6.1.5.3.8 |
Reason for failure to reconstruct a HTTP/2 message from N32-f message. |
Table 6.1.5.1-2 specifies data types re-used by the N32 interface protocol from other specifications, including a reference to their respective specifications and when needed, a short description of their use within the Namf service based interface.
Table 6.1.5.1-2: N32 re-used Data Types
|
Data type |
Reference |
Comments |
|
Fqdn |
3GPP TS 29.571 [12] |
|
|
SupportedFeatures |
3GPP TS 29.571 [12] |
Used to negotiate the applicability of the optional features defined in table 6.1.7-1. |
6.1.5.2 Structured data types
6.1.5.2.1 Introduction
This clause defines the structures to be used in the N32 Handshake API.
6.1.5.2.2 Type: SecNegotiateReqData
Table 6.1.5.2.2-1: Definition of type SecNegotiateReqData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
sender |
Fqdn |
M |
1 |
This IE shall uniquely identify the SEPP that is sending the request. This IE is used to identify and store the negotiated security capability against the right SEPP. |
|
supportedSecCapabilityList |
array(SecurityCapability) |
M |
1..N |
This IE shall contain the list of security capabilities that the requesting SEPP supports. To tear down the N32-f TLS connection, this IE shall set SecurityCapability as "NONE". |
|
3GppSbiTargetApiRootSupported |
boolean |
C |
0..1 |
This IE should be present and indicate that the 3gpp-Sbi-Target-apiRoot HTTP header is supported, if TLS security is supported for N32f message forwarding. When present, it shall indicate if TLS security using the 3gpp-Sbi-Target-apiRoot HTTP header is supported: – true: supported – false (default): not supported (NOTE 1) |
|
plmnIdList |
array(PlmnId) |
O |
1..N |
A list of PLMN IDs associated with the SEPP, which is sending the request. The list to be stored by the receiving SEPP in a N32-f Context (see clause 5.9.3 in 3GPP TS 33.501 [6]) |
|
snpnIdList |
array(PlmnIdNid) |
O |
1..N |
A list of SNPN IDs associated with the SEPP, which is sending the request. The list to be stored by the receiving SEPP in a N32-f Context (see clause 5.9.3 in 3GPP TS 33.501 [6]) |
|
targetPlmnId |
PlmnId |
O |
1 |
When present, this IE shall contain a PLMN ID of the target SEPP. See clause 5.2.2 step 1. |
|
targetSnpnId |
PlmnIdNid |
O |
0..1 |
When present, this IE shall contain a SNPN ID of the target SEPP. See clause 5.2.2 step 1. |
|
intendedUsagePurpose |
array(IntendedN32Purpose) |
O |
1..N |
This attribute notifies the list of requested usage purpose the N32 is established for. |
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.1.7 is supported |
|
senderN32fFqdn |
Fqdn |
O |
0..1 |
This IE may be present if TLS is present in the supportedSecCapabilityList IE, and the sending SEPP wishes the receiving SEPP to establish the N32-f connection towards a specific FQDN, if TLS is selected as the security option for N32-f. (NOTE 2) |
|
senderN32fPort |
Uinteger |
O |
0..1 |
This IE may be present if TLS is present in the supportedSecCapabilityList IE, and the sending SEPP wishes the receiving SEPP to establish the N32-f connection using a specific port number, if TLS is selected as the security option for N32-f. (NOTE 3) |
|
NOTE 1: The attribute name does not follow the naming conventions specified in 3GPP TS 29.501 [5]. The attribute name is kept though as defined in the current specification for backward compatibility reason. NOTE 2: If the senderN32fFqdn IE is absent, the receiving SEPP establishes the N32-f connection towards the sending SEPP using the N32-c FQDN and/or local configuration. SEPP implementations complying with earlier releases of the specification may not support this IE. NOTE 3: If the senderN32fPort IE is absent, the receiving SEPP shall use a locally configured port if any, otherwise the default HTTPs port number, i.e., TCP port 443 for "https" URIs as specified in IETF RFC 7540 [7]. SEPP implementations complying with earlier releases of the specification may not support this IE. |
||||
6.1.5.2.3 Type: SecNegotiateRspData
Table 6.1.5.2.3-1: Definition of type SecNegotiateRspData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
sender |
Fqdn |
M |
1 |
This IE shall uniquely identify the SEPP that is sending the response. This IE is used to identify and store the negotiated security capability against the right SEPP. |
|
selectedSecCapability |
SecurityCapability |
M |
1 |
This IE shall contain the security capability selected by the responding SEPP. When the request is for tearing down the N32-f TLS connection, the responding SEPP shall add SecurityCapability as "NONE". |
|
3GppSbiTargetApiRootSupported |
boolean |
C |
0..1 |
This IE should be present and indicate that the 3gpp-Sbi-Target-apiRoot HTTP header is supported, if TLS security is negotiated for N32f message forwarding and the initiating SEPP indicated support of this header. When present, it shall indicate if TLS security using the 3gpp-Sbi-Target-apiRoot HTTP header is supported: – true: supported – false (default): not supported (NOTE 1) |
|
plmnIdList |
array(PlmnId) |
O |
1..N |
A list of PLMN IDs of a single PLMN associated with the SEPP, which is sending the response. The list to be stored by the receiving SEPP in a N32-f Context (see clause 5.9.3 in 3GPP TS 33.501 [6]). If different PLMNs are represented by different PLMN IDs supported by a SEPP, then the SEPP shall select the PLMN as specified in clause 5.2.2 step 2a. |
|
snpnIdList |
array(PlmnIdNid) |
O |
1..N |
A list of SNPN IDs of a single SNPN associated with the SEPP, which is sending the response. The list to be stored by the receiving SEPP in a N32-f Context (see clause 5.9.3 in 3GPP TS 33.501 [6]). If different SNPNs are represented by different SNPN IDs supported by a SEPP, then the SEPP shall select the SNPN as specified in clause 5.2.2 step 2a. |
|
allowedUsagePurpose |
array(IntendedN32Purpose) |
O |
1..N |
This attribute notifies the list of allowed usage purpose the N32 is established for. IntendedN32Purpose shall not include attribute "cause". |
|
rejectedUsagePurpose |
array(IntendedN32Purpose) |
O |
1..N |
This attribute notifies the list of rejected usage purpose the N32 is established for. Shall only be present if any of the requested usage purpose is rejected. |
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.1.7 is supported |
|
senderN32fFqdn |
Fqdn |
O |
0..1 |
This IE may be present if TLS is present in the selectedSecCapability IE, and the sending SEPP wishes the receiving SEPP to establish the N32-f connection towards a specific FQDN. (NOTE 2) |
|
senderN32fPort |
Uinteger |
O |
0..1 |
This IE may be present if TLS is present in the supportedSecCapabilityList IE, and the sending SEPP wishes the receiving SEPP to establish the N32-f connection using a specific port number. (NOTE 3) |
|
NOTE 1: The attribute name does not follow the naming conventions specified in 3GPP TS 29.501 [5]. The attribute name is kept though as defined in the current specification for backward compatibility reason. NOTE 2: If the senderN32fFqdn IE is absent, the receiving SEPP establishes the N32-f connection towards the sending SEPP using the N32-c FQDN and/or local configuration. SEPP implementations complying with earlier releases of the specification may not support this IE. NOTE 3: If the senderN32fPort number is absent, the receiving SEPP shall use a locally configured port, if any, otherwise the default HTTPs port number, i.e., TCP port 443 for "https" URIs as specified in IETF RFC 7540 [7]. SEPP implementations complying with earlier releases of the specification may not support this IE. |
||||
6.1.5.2.4 Type: SecParamExchReqData
Table 6.1.5.2.4-1: Definition of type SecParamExchReqData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
n32fContextId |
string |
M |
1 |
This IE shall contain the context identifier to be used by the responding SEPP for subsequent JOSE protected message forwarding procedure over N32-f towards the initiating SEPP. The initiating SEPP shall use this context identifier to locate the cipher suite and protection policy exchanged and agreed to be used with the responding SEPP, for the message forwarding procedure over N32-f. The n32fContextId shall encode a 64-bit integer in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent 4 bits. The most significant character representing the 4 most significant bits of the N32-f context Id shall appear first in the string, and the character representing the 4 least significant bit of the N32-f context Id shall appear last in the string. Pattern: ‘^[A-Fa-f0-9]{16}$’ Example: "0600AD1855BD6007". |
|
jweCipherSuiteList |
array(string) |
C |
1..N |
This IE shall be present during the parameter exchange procedure for cipher suite negotiation (see clause 5.2.3.2). When present, this IE shall contain the ordered list of JWE cipher suites supported by the requesting SEPP. Valid values for the string are as specified in clause 5.1 of IETF RFC 7518 [13]. |
|
jwsCipherSuiteList |
array(string) |
C |
1..N |
This IE shall be present during the parameter exchange procedure for cipher suite negotiation (see clause 5.2.3.2). When present, this IE shall contain the ordered list of JWS cipher suites supported by the requesting SEPP. Valid values for the string are as specified in clause 3.1 of IETF RFC 7518 [13]. |
|
protectionPolicyInfo |
ProtectionPolicy |
C |
0..1 |
This IE shall be present during the parameter exchange procedure for protection policy exchange (see clause 5.2.3.3). When present, this IE shall contain the data type encryption policy requested by the requesting SEPP and/or the modification policy supported by the IPX(s) on the side of the requesting SEPP. |
|
ipxProviderSecInfoList |
array(IpxProviderSecInfo) |
C |
1..N |
This IE includes the list of IPX security information. |
|
sender |
Fqdn |
C |
0..1 |
This IE shall be present if the Parameter Exchange request is sent on a different N32-c HTTP connection than the one used to perform the Security Capability Negotiation procedure. It may be present otherwise. When present, it shall uniquely identify the SEPP that is sending the request. This IE is used to store the exchanged parameters against the right SEPP. |
6.1.5.2.5 Type: SecParamExchRspData
Table 6.1.5.2.5-1: Definition of type SecParamExchRspData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
n32fContextId |
string |
M |
1 |
This IE shall contain the context identifier to be used by the initiating SEPP for subsequent JOSE protected message forwarding procedure over N32-f towards the responding SEPP. The responding SEPP shall use this context identifier to locate the cipher suite and protection policy exchanged and agreed to be used with the initiating SEPP, for the message forwarding procedure over N32-f. The n32fContextId shall encode a 64-bit integer in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent 4 bits. The most significant character representing the 4 most significant bits of the N32-f context Id shall appear first in the string, and the character representing the 4 least significant bit of the N32-f context Id shall appear last in the string. Pattern: ‘^[A-Fa-f0-9]{16}$’ Example: "0600AD1855BD6007". |
|
selectedJweCipherSuite |
string |
C |
1 |
This IE shall be present during the parameter exchange procedure for cipher suite negotiation (see clause 5.2.3.2). When present, this IE shall contain the JWE cipher suite selected by the responding SEPP. |
|
selectedJwsCipherSuite |
string |
C |
1 |
This IE shall be present during the parameter exchange procedure for cipher suite negotiation (see clause 5.2.3.2). When present, this IE shall contain the JWS cipher suite selected by the responding SEPP. |
|
selProtectionPolicyInfo |
ProtectionPolicy |
C |
0..1 |
This IE shall be present during the parameter exchange procedure for protection policy exchange (see clause 5.2.3.3). When present, this IE shall contain the data type encryption policy selected by the responding SEPP and/or the modification policy supported by the IPX(s) on the side of the responding SEPP. |
|
ipxProviderSecInfoList |
array(IpxProviderSecInfo) |
C |
1..N |
This IE includes the list of IPX security information. |
|
sender |
Fqdn |
C |
0..1 |
This IE shall be present if the Parameter Exchange response is sent on a different N32-c HTTP connection than the one used to perform the Security Capability Negotiation procedure. It may be present otherwise. When present, it shall uniquely identify the SEPP that is sending the response. This IE is used to store the exchanged parameters against the right SEPP. |
6.1.5.2.6 Type: ProtectionPolicy
Table 6.1.5.2.6-1: Definition of type ProtectionPolicy
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
apiIeMappingList |
array(ApiIeMapping) |
M |
1..N |
Contains an array of API URI to IE type – IE name mapping. The mapping includes an indication against each IE if that IE is allowed to be modified by the IPX on the side of the SEPP or not. |
|
dataTypeEncPolicy |
array(IeType) |
C |
1..N |
This IE shall be present when the SEPPs need to exchange the IE protection policies. When present, this IE shall contain the list of IE types that the SEPP intends to protect by ciphering. |
6.1.5.2.7 Type: ApiIeMapping
Table 6.1.5.2.7-1: Definition of type ApiIeMapping
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
apiSignature |
ApiSignature |
M |
1 |
This IE shall contain: – The API URI of the NF service operations following request/response semantic; or – The API URI of the subscribe / unsubscribe service operation |
|
apiMethod |
HttpMethod |
M |
1 |
This IE shall contain the HTTP method used by the API. |
|
IeList |
array(IeInfo) |
M |
1..N |
This IE shall contain the array of Ies in the API. (NOTE) |
|
NOTE: The attribute name does not follow the naming conventions specified in 3GPP TS 29.501 [5]. The attribute name is kept though as defined in the current specification for backward compatibility reason. |
||||
6.1.5.2.8 Type: IeInfo
Table 6.1.5.2.8-1: Definition of type IeInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
ieLoc |
IeLocation |
M |
1 |
This IE shall contain the location of the IE mentioned in "reqBodyIePath" or "rspBodyIePath" (i.e URI parameter or JSON body or multipart message) |
|
ieType |
IeType |
M |
1 |
This IE shall contain the type of the IE, representing the nature of the information the IE is carrying. |
|
reqIe |
string |
C |
0..1 |
This IE shall be included when the Ies in HTTP/2 request messages of an API need to be protected when forwarded over N32-f. When present, this IE shall contain: – The JSON pointer representation of the IE to be protected, if the "ieLoc" indicates "BODY". Only the JSON pointer of the leaf IEs are included; – The name of the URI query attribute to be protected, if the "ieLoc" indicates "URI_PARAM"; – The name of the HTTP header, if the "ieLoc" indicates "HEADER"; – The JSON pointer representation of the attribute defined with the RefToBinaryData type if the "ieLoc" indicates "MULTIPART_BINARY". It shall be encoded as: <JSON Pointer of the attribute defined with the RefToBinaryData type>/data. |
|
rspIe |
string |
C |
0..1 |
This IE shall be included when the IEs in HTTP/2 response messages of an API need to be protected when forwarded over N32-f. When present, this IE shall contain: – The JSON pointer representation of the IE to be protected, if the "ieLoc" indicates "BODY". Only the JSON pointer of the leaf IEs are included; – The name of the URI query attribute to be protected, if the "ieLoc" indicates "URI_PARAM"; – The name of the HTTP header, if the "ieLoc" indicates "HEADER"; – The JSON pointer representation of the attribute defined with the RefToBinaryData type if the "ieLoc" indicates "MULTIPART_BINARY". It shall be encoded as: <JSON Pointer of the attribute defined with the RefToBinaryData type>/data. |
|
isModifiable |
boolean |
C |
0..1 |
This IE shall be included if the IE is allowed to be modified by all IPX(s) on the side of the SEPP sending the API IE mapping. When present, – true, indicates that the IE is allowed to be modified by all IPX(s) on the side of the SEPP; – false, indicates that the IE is not allowed to be modified by any IPX on the side of the SEPP; – default is false. When the IE is not included, the default value shall be applied. (NOTE) |
|
isModifiableByIpx |
map(boolean) |
C |
0..1 |
This IE shall be included if the IE is allowed to be modified by some of (but not all) the IPX(s) on the side of the SEPP sending the API IE mapping. The key of the map is the ipxProviderId for which the boolean applies. When present, each element carries the isModifiable indication for the IPX indicated by the key. (NOTE) |
|
NOTE: Either isModifiable or isModifiableByIpx may be present, but not both. |
||||
6.1.5.2.9 Type: ApiSignature
Table 6.1.5.2.9-1: Definition of type ApiSignature as a list of "mutually exclusive alternatives"
|
Data type |
Cardinality |
Description |
Applicability |
|
Uri |
1 |
API URI of a request/response or subscribe/unsubscribe NF service operation as specified in the respective API specification with the variable parts other than {apiVersion} unresolved. Examples: "{apiRoot}/nsmf-pdusession/v1/sm-contexts", for the SMF PDUSession Create SM Context service operation. "{apiRoot}/nsmf-pdusession/v1/sm-contexts/{smContextRef}/modify", for the SMF PDUSession Update SM Context service operation. . |
|
|
CallbackName |
1 |
A value identifying the type of callback. |
6.1.5.2.10 Type: N32fContextInfo
Table 6.1.5.2.10-1: Definition of type N32fContextInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
n32fContextId |
string |
M |
1 |
This IE shall contain the N32-f context identifier of the receiving SEPP. The n32fContextId shall encode a 64-bit integer in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent 4 bits. The most significant character representing the 4 most significant bits of the N32-f context Id shall appear first in the string, and the character representing the 4 least significant bit of the N32-f context Id shall appear last in the string. Pattern: ‘^[A-Fa-f0-9]{16}$’ Example: "0600AD1855BD6007". |
6.1.5.2.11 Type: N32fErrorInfo
Table 6.1.5.2.11-1: Definition of type N32fErrorInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
n32fMessageId |
string |
M |
1 |
This IE shall contain the N32-f message identifier received over N32-f (see clause 6.2.5.2.9). |
|
n32fErrorType |
N32fErrorType |
M |
1 |
This IE shall contain the type of processing error encountered by the SEPP initiating the N32-f error reporting procedure. |
|
n32fContextId |
string |
C |
0..1 |
This IE shall be present if available. When present, this IE shall contain the n32fContextId of the SEPP receiving N32-f error reporting message, which is exchanged between the SEPPs during the parameter exchange procedure (see clause 5.2.3). The n32fContextId shall encode a 64-bit integer in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent 4 bits. The most significant character representing the 4 most significant bits of the N32-f context Id shall appear first in the string, and the character representing the 4 least significant bit of the N32-f context Id shall appear last in the string. Pattern: ‘^[A-Fa-f0-9]{16}$’ Example: "0600AD1855BD6007". |
|
failedModificationList |
array(FailedModificationInfo) |
C |
1..N |
This IE shall be present if the n32ErrorType is "INTEGRITY_CHECK_ON_MODIFICATIONS_FAILED" or "MODIFICATIONS_INSTRUCTIONS_FAILED". When present this IE shall contain a list of FQDNs of the IPX-es whose inserted modifications failed to process at the SEPP initiating the N32-f error reporting procedure, together with the reason for the failure to process. |
|
errorDetailsList |
array(N32fErrorDetail) |
O |
1..N |
This IE may be included when the n32ErrorType IE indicates "MESSAGE_RECONSTRUCTION_FAILED ". When present, this IE shall contain a list of JSON pointers to the IEs that failed to process together with the reason for the failure to process that IE. |
6.1.5.2.12 Type: FailedModificationInfo
Table 6.1.5.2.12-1: Definition of type FailedModificationInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
ipxId |
Fqdn |
M |
1 |
This IE shall identify the IPX. |
|
n32fErrorType |
N32fErrorType |
M |
1 |
This IE shall contain the type of processing error on the modifications block, encountered by the SEPP initiating the N32-f error reporting procedure. The value shall be one of the following: INTEGRITY_CHECK_ON_MODIFICATIONS_FAILED; MODIFICATIONS_INSTRUCTIONS_FAILED |
6.1.5.2.13 Type: N32fErrorDetail
Table 6.1.5.2.13-1: Definition of type N32fErrorDetail
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
attribute |
string |
M |
1 |
Contains either a HTTP header name or the JSON pointer of an attribute within the N32-f message that failed to reconstruct. The value shall be one of the values of the iePath attribtue (see clause 6.2.5.2.8) in the received N32-f message. |
|
msgReconstructFailReason |
FailureReason |
M |
1 |
Indicates the reason for the failure to reconstruct the attribute. |
6.1.5.2.14 Type: CallbackName
Table 6.1.5.2.14-1: Definition of type CallbackName
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
callbackType |
string |
M |
1 |
This IE shall contain a string identifying the type of callback. The value shall be one of the values specified in 3GPP 29.500 [4], Annex B. |
6.1.5.2.15 Type: IpxProviderSecInfo
Table 6.1.5.2.15-1: Definition of type IpxProviderSecInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
ipxProviderId |
Fqdn |
M |
1 |
This IE shall uniquely identify the IPX. |
|
rawPublicKeyList |
array(string) |
C |
1..N |
This IE includes the list of raw public keys for the IPX. When present, each array item shall contain a raw public key for the IPX, with textual encoding as specified in clause 13 of IETF RFC 7468 [21]. |
|
certificateList |
array(string) |
C |
1..N |
This IE includes the list of certificates for the IPX. When present, each array item shall contain a certificate for the IPX, with textual encoding as specified in IETF RFC 7468 [21]. |
|
NOTE: Either the rawPublicKeyList attribute, or the certificateList attribute, shall be present. |
||||
6.1.5.2.16 Type: IntendedN32Purpose
Table 6.1.5.2.16-1: Definition of type IntendedN32Purpose
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
usagePurpose |
N32Purpose |
M |
1 |
This attribute provides the one purpose of the intended N32 establishment. |
|
additionalInfo |
String |
O |
0..1 |
This attribute provides any additional information necessary to characterize the intention for N32 establishment. |
|
cause |
String |
O |
0..1 |
This attribute, if present, provided the reason for the reject for the purpose described in other attributes are rejected (e.g. "NO_CONTRACT"). This attribute shall be absent if the intended purpose is allowed. |
6.1.5.3 Simple data types and enumerations
6.1.5.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.5.3.2 Simple data types
The simple data types defined in table 6.1.5.3.2-1 shall be supported.
Table 6.1.5.3.2-1: Simple data types
|
Type Name |
Type Definition |
Description |
6.1.5.3.3 Enumeration: SecurityCapability
Table 6.1.5.3.3-1: Enumeration SecurityCapability
|
Enumeration value |
Description |
Applicability |
|
"TLS" |
TLS security. |
|
|
"PRINS" |
PRotocol for N32 INterconnect Security. |
|
|
"NONE" |
N32-f TLS connection termination |
NFTLST |
6.1.5.3.4 Enumeration: HttpMethod
Table 6.1.5.3.4-1: Enumeration HttpMethod
|
Enumeration value |
Description |
|
"GET" |
HTTP GET Method. |
|
"PUT" |
HTTP PUT Method. |
|
"POST" |
HTTP POST Method. |
|
"DELETE" |
HTTP DELETE Method. |
|
"PATCH" |
HTTP PATCH Method. |
|
"HEAD" |
HTTP HEAD Method. |
|
"OPTIONS" |
HTTP OPTIONS Method. |
|
"CONNECT" |
HTTP CONNECT Method. |
|
"TRACE" |
HTTP TRACE Method. |
6.1.5.3.5 Enumeration: IeType
Table 6.1.5.3.5-1: Enumeration IeType
|
Enumeration value |
Description |
|
"UEID" |
These are IEs which carry the UE identity (i.e. SUPI and GPSI). This also includes the long-lasting identity Charging ID. An example of a UEID IE is gpsi IE defined in 3GPP TS 29.518 [25]. |
|
"LOCATION" |
These are IEs which carry location information (i.e. cell-id and TAI). An example of a LOCATION IE is ncgi IE defined in 3GPP TS 29.571 [12]. |
|
"KEY_MATERIAL" |
These are IEs which carry keying material as KSEAF and UPU related information. An example of a KEY_MATERIAL IE is upuInfo IE defined in 3GPP TS 29.503 [26]. |
|
"AUTHENTICATION_MATERIAL" |
These are IEs which carry authentication material like authentication vectors and EAP payload. An example of an AUTHENTICATION_MATERIAL IE is authenticationVector IE defined in 3GPP TS 29.503 [26]. |
|
"AUTHORIZATION_TOKEN" |
These are IEs which carry authorization Token. The oauth2 access_token would be of this type. An example of an AUTHORIZATION_TOKEN IE is access_token IE defined in 3GPP TS 29.510 [18]. |
|
"OTHER" |
These are IEs which do not fall into one of the above types, but they would be considered sensitive, and which protection policies may wish to apply confidentiality protection. |
|
"NONSENSITIVE" |
These are IEs which carry information that are not sensitive. A protection policy would not normally encrypt (confidentiality protect) these. |
6.1.5.3.6 Enumeration: IeLocation
Table 6.1.5.3.6-1: Enumeration IeLocation
|
Enumeration value |
Description |
|
"URI_PARAM" |
IE is located in the URI parameters. |
|
"HEADER" |
IE is located in the HTTP header. |
|
"BODY" |
IE is located in the body. |
|
"MULTIPART_BINARY" |
IE is located in the message body but encoded as a multipart message information in binary format. |
6.1.5.3.7 Enumeration: N32fErrorType
Table 6.1.5.3.7-1: Enumeration N32fErrorType
|
Enumeration value |
Description |
|
"INTEGRITY_CHECK_FAILED" |
The integrity check verification on the received N32-f message failed. |
|
"INTEGRITY_CHECK_ON_MODIFICATIONS_FAILED" |
The integrity check verification on the modifications block of the received N32-f message failed. |
|
"MODIFICATIONS_INSTRUCTIONS_FAILED" |
Failed to apply the JSON patch instructions in the modifications block of the received N32-f message, e.g. the references to encBlockIndex is inserted or relocated by IPX (see clause 5.9.3.2 of 3GPP TS 33.501 [6]). |
|
"DECIPHERING_FAILED" |
The deciphering of the encrypted block of the received N32-f message failed. |
|
"MESSAGE_RECONSTRUCTION_FAILED" |
The reconstruction of the original HTTP/2 message from the received N32-f message failed. |
|
"CONTEXT_NOT_FOUND" |
The n32fContextId is unknown in the receiving SEPP. (NOTE) |
|
"INTEGRITY_KEY_EXPIRED" |
The integrity keys in the receiving SEPP have expired. |
|
"ENCRYPTION_KEY_EXPIRED" |
The encryption keys in the receiving SEPP have expired. |
|
"POLICY_MISMATCH" |
The encryption policy verification on the received N32-f message has failed, e.g. protected IEs are not ciphered, or unprotected IEs are ciphered. |
|
NOTE: This enumeration value is deprecated and shall not be used by N32-f error reporting procedure over the N32-c interface. |
|
6.1.5.3.8 Enumeration: FailureReason
Table 6.1.5.3.8-1: Enumeration FailureReason
|
Enumeration value |
Description |
|
"INVALID_JSON_POINTER" |
The JSON pointer value in iePath attribute (see clause 6.2.5.2.8) is invalid. |
|
"INVALID_INDEX_TO_ENCRYPTED_BLOCK" |
The value part of the HttpPayload attribute (see clause 6.2.5.2.8) or HttpHeader attribute (see clause 6.2.5.2.7) is pointing to an invalid index to the encrypted block. |
|
"INVALID_HTTP_HEADER" |
The name of the header in the received HttpHeader attribute is invalid. |
6.1.5.3.9 Enumeration: N32Purpose
Table 6.1.5.3.9-1: Enumeration N32Purpose
|
Enumeration value |
Description |
|
"ROAMING" |
Usage dedicated to roaming |
|
"INTER_PLMN_MOBILITY" |
Usage corresponding to any inter-mobility transactions |
|
"SMS_INTERCONNECT" |
Usage dedicated to SMS interconnect, e.g. SMS sent between subscribers of two different networks |
|
"ROAMING_TEST" |
Usage dedicated to roaming, and allowed only for tests, e.g. to allow traffic for test subscribers/SUPI or sessions |
|
"INTER_PLMN_MOBILITY_TEST" |
Usage corresponding to any inter-mobility transactions and allowed only for tests, e.g. to allow traffic for test subscribers/SUPI or sessions |
|
"SMS_INTERCONNECT_TEST" |
Usage dedicated to SMS interconnect, e.g. SMS sent between subscribers of two different networks, and allowed only for tests, e.g. to allow traffic for test subscribers/SUPI or sessions |
|
"SNPN_INTERCONNECT" |
Usage dedicated to an interconnection with an SNPN |
|
"SNPN_INTERCONNECT_TEST" |
Usage corresponding to any interconnection with an SNPN and allowed only for tests, e.g. to allow traffic for test subscribers/SUPI or sessions |
|
"DISASTER_ROAMING" |
Usage dedicated to Disaster Roaming (see clause 5.40 of 3GPP TS 23.501 [2]). |
|
"DISASTER_ROAMING_TEST" |
Usage dedicated to Disaster Roaming (see clause 5.40 of 3GPP TS 23.501 [2]) and allowed only for tests, e.g. to allow traffic for test subscribers/SUPI or sessions. |
6.1.5.4 Binary data
There are no multipart/binary part used on the N32-c API(s) in this release of this specification.
6.1.6 Error Handling
6.1.6.1 General
HTTP error handling shall be supported as specified in clause 5.2.4 of 3GPP TS 29.500 [4].
6.1.6.2 Protocol Errors
Protocol Error Handling shall be supported as specified in clause 5.2.7.2 of 3GPP TS 29.500 [4].
6.1.6.3 Application Errors
The common application errors defined in the Table 5.2.7.2-1 in 3GPP TS 29.500 [4] may also be used for the N32-c Handshake service. The following application errors listed in Table 6.1.6.3-1 are specific for the N32-c Handshake service.
Table 6.1.6.3-1: Application errors
|
Application Error |
HTTP status code |
Description |
|
REQUESTED_PARAM_MISMATCH |
409 Conflict |
This represents a parameter mismatch has been detected by the receiving SEPP, i.e. received data-type encryption or modification policy conflict with the one manually configured for the specific roaming partner, interconnect partner and IPX provider |
|
REQUESTED_PURPOSE_NOT_ALLOWED |
403 Forbidden |
This represents that all the requested purposes included in the request was rejected by the receiving SEPP. |
|
NEGOTIATION_NOT_ALLOWED |
403 Forbidden |
This represents a security capability negotiation failure at the receiving SEPP, i.e., the received security capability from the peer SEPP is not configured to be supported at the receiving SEPP. |
6.1.7 Feature Negotiation
The feature negotiation mechanism specified in clause 6.6 of 3GPP TS 29.500 [4] shall be used to negotiate the optional features applicable between the c-SEPP and the p-SEPP, for the N32 Handshake service, if any.
The c-SEPP shall indicate the optional features it supports for the N32 Handshake service, if any, by including the supportedFeatures attribute in the HTTP POST request message for following service operations:
– Security Capability Negotiation procedure, as specified in clause 5.2.2 to negotiate the security capability;
The p-SEPP shall determine the supported features for the requested network as specified in clause 6.6 of 3GPP TS 29.500 [4] and shall indicate the supported features by including the supportedFeatures attribute in payload of the HTTP response for the service operation.
The syntax of the supportedFeatures attribute is defined in clause 5.2.2 of 3GPP TS 29.571 [12].
The following features are defined for the N32 Handshake service.
Table 6.1.7-1: Features of supportedFeatures attribute used by N32 Handshake service
|
Feature Number |
Feature |
M/O |
Description |
|
1 |
NFTLST |
O |
N32-f TLS Connection Termination Support A SEPP that supports this feature shall support handling of Security Capability Negotiation procedure to tear down the N32-f TLS connection as specified in clause 5.2.2). |
|
Feature number: The order number of the feature within the supportedFeatures attribute (starting with 1). Feature: A short name that can be used to refer to the bit and to the feature. M/O: Defines if the implementation of the feature is mandatory ("M") or optional ("O"). Description: A clear textual description of the feature. |
|||
6.2 JOSE Protected Message Forwarding API on N32
6.2.1 API URI
URIs of this API shall have the following root:
{apiRoot}/{apiName}/{apiVersion}
where "apiRoot" is defined in clause 4.4.1 of 3GPP TS 29.501 [5]. The apiRoot to use towards a SEPP of the target PLMN shall be configured at the SEPP. The URI scheme of the API shall be "http". The "apiName" shall be set to "n32f-forward" and the "apiVersion" shall be set to "v1" for the current version of this specification. The apiName part of the URI shall be as specified here for homogeneity of the API across PLMNs.
6.2.2 Usage of HTTP
6.2.2.1 General
HTTP/2, as defined in IETF RFC 7540 [7], shall be used as specified in clause 4.3.2.1.
HTTP/2 shall be transported as specified in clause 4.3.3.
HTTP messages and bodies for the JOSE protected message forwarding API on N32-f shall comply with the OpenAPI [27] specification contained in Annex A.
6.2.2.2 HTTP standard headers
6.2.2.2.1 General
The HTTP standard headers as specified in clause 4.3.2.2 shall be supported for this API.
6.2.2.2.2 Content type
The following content types shall be supported:
– the JSON format (see IETF RFC 8259 [8]). The use of the JSON format shall be signalled by the content type "application/json". See also clause 5.3.4.
– the Problem Details JSON Object (see IETF RFC 7807 [22]). The use of the Problem Details JSON object in a HTTP response body shall be signalled by the content type "application/problem+json".
6.2.2.2.3 Accept-Encoding
SEPPs and IPX should support gzip coding (see IETF RFC 1952 [23]) in HTTP requests and responses and indicate so in the Accept-Encoding header, as described in clause 5.3.2.1.
6.2.2.3 HTTP custom headers
6.2.2.3.1 General
In this release of the specification, no specific custom headers are defined for the JOSE protected message forwarding API on N32.
For 3GPP specific HTTP custom headers used across all service based interfaces, see clause 4.3.2.3.
6.2.3 Resources
6.2.3.1 Overview
There are no resources in this version of this API. All the operations are realized as custom operations without resources.
6.2.4 Custom Operations without associated resources
6.2.4.1 Overview
Table 6.2.4.1-1: Custom operations without associated resources
|
Operation Name |
Custom operation URI |
Mapped HTTP method |
Description |
|
JOSE Protected Forwarding |
/n32f-process |
POST |
This is the N32f forwarding API used to forward a reformatted and JOSE protected message to a receiving SEPP. |
|
JOSE Protected Forwarding Options |
/n32f-process |
OPTIONS |
Discover the communication options supported by the next hop (IPX or SEPP) for N32-f message processing. |
6.2.4.2 Operation: JOSE Protected Forwarding
6.2.4.2.1 Description
This custom operation is used between the SEPPs to forward the reformatted and JOSE protected HTTP/2 message on N32-f. The HTTP method POST shall be used on the following URI:
URI: {apiRoot}/n32f-forward/v1/n32f-process
This operation shall support the resource URI variables defined in table 6.1.4.2.1-1.
Table 6.2.4.2.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.2.4.2.2 Operation Definition
This operation shall support the request data structures and response codes specified in tables 6.2.4.2.2-1 and 6.2.4.2.2-2.
Table 6.2.4.2.2-1: Data structures supported by the POST Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
N32fReformattedReqMsg |
M |
1 |
This IE shall contain the reformatted HTTP/2 message comprising the plain text part, encrypted information, meta data and modification chain information. See clause 6.2.5.2.2. |
Table 6.2.4.2.2-2: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
N32fReformattedRspMsg |
M |
1 |
200 OK |
This represents the successful processing of the reformatted JOSE protected message at the responding SEPP. The responding SEPP shall provide the reformatted and JOSE protected content of the corresponding HTTP/2 response message received from the NF service producer, or the HTTP/2 notification response message received from the NF service consumer. |
|
ProblemDetails |
O |
0..1 |
403 Forbidden |
When the receiving SEPP fails to process the reconstructed message due to PLMN ID verification failure, the "cause" attribute shall be set to "PLMNID_MISMATCH". When the receiving SEPP receives HTTP requests over N32-f with purpose, marked using 3gpp-Sbi-Interplmn-Purpose header as specified in 3GPP TS 29.500 [4], that does not match with any of the purposes exchanged via the Security Capability Negotiation procedure, then the "cause" attribute shall be set to "REQUESTED_PURPOSE_NOT_ALLOWED". When the receiving SEPP fails to process the reconstructed message due to the n32fContextId is unknown, the "cause" attribute shall be set to "CONTEXT_NOT_FOUND". When the receiving SEPP fails to process the reconstructed message, and the error is reported by N32f error reporting procedure as specified in clause 5.2.5, the "cause" attribute shall be set to "UNSPECIFIED". |
|
NOTE: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
Table 6.2.4.2.2-3: Headers supported by the POST method on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
3gpp-Sbi-Message-Priority |
string |
O |
0..1 |
3gpp-Sbi-Message-Priority header, defined in 3GPP TS 29.500 [4]. |
Table 6.2.4.2.2-4: Headers supported by 200 Response Code on this endpoint
|
Name |
Data type |
P |
Cardinality |
Description |
|
3gpp-Sbi-Message-Priority |
string |
O |
0..1 |
3gpp-Sbi-Message-Priority header, defined in 3GPP TS 29.500 [4]. |
6.2.4.3 Operation: JOSE Protected Forwarding Options
6.2.4.3.1 Description
This service operation queries the communication options supported by the next hop (IPX or SEPP) for N32-f message processing (see clauses 5.3.2.4 and 5.3.4).
The HTTP method OPTIONS shall be used on the following URI:
URI: {apiRoot}/n32f-forward/v1/n32f-process
This operation shall support the resource URI variables defined in table 6.2.4.3.1-1.
Table 6.2.4.3.1-1: Resource URI variables for this Operation
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.1.1. |
6.2.4.3.2 Operation Definition
6.2.4.3.2.1 OPTIONS
This method shall support the URI query parameters specified in table 6.2.4.3.2.1-1.
Table 6.2.4.3.2.1-1: URI query parameters supported by the OPTIONS method
|
Name |
Data type |
P |
Cardinality |
Description |
|
n/a |
This method shall support the request data structures specified in table 6.2.4.3.2.1-2 and the response data structures and response codes specified in table 6.2.4.3.2.1-3.
Table 6.2.4.3.2.1-2: Data structures supported by the OPTIONS Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
n/a |
Table 6.2.4.3.2.1-3: Data structures supported by the OPTIONS Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
n/a |
204 No Content |
|||
|
ProblemDetails |
O |
0..1 |
405 Method Not Allowed |
|
|
ProblemDetails |
O |
0..1 |
501 Not Implemented |
|
|
NOTE: The mandatory HTTP error status codes for the OPTIONS method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] other than those specified in the table above also apply, with a ProblemDetails data type (see clause 5.2.7 of 3GPP TS 29.500 [4]). |
||||
Table 6.2.4.3.2.1-4: Headers supported by the 204 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Accept-Encoding |
string |
O |
0..1 |
Accept-Encoding, described in IETF RFC 7694 [24] |
6.2.5 Data Model
6.2.5.1 General
This clause specifies the application data model supported by the API.
Table 6.2.5.1-1 specifies the data types defined for the N32 interface.
Table 6.2.5.1-1: N32 specific Data Types
|
Data type |
Clause defined |
Description |
|
N32fReformattedReqMsg |
6.2.5.2.2 |
Contains the reformatted HTTP/2 request message |
|
N32fReformattedRspMsg |
6.2.5.2.3 |
Contains the reformatted HTTP/2 response message |
|
DataToIntegrityProtectAndCipherBlock |
6.2.5.2.4 |
HTTP header to be encrypted or the value of a JSON attribute to be encrypted |
|
DataToIntegrityProtectBlock |
6.2.5.2.5 |
Data to be integrity protected |
|
RequestLine |
6.2.5.2.6 |
Contains the request line of the HTTP API request being reformatted and forwarded over N32-f |
|
HttpHeader |
6.2.5.2.7 |
Contains the encoding of HTTP headers in the API request / response |
|
HttpPayload |
6.2.5.2.8 |
Contains the encoding of JSON payload in the API request / response |
|
MetaData |
6.2.5.2.9 |
Contains the meta data information needed for replay protection |
|
Modifications |
6.2.5.2.10 |
Information on inserting of the modifications entry |
|
FlatJweJson |
6.2.5.2.11 |
Contains the integrity protected reformatted block |
|
FlatJwsJson |
6.2.5.2.12 |
Contains the modification from IPXes on path |
|
IndexToEncryptedValue |
6.2.5.2.13 |
Index to the encrypted value |
|
EncodedHttpHeaderValue |
6.2.5.2.14 |
HTTP header value or index to the HTTP header value |
Table 6.2.5.1-2 specifies data types re-used by the N32 interface protocol from other specifications, including a reference to their respective specifications and when needed, a short description of their use within the Namf service based interface.
Table 6.2.5.1-2: N32 re-used Data Types
|
Data type |
Reference |
Comments |
|
HttpMethod |
6.1.5.3.5 |
|
|
IeLocation |
6.1.5.3.6 |
|
|
PatchItem |
3GPP TS 29.571 [12] |
|
|
UriScheme |
3GPP TS 29.571 [12] |
|
|
Fqdn |
3GPP TS 29.571 [12] |
6.2.5.2 Structured data types
6.2.5.2.1 Introduction
This clause defines the structures to be used in the JOSE Protected Message Forwarding API on N32.
6.2.5.2.2 Type: N32fReformattedReqMsg
Table 6.2.5.2.2-1: Definition of type N32fReformattedReqMsg
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
reformattedData |
FlatJweJson |
M |
1 |
This IE shall contain the integrity protected reformatted block as well as the ciphered part of the reformatted block of the HTTP/2 request message sent between NF service producer and consumer. The SEPP shall reformat the HTTP/2 request message as: – The part of original HTTP/2 request message headers and the payload that needs to be only integrity protected is first reformatted into "DataToIntegrityProtectBlock" and then fed as input for the "aad" parameter of the FlatJweJson after subjecting to BASE64URL encoding. The part of the original HTTP/2 request message headers and payload that require integrity protection and ciphering is first reformatted into "DataToIntegrityProtectAndCipherBlock" and then fed as input for JWE ciphering and the JWE ciphered block is then BASE64URL encoded and set into the "ciphertext" parameter of the FlatJweJson. |
|
modificationsBlock |
array(FlatJwsJson) |
C |
1..N |
This IE shall be included if the IPXes on path are allowed to apply modification policies and if they have any specific modification to be applied on the message contained in the DataToIntegrityProtectBlock. |
6.2.5.2.3 Type: N32fReformattedRspMsg
Table 6.2.5.2.3-1: Definition of type N32fReformattedRspMsg
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
reformattedData |
FlatJweJson |
M |
1 |
This IE shall contain the integrity protected reformatted block as well as the ciphered part of the reformatted block of the HTTP/2 response message sent between NF service producer and consumer. The SEPP shall reformat the HTTP/2 response message as: – The part of original HTTP/2 response message headers and the payload that needs to be only integrity protected is first reformatted into "DataToIntegrityProtectBlock" and then fed as input for the "aad" parameter of the FlatJweJson after subjecting to BASE64URL encoding. – The part of the original HTTP/2 response message headers and payload that require integrity protection and ciphering is first reformatted into "DataToIntegrityProtectAndCipherBlock" and then fed as input for JWE ciphering and the JWE ciphered block is then BASE64URL encoded and set into the "ciphertext" parameter of the FlatJweJson. |
|
modificationsBlock |
array(FlatJwsJson) |
C |
1..N |
This IE shall be included if the IPXes on path are allowed to apply modification policies and if they have any specific modification to be applied on the message contained in the DataToIntegrityProtectBlock. |
6.2.5.2.4 Type: DataToIntegrityProtectAndCipherBlock
Table 6.2.5.2.4-1: Definition of type DataToIntegrityProtectAndCipherBlock
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
dataToEncrypt |
array(Any Type) |
M |
1..N |
This IE shall contain the input for ciphering as a JSON object block containing an array of values with arbitrary types. Each entry of the array shall contain the value of a HTTP header to be encrypted or the value of a JSON attribute to be encrypted. |
6.2.5.2.5 Type: DataToIntegrityProtectBlock
Table 6.2.5.2.5-1: Definition of type DataToIntegrityProtectBlock
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
metaData |
MetaData |
C |
0..1 |
This IE shall be included if the SEPP encodes additional information for replay protection. When present this IE shall contain the meta data information needed for replay protection. |
|
requestLine |
RequestLine |
C |
1 |
This IE shall be included when a JOSE protected API "request" is forwarded over N32-f. When present, this IE shall contain the request line of the HTTP API request being reformatted and forwarded over N32-f. |
|
statusLine |
string |
C |
0..1 |
This IE shall be included when a JOSE protected API "response" is forwarded over N32-f. When present, this IE shall contain the status line of the HTTP API response being reformatted and forwarded over N32-f. |
|
headers |
array(HttpHeader) |
C |
1..N |
This IE shall be included when a JOSE protected API request / response contains HTTP headers. When present this IE shall contain the encoding of HTTP headers in the API request / response. |
|
payload |
array(HttpPayload) |
C |
1..N |
This IE shall be included when a JOSE protected API request / response contains JSON payload that needs to be sent in clear text. When present this IE shall contain the encoding of JSON payload in the API request / response. |
6.2.5.2.6 Type: RequestLine
Table 6.2.5.2.6-1: Definition of type RequestLine
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
method |
HttpMethod |
M |
1 |
This IE shall contain the HTTP method of the API invoked by the NF service consumer / producer behind the SEPP towards its peer NF service in the other PLMN. |
|
scheme |
UriScheme |
M |
1 |
This IE shall contain the HTTP scheme of the API. |
|
authority |
string |
M |
1 |
This IE shall contain the authority part of the URI of the API being invoked. |
|
path |
string |
M |
1 |
This IE shall contain the path part of the URI of the API being invoked. |
|
protocolVersion |
string |
M |
1 |
This IE shall contain the HTTP protocol version. The version shall be 2 in this release of this specification. |
|
queryFragment |
string |
C |
0..1 |
This IE shall contain the query fragment part of the API, if available. |
6.2.5.2.7 Type: HttpHeader
Table 6.2.5.2.7-1: Definition of type HttpHeader
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
header |
string |
M |
1 |
This IE shall contain the name of the HTTP header to encoded. |
|
value |
EncodedHttpHeaderValue |
M |
1 |
This IE shall contain the value of the HTTP header. The value of the HTTP header shall be encoded as: – value field of the EncodedHttpHeaderValue structure specified in clause 6.2.5.2.14 if the HTTP header is not to be encrypted. – IndexToEncryptedValue structure specified in clause 6.2.5.2.13 if the value of the HTTP header is to be encrypted. |
6.2.5.2.8 Type: HttpPayload
Table 6.2.5.2.8-1: Definition of type HttpPayload
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
iePath |
string |
M |
1 |
This IE identifies the JSON pointer representation (see IETF RFC 6901 [17]) of full JSON path of the IE to be encoded. IEs that are of type object shall be flattened into each individual attribute’s full JSON path and the HttpPayload IE shall only contain the final leaf attribute IE path and its corresponding value. |
|
ieValueLocation |
IeLocation |
M |
1 |
This IE shall identify where the IE value is located – i,e in the JSON body or in the multipart message part. |
|
value |
object |
M |
1 |
This IE shall contain the value of the IE corresponding to "iePath", encoded as a free form object. If the value of this IE is encrypted, then the value part shall be encoded as { "encBlockIndex": <array index in DataToIntegrityProtectAndCipherBlock> } (see clause 6.2.5.2.4). If the value of this IE is a RefToBinary data type (see 3GPP TS 29.571 [12], then value shall contain the value of the Content-ID header field of the referenced binary body part. The referenced binary body part of the multipart/related message shall be either encrypted or not encrypted depending on the protection policy exchanged between the SEPPs. If the referenced binary body part is required to be encrypted, then the binary part is first base64 encoded into a byte array and then inserted into the "DataToIntegrityProtectAndCipherBlock". Then two HttpPayload instances with the following values shall be added immediately after this HttpPayload instance in the "DataToIntegrityProtectBlock" { "iePath": <JSON Pointer of the attribute defined with theRefToBinaryData type >/contenttype "ieValueLocation": "MULTIPART_BINARY" "value": <value of the content type of multipart binary> }, { "iePath": <JSON Pointer of the attribute defined with the RefToBinaryData type>/data, "ieValueLocation": "MULTIPART_BINARY" "value": {"encBlockIndex": <array index in DataToIntegrityProtectAndCipherBlock that contains the byte array>} } If the referenced binary body part is not required to be encrypted, then the binary part is first base64 encoded into a byte array and then inserted as new instance of HttpPayload IE in " DataToIntegrityProtectBlock" as { "iePath": <JSON Pointer of the attribute defined with the RefToBinaryData type>/contenttype "ieValueLocation": "MULTIPART_BINARY" "value": <value of the content type of multipart binary> }, { "iePath": <JSON path of the attribute defined with the RefToBinaryData type>/data, "ieValueLocation": "MULTIPART_BINARY" "value": <base64 encoded byte array> } See NOTE 1. |
|
NOTE 1: In this release of this specification only N16 interface has binary content and there is no sensitive information carried over N16 interface. Consequently ciphering of binary part is not required in this release of this specification. The encoding specified here is to provide a N32-f framework in a future proof manner so that if a binary part need to be encrypted in future this structure can be used. |
||||
6.2.5.2.9 Type: MetaData
Table 6.2.5.2.9-1: Definition of type MetaData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
n32fContextId |
string |
M |
1 |
This IE shall contain the n32fContextId of the SEPP receiving the message, which is exchanged between the SEPPs during the parameter exchange procedure (see clause 5.2.3). The n32fContextId shall encode a 64-bit integer in hexadecimal representation. Each character in the string shall take a value of "0" to "9" or "A" to "F" and shall represent 4 bits. The most significant character representing the 4 most significant bits of the N32-f context Id shall appear first in the string, and the character representing the 4 least significant bit of the N32-f context Id shall appear last in the string. Pattern: ‘^[A-Fa-f0-9]{16}$’ Example: "0600AD1855BD6007". |
|
messageId |
string |
M |
1 |
This IE identifies a particular request that is transformed by the SEPP. The value of this IE shall be encoded in hexadecimal representation of a 64 bit integer. This identifier is used in the N32-f error reporting procedure as specified in clause 6.1.4.5. Pattern: ^[a-fA-F0-9]{1, 16}$ |
|
authorizedIpxId |
string |
M |
1 |
This IE identifies the first hop IPX that is authorized to insert modifications block. The identifier of the IPX shall be an FQDN. When there is no IPX that’s authorized to update, the value of this IE is set to the string "NULL". |
6.2.5.2.10 Type: Modifications
Table 6.2.5.2.10-1: Definition of type Modifications
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
operations |
array(PatchItem) |
C |
1..N |
This IE shall be included if an intermediary IPX inserts modification instructions on the JSON data carried in the "DataToIntegrityProtectBlock" part of the N32-f forwarded message. For the first modifications entry, this IE shall not be included, since the first entry is inserted by the SEPP. |
|
identity |
Fqdn |
M |
1 |
This IE shall contain the identity of the entity inserting the modifications entry. The identity shall be encoded in the form of an URI. |
|
tag |
string |
C |
0..1 |
This IE shall be present when the JWE Authentication Tag value is non-empty as specified in IETF RFC 7515 [16]. When present, this IE shall contain the BASE64URL(JWE Authentication Tag). |
6.2.5.2.11 Type: FlatJweJson
Table 6.2.5.2.11-1: Definition of type FlatJweJson
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
protected |
string |
C |
0..1 |
This IE shall be present if there is a JWE Protected Header part of the JOSE header to encode as specified in IETF RFC 7516 [14]. When present, this IE shall contain the BASE64URL(UTF8(JWE Protected Header)) encoding of the JWE protected header. |
|
unprotected |
object |
C |
0..1 |
This IE shall be present if there is a JWE unprotected header part of the JOSE header that is shared across recipients, to encode as specified in IETF RFC 7515 [16]. This value is represented as an unencoded free form JSON object, rather than as a string. These Header Parameter values are not integrity protected. |
|
header |
object |
C |
0..1 |
This IE shall be present if there is a JWE unprotected header part of the JOSE header that is specific for the recipient, to encode as specified in IETF RFC 7515 [16]. This value is represented as an unencoded free form JSON object, rather than as a string. These Header Parameter values are not integrity protected. |
|
encrypted_key |
string |
C |
0..1 |
This IE shall be present when the JWE Encrypted Key for the recipient is non empty. When present this IE shall contain BASE64URL(JWE Encrypted Key). (NOTE) |
|
aad |
string |
C |
0..1 |
This IE shall be present when the JWE AAD value is non-empty as specified in IETF RFC 7515 [16]. When present, this IE shall contain BASE64URL encoding of the DataToIntegrityProtectBlock JSON object (see clause 6.2.5.2.5). |
|
iv |
string |
C |
0..1 |
This IE shall be present when the JWE Initialization Vector is non-empty as specified in IETF RFC 7515 [16]. When present, this IE shall contain the BASE64URL(JWE Initialization Vector). |
|
ciphertext |
string |
M |
1 |
This IE shall contain BASE64URL(JWE Ciphertext). The input for JWE ciphering is the DataToIntegrityProtecAndCiphertBlock (see clause 6.2.5.2.5). |
|
tag |
string |
C |
0..1 |
This IE shall be present when the JWE Authentication Tag value is non-empty as specified in IETF RFC 7515 [16]. When present, this IE shall contain the BASE64URL(JWE Authentication Tag). |
|
NOTE: The attribute name does not follow the naming conventions specified in 3GPP TS 29.501 [5]. The attribute name is kept though as defined in the current specification for backward compatibility reason. |
||||
6.2.5.2.12 Type: FlatJwsJson
Table 6.2.5.2.12-1: Definition of type FlatJwsJson
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
payload |
string |
M |
1 |
This IE shall contain the BASE64URL encoding of the Modifications JSON object (see clause 6.2.5.2.10). |
|
protected |
string |
C |
0..1 |
This IE shall be present if there is a JWS Protected Header part of the JOSE header to encode as specified in IETF RFC 7515 [16]. When present, this IE shall contain the BASE64URL(UTF8(JWS Protected Header)) encoding of the JWS protected header. |
|
header |
object |
C |
0..1 |
This IE shall be present if there is a JWS unprotected header part of the JOSE header to encode as specified in IETF RFC 7515 [16]. This value is represented as an unencoded free form JSON object, rather than as a string. These Header Parameter values are not integrity protected. |
|
signature |
string |
M |
1 |
This IE shall contain the BASE64URL encoded value of the calculated JWS signature. |
6.2.5.2.13 Type: IndexToEncryptedValue
Table 6.2.5.2.13-1: Definition of type IndexToEncryptedHttpHeader
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
encBlockIndex |
Uinteger |
M |
1 |
Index to the value in DataToIntegrityProtectAndCipherBlock |
6.2.5.2.14 Type: EncodedHttpHeaderValue
Table 6.2.5.2.14-1: Definition of type EncodedHttpHeaderValue as a list of "mutually exclusive alternatives"
|
Data type |
Cardinality |
Description |
Applicability |
|
string |
1 |
HTTP header value. |
|
|
IndexToEncryptedValue |
1 |
Index to encrypted HTTP header in the DataToIntegrityProtectAndCipherBlock |
6.2.5.3 Simple data types and enumerations
6.2.5.3.1 Introduction
This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.
6.2.5.3.2 Simple data types
The simple data types defined in table 6.1.5.3.2-1 shall be supported.
Table 6.2.5.3.2-1: Simple data types
|
Type Name |
Type Definition |
Description |
6.2.5.3.3 Void
6.2.5.3.4 Void
6.2.6 Error Handling
6.2.6.1 General
HTTP error handling shall be supported as specified in clause 5.2.4 of 3GPP TS 29.500 [4].
6.2.6.2 Protocol Errors
Protocol Error Handling shall be supported as specified in clause 5.2.7.2 of 3GPP TS 29.500 [4].
6.2.6.3 Application Errors
The application errors defined for the JOSE protected message forwarding API on N32-f are listed in Table 6.2.6.3-1.
Table 6.2.6.3-1: Application errors
|
Application Error |
HTTP status code |
Description |
|
PLMNID_MISMATCH |
403 Forbidden |
The PLMN ID in the Bearer token carried in the "Authorization" header of the reconstructed message does not match the PLMN ID of the N32-f context. |
|
REQUESTED_PURPOSE_NOT_ALLOWED |
403 Forbidden |
The purpose indicated in 3gpp-Sbi-Interplmn-Purpose header as specified in 3GPP TS 29.500 [4] of the reconstructed message does not match with any of the purposes exchanged via the Security Capability Negotiation procedure. |
|
CONTEXT_NOT_FOUND |
403 Forbidden |
The n32fContextId is unknown in the receiving SEPP. |
|
UNSPECIFIED |
403 Forbidden |
The receiving SEPP fails to process the reconstructed message, and the error is reported by N32f error reporting procedure as specified in clause 5.2.5. |
6.3 Nsepp_Telescopic_FQDN_Mapping API
6.3.1 API URI
URIs of this API shall have the following root:
{apiRoot}/{apiName}/{apiVersion}
where "apiRoot" is defined in clause 4.4.1 of 3GPP TS 29.501 [5], the "apiName" shall be set to "nsepp-telescopic" and the "apiVersion" shall be set to "v1" for the current version of this specification.
6.3.2 Usage of HTTP
6.3.2.1 General
HTTP/2, as defined in IETF RFC 7540 [7], 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].
HTTP messages and bodies for the Nsepp_Telescopic_FQDN_Mapping service shall comply with the OpenAPI [27] specification contained in Annex A.
6.3.2.2 HTTP standard headers
6.3.2.2.1 General
The HTTP standard headers as specified in clause 4.3.2.2 shall be supported for this API.
6.3.2.2.2 Content type
The following content types shall be supported:
– JSON, as defined in IETF RFC 8259 [9]. The use of the JSON format shall be signalled by the content type "application/json". See also clause 5.4 of 3GPP TS 29.500 [4].
– The Problem Details JSON Object (IETF RFC 7807 [10]. The use of the Problem Details JSON object in a HTTP response body shall be signalled by the content type "application/problem+json".
6.3.2.3 HTTP custom headers
6.3.2.3.1 General
In this release of this specification, no custom headers specific to the Nsepp_Telescopic_FQDN_Mapping service are defined. For 3GPP specific HTTP custom headers used across all service-based interfaces, see clause 5.2.3 of 3GPP TS 29.500 [4].
6.3.3 Resources
6.3.3.1 Overview
Figure 6.3.3.1-1: Resource URI structure of the nsepp-telescopic API
Table 6.3.3.1-1 provides an overview of the resources and applicable HTTP methods.
Table 6.3.3.1-1: Resources and methods overview
|
Resource name |
Resource URI |
HTTP method or custom operation |
Description |
|
Mapping |
/mapping |
GET |
Retrieve the mapping between the FQDN in a foreign PLMN and a telescopic FQDN, or viceversa. |
6.3.3.2 Resource: Mapping
6.3.3.2.1 Description
This resource represents the mapping between the FQDN of an NF in a foreign PLMN and a telescopic FQDN.
6.3.3.2.2 Resource Definition
Resource URI: {apiRoot}/nsepp-telescopic/v1/mapping
This resource shall support the resource URI variables defined in table 6.3.3.2.2-1.
Table 6.3.3.2.2-1: Resource URI variables for this resource
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.3.1 |
6.3.3.2.3 Resource Standard Methods
6.3.3.2.3.1 GET
This method shall support the URI query parameters specified in table 6.3.3.2.3.1-1.
Table 6.3.3.2.3.1-1: URI query parameters supported by the GET method on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
foreign-fqdn |
Fqdn |
O |
0..1 |
This parameter shall contain the FQDN of the NF in the foreign network, that needs to be flattened to a telescopic FQDN in the local network (i.e. an FQDN that points to the local SEPP). |
|
telescopic-label |
string |
O |
0..1 |
This parameter shall contain the first label used in a telescopic FQDN (i.e. an FQDN that points to the local SEPP) that needs to be mapped to an NF in the foreign network. |
|
NOTE: The parameters "foreign-fqdn" and "telescopic-label" shall not be present simultaneously. |
||||
This method shall support the request data structures specified in table 6.3.3.2.3.1-2 and the response data structures and response codes specified in table 6.3.3.2.3.1-3.
Table 6.3.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.3.3.2.3.1-3: Data structures supported by the GET Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
TelescopicMapping |
M |
1 |
200 OK |
Upon success, a response body containing a TelescopicMapping object shall be returned |
|
ProblemDetails |
O |
0..1 |
404 Not Found |
The mapping between a foreign FQDN and a telescopic FQDN could not be found. |
6.3.4 Data Model
6.3.4.1 General
This clause specifies the application data model supported by the API.
Table 6.3.4.1-1 specifies the data types defined for the Nsepp_Telescopic_FQDN_Mapping service-based interface protocol.
Table 6.3.4.1-1: Nsepp_Telescopic_FQDN_Mapping specific Data Types
|
Data type |
Clause defined |
Description |
|
TelescopicMapping |
6.3.4.2.2 |
Contains the Telescopic mapping data |
Table 6.3.4.1-2 specifies data types re-used by the Nsepp_Telescopic_Mapping service-based interface protocol from other specifications.
Table 6.3.4.1-2: Nsepp_Telescopic_FQDN_Mapping re-used Data Types
|
Data type |
Reference |
Comments |
|
Fqdn |
3GPP TS 29.571 [12] |
|
|
ProblemDetails |
3GPP TS 29.571 [12] |
Common data type for error responses |
6.3.4.2 Structured data types
6.3.4.2.1 Introduction
This clause defines the structures to be used in resource representations.
6.3.4.2.2 Type: TelescopicMapping
Table 6.3.4.2.2-1: Definition of type TelescopicMapping
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
telescopicLabel |
string |
C |
0..1 |
This parameter shall contain the first label to be used in a telescopic FQDN (i.e. an FQDN that points to the local SEPP) that corresponds to a given NF in the foreign network. In a successful response, this parameter shall be included when the query parameter "foreign-fqdn" is present in the request. |
|
seppDomain |
Fqdn |
C |
0..1 |
This parameter shall contain the FQDN of the domain of the local SEPP that needs to be appended after the "telescopicLabel" to compose the complete flattened telescopic FQDN. In a successful response, this parameter shall be included when the query parameter "foreign-fqdn" is present in the request. |
|
foreignFqdn |
Fqdn |
C |
0..1 |
This parameter shall contain the FQDN of the NF in the foreign network. In a successful response, this parameter shall be included when the query parameter "telescopic-label" is present in the request. |
6.3.4.3 Simple data types and enumerations
6.3.4.3.1 Introduction
This clause defines simple data types and enumerations that can be referenced from data structures defined in the previous clauses.
6.3.4.3.2 Simple data types
The simple data types defined in table 6.3.4.3.2-1 shall be supported.
Table 6.3.4.3.2-1: Simple data types
|
Type Name |
Type Definition |
Description |
6.3.5 Error Handling
6.3.5.1 General
HTTP error handling shall be supported as specified in clause 5.2.4 of 3GPP TS 29.500 [4].
6.3.5.2 Protocol Errors
Protocol Error Handling shall be supported as specified in clause 5.2.7 of 3GPP TS 29.500 [4].
6.3.5.3 Application Errors
The common application errors defined in the Table 5.2.7.2-1 in 3GPP TS 29.500 [4] may also be used for the Nsepp_Telescopic_Mapping service, and the following application errors listed in Table 6.3.5.3-1 are specific for the Nsepp_Telescopic_Mapping service.
Table 6.3.5.3-1: Application errors
|
Application Error |
HTTP status code |
Description |
6.3.6 Feature Negotiation
This API does not currently specify any features.
6.3.7 Security
6.3.7.1 General
This API shall be accessed only from NFs in the same PLMN as the SEPP; it shall not be exposed externally to NFs from another PLMN.
Annex A (normative):
OpenAPI Specification