6 API Definitions
29.5563GPPEdge Application Server Discovery ServicesRelease 17Stage 3TS
6.1 Neasdf_DNSContext Service API
6.1.1 Introduction
The Neasdf_DNSContext shall use the Neasdf_DNSContext API.
The API URI of the Neasdf_DNSContext API shall be:
{apiRoot}/<apiName>/<apiVersion>
The request URIs used in HTTP requests from the NF service consumer towards the NF service producer shall have the Resource URI 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 "neasdf-dnscontext".
– 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 Neasdf_DNSContext 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
The following content types shall be supported:
– JSON, as defined in 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];
– JSON Patch (IETF RFC 6902 [15]). The use of the JSON Patch format in a HTTP request body shall be signalled by the content type "application/json-patch+json".
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 supported, and the optional HTTP custom header fields specified in clause 5.2.3.3 of 3GPP TS 29.500 [4] may be supported. In this release of this specification, no custom headers specific to the Neasdf_DNSContext service are defined.
6.1.3 Resources
6.1.3.1 Overview
Figure 6.1.3.1-1 describes the resource URI structure of the Neasdf_DNSContext API.
Figure 6.1.3.1-1: Resource URI structure of the Neasdf_DNSContext 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 |
Description (service operation) |
|
DNS contexts collection |
/dns-contexts |
POST |
Create |
|
Individual DNS context |
/dns-contexts/{dnsContextId} |
PATCH |
Update (partial update) |
|
PUT |
Update (complete replacement) |
||
|
DELETE |
Delete |
6.1.3.2 Resource: DNS contexts collection
6.1.3.2.1 Description
This resource represents the collection of the individual DNS contexts created in the EASDF.
This resource is modelled with the Collection resource archetype (see clause C.2 of 3GPP TS 29.501 [5]).
6.1.3.2.2 Resource Definition
Resource URI: {apiRoot}/neasdf-dnscontext/<apiVersion>/dns-contexts
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 |
|
apiVersion |
string |
See clause 6.1.1 |
6.1.3.2.3 Resource Standard Methods
6.1.3.2.3.1 POST
This method creates an individual DNS context resource in the EASDF.
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 POST 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.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 POST Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
DnsContextCreateData |
M |
1 |
Representation of the DNS context to be created in the EASDF |
Table 6.1.3.2.3.1-3: Data structures supported by the POST Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
DnsContextCreatedData |
M |
1 |
201 Created |
Successful creation of a DNS context |
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
ProblemDetails |
O |
0..1 |
400 Bad Request |
The "cause" attribute may be set to one of the following application errors: – BASELINE_DNS_PATTERN_UNKNOWN – BASELINE_DNS_MDT_UNKNOWN – BASELINE_DNS_AIT_UNKNOWN |
|
NOTE 1: The mandatory HTTP error status code for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse 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 201 response code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
Contains the URI of the newly created resource, according to the structure: {apiRoot}/neasdf-dnscontext/<apiVersion>/dns-contexts/{dnsContextId} |
Table 6.1.3.2.3.1-5: Headers supported by the 307 response code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.1.3.2.3.1-6: Headers supported by the 308 response code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.1.3.2.4 Resource Custom Operations
None.
6.1.3.3 Resource: Individual DNS context
6.1.3.3.1 Description
This resource represents an individual DNS context created in the EASDF.
This resource is modelled with the Document resource archetype (see clause C.1 of 3GPP TS 29.501 [5]).
6.1.3.3.2 Resource Definition
Resource URI: {apiRoot}/neasdf-dnscontext/<apiVersion>/dns-contexts/{dnsContextId}
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. |
|
apiVersion |
string |
See clause 6.1.1. |
|
dnsContextId |
string |
DNS context Identifier assigned by the EASDF during the Create service operation. |
6.1.3.3.3 Resource Standard Methods
6.1.3.3.3.1 DELETE
This method deletes an individual DNS context resource in the EASDF.
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 DELETE 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 DELETE Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
n/a |
Table 6.1.3.3.3.1-3: Data structures supported by the DELETE Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
n/a |
204 No Content |
Successful deletion of the DNS context. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status code for the DELETE method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse 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 resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.1-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.1.3.3.3.2 PATCH
This method updates (partial update) an individual DNS context resource in the EASDF.
This method shall support the URI query parameters specified in table 6.1.3.3.3.2-1.
Table 6.1.3.3.3.2-1: URI query parameters supported by the PATCH 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.2-2 and the response data structures and response codes specified in table 6.1.3.3.3.2-3.
Table 6.1.3.3.3.2-2: Data structures supported by the PATCH Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
array(PatchItem) |
M |
1..N |
It contains the list of changes to be made to the DNS context, according to the JSON PATCH format specified in IETF RFC 6902 [15]. |
Table 6.1.3.3.3.2-3: Data structures supported by the PATCH Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
PatchResult |
M |
1 |
200 OK |
Upon partial success, e.g. some of the requested modifications for unknown attribute(s) are discarded while the rest of the modification instructions are fully accepted, the EASDF shall return the execution report. |
|
n/a |
204 No Content |
Successful update of the DNS context. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status code for the PATCH method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.1.3.3.3.2-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.2-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.1.3.3.3.3 PUT
This method updates (complete replacement) an individual DNS context resource in the EASDF.
This method shall support the URI query parameters specified in table 6.1.3.3.3.3-1.
Table 6.1.3.3.3.3-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.3-2 and the response data structures and response codes specified in table 6.1.3.3.3.3-3.
Table 6.1.3.3.3.3-2: Data structures supported by the PUT Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
DnsContextCreateData |
M |
1 |
DNS Context Data to replace the existing DNS context data |
Table 6.1.3.3.3.3-3: Data structures supported by the PUT Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
n/a |
204 No Content |
Successful update of the DNS context. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status code for the PATCH method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.1.3.3.3.3-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.1.3.3.3.3-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.1.3.3.4 Resource Custom Operations
There are no resource custom operations for the Neasdf_DNSContext service in this release of the specification.
6.1.4 Custom Operations without associated resources
There are no custom operations defined without any associated resources for the Neasdf_DNSContext service in this release of this specification.
6.1.5 Notifications
6.1.5.1 General
This clause specifies the notifications supported by the Neasdf_DNSContext service.
Notifications shall comply to clause 6.2 of 3GPP TS 29.500 [4] and clause 4.6.2.3 of 3GPP TS 29.501 [5].
Table 6.1.5.1-1: Notifications overview
|
Notification |
Callback URI |
HTTP method or custom operation |
Description (service operation) |
|
DNS Context Notification |
{notifyUri} (Notification URI provided by NF Service Consumer) |
POST |
DNS Context Notify |
6.1.5.2 DNS Context Notify
6.1.5.2.1 Description
The Event Notification is used by the EASDF to report one or several observed Events to a NF service consumer(e.g. SMF) that has subscribed to such Notifications.
6.1.5.2.2 Target URI
The Callback URI "{notifyUri}" shall be used with the callback URI variables defined in table 6.1.5.2.2-1.
Table 6.1.5.2.2-1: Callback URI variables
|
Name |
Definition |
|
notifyUri |
String formatted as URI with the Callback Uri |
6.1.5.2.3 Standard Methods
6.1.5.2.3.1 POST
This method shall support the request data structures specified in table 6.1.5.2.3.1-1 and the response data structures and response codes specified in table 6.1.5.2.3.1-1.
Table 6.1.5.2.3.1-2: Data structures supported by the POST Request Body
|
Data type |
P |
Cardinality |
Description |
|
DnsContextNotification |
M |
1 |
Representation of the DNS context notification |
Table 6.1.5.2.3.1-3: Data structures supported by the POST Response Body
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
n/a |
204 No Content |
Successful notification of the DNS context change |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an URI pointing to the endpoint of another NF service consumer to which the notification should be sent. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an URI pointing to the endpoint of another NF service consumer to which the notification should be sent. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status codes for the POST method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.1.5.2.3.1-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
A URI pointing to the endpoint of another NF service consumer to which the notification should be sent or pointing to the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the notification is redirected |
Table 6.1.5.2.3.1-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
A URI pointing to the endpoint of another NF service consumer to which the notification should be sent or pointing to the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target NF (service) instance ID towards which the notification is redirected |
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 Neasdf_DNSContext service based interface protocol.
Table 6.1.6.1-1: Neasdf_DNSContext specific Data Types
|
Data type |
Clause defined |
Description |
Applicability |
|
DnsContextCreateData |
6.1.6.2.2 |
Data in DNS Context Create request |
|
|
DnsContextCreatedData |
6.1.6.2.3 |
Data in DNS Context Create response |
|
|
DnsRule |
6.1.6.2.4 |
DNS handling rule |
|
|
DnsQueryMdt |
6.1.6.2.5 |
DNS Query Message Detection Template |
|
|
DnsRspMdt |
6.1.6.2.6 |
DNS Response Message Detection Template |
|
|
Ipv4AddressRange |
6.1.6.2.7 |
IPv4 addresses range |
|
|
Ipv6PrefixRange |
6.1.6.2.8 |
IPv6 addresses range |
|
|
Action |
6.1.6.2.9 |
Action to apply to DNS messages matching a message detection template |
|
|
DnsContextNotification |
6.1.6.2.10 |
DNS context notification |
|
|
ForwardingParameters |
6.1.6.2.11 |
Forwarding instructions |
|
|
EcsOption |
6.1.6.2.12 |
ECS Option information |
|
|
DnsContextEventReport |
6.1.6.2.13 |
DNS context Event report |
|
|
DnsQueryReport |
6.1.6.2.14 |
DNS Query Event Report |
|
|
DnsRspReport |
6.1.6.2.15 |
DNS Response Event Report |
|
|
EcsOptionInfo |
6.1.6.2.16 |
ECS option information |
|
|
DnsServerAddressInfo |
6.1.6.2.17 |
DNS Server address information |
|
|
BaselineDnsMdtId |
6.1.6.2.18 |
Baseline DNS Message Detection Template Identifier |
|
|
BaselineDnsAitId |
6.1.6.2.19 |
Baseline DNS Action Information Template Identifier |
|
|
BaselineDnsQueryMdtInfo |
6.1.6.2.20 |
Baseline DNS Query MDT ID and optionally associated information |
|
|
BaselineDnsRspMdtInfo |
6.1.6.2.21 |
Baseline DNS Response MDT ID and optionally associated information |
|
|
ApplyAction |
6.1.6.3.3 |
Action to apply to the DNS packet |
Table 6.1.6.1-2 specifies data types re-used by the Neasdf 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 Neasdf_DNSContext service based interface.
Table 6.1.6.1-2: Neasdf_DNSContext re-used Data Types
|
Data type |
Reference |
Comments |
Applicability |
|
IPv4Addr |
3GPP TS 29.571 [16] |
IPv4 address |
|
|
IPv6Prefix |
3GPP TS 29.571 [16] |
IPv6 prefix |
|
|
Dnn |
3GPP TS 29.571 [16] |
DNN |
|
|
Uri |
3GPP TS 29.571 [16] |
URI |
|
|
Uint32 |
3GPP TS 29.571 [16] |
Unsigned 32-bit integer |
|
|
IpAddr |
3GPP TS 29.571 [16] |
IP address |
|
|
IPv6Addr |
3GPP TS 29.571 [16] |
IPv6 address |
|
|
SupportedFeatures |
3GPP TS 29.571 [16] |
Supported features |
|
|
DateTime |
3GPP TS 29.571 [16] |
Date and time |
|
|
PatchResult |
3GPP TS 29.571 [16] |
||
|
FqdnPatternMatchingRule |
3GPP TS 29.571 [16] |
FQDN Pattern Matching Rule |
|
|
Fqdn |
3GPP TS 29.571 [16] |
||
|
Snssai |
3GPP TS 29.571 [16] |
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: DnsContextCreateData
Table 6.1.6.2.2-1: Definition of type DnsContextCreateData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
ueIpv4Addr |
Ipv4Addr |
C |
0..1 |
UE IPv4 address (NOTE 1) |
|
|
ueIpv6Prefix |
Ipv6Prefix |
C |
0..1 |
UE IPv6 prefix (NOTE 1) |
|
|
dnn |
Dnn |
M |
1 |
DNN of the PDU session (NOTE 2) |
|
|
sNssai |
Snssai |
M |
1 |
S-NSSAI of the PDU session (NOTE 2) |
|
|
dnsRules |
map(DnsRule) |
M |
1..N |
Map of DNS message handling rules. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], with a maximum of 32 characters. |
|
|
notifyUri |
Uri |
C |
0..1 |
Callback URI to receive notifications. This IE shall be present if the NF service consumer subscribes to receive DNS context notifications. |
|
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.1.8 is supported. |
|
|
NOTE 1: At least one of the ueIpv4Addr and ueIpv6Prefix attributes shall be present. NOTE 2: The UE IP address shall be used together with the DNN and S-NSSAI to uniquely identify the DNS context associated with a PDU session (e.g. in deployments where the same EASDF is used for PDU sessions to DNs with overlapping IP address spaces) and to associate the DNS context with a specific DN (and e.g. related tunnels connecting to the DN). |
|||||
6.1.6.2.3 Type: DnsContextCreatedData
Table 6.1.6.2.3-1: Definition of type DNSContextCreatedData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
easdfIpv4Addr |
IPv4Addr |
C |
0..1 |
EASDF IPv4 address |
|
|
easdfIpv6Addr |
IPv6Addr |
C |
0..1 |
EASDF IPv6 address |
|
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.1.8 is supported. |
|
|
NOTE: At least one of the easdfIpv4Addr and easdfIpv6Addr attributes shall be present. |
|||||
6.1.6.2.4 Type: DnsRule
Table 6.1.6.2.4-1: Definition of type DnsRule
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
dnsRuleId |
string |
C |
0..1 |
Unique Identifier of the DNS rule within the DNS context This IE shall be present for a DNS rule other than a One-Time DNS rule. |
|
|
label |
string |
O |
0..1 |
DNS rule’s label (NOTE 5) |
|
|
precedence |
Uint32 |
C |
0..1 |
Precedence of the DNS message handling rule. This IE shall be present for a DNS rule other than a One-Time DNS rule. The lower precedence values indicate higher precedence of the DNS rule, and the higher precedence values indicate lower precedence of the DNS rule when matching a DNS message. |
|
|
dnsQueryMdtList |
map(DnsQueryMdt) |
C |
1..N |
Map of DNS Query message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], with a maximum of 32 characters. (NOTE 3) |
|
|
baseDnsQueryMdtList |
array(BaselineDnsQueryMdtInfo) |
C |
1..N |
List of Baseline DNS Query Message Detection Template IDs and optionally associated information. (NOTE 3) |
|
|
dnsRspMdtList |
map(DnsRspMdt) |
C |
1..N |
Map of DNS Response message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], with a maximum of 32 characters. (NOTE 4) |
|
|
baseDnsRspMdtList |
array(BaselineDnsRspMdtInfo) |
C |
1..N |
List of Baseline DNS Response Message Detection Template IDs and optionally associated information. (NOTE 4) |
|
|
dnsMsgId |
string |
C |
0..1 |
DNS message identifier This IE shall be present for a One-Time DNS Rule and it shall be set to the identifier of the DNS message buffered in the EASDF for which the DNS rule shall apply (see clause 5.2.3.2.4). (NOTE 6) |
|
|
actionList |
map(Action) |
M |
1..N |
Map of Actions to apply to DNS messages matching the DNS message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], with a maximum of 32 characters. |
|
|
NOTE 1: A DNS rule shall be provisioned either for DNS Query messages or for DNS Response messages. NOTE 2: A DNS rule including the dnsMsgId IE shall be considered as a One-Time DNS Rule (see clause 5.2.3.2.4). NOTE 3: For a DNS rule other than a One-Time DNS rule provisioned for DNS Query messages, at least one of the dnsQueryMdtList and baseDnsQueryMdtList IEs shall be present. NOTE 4: For a DNS Rule other than a One-Time DNS rule provisioned for DNS Response messages, at least one of the dnsRspMdtList and baseDnsRspMdtList IEs shall be present. NOTE 5: This attribute may contain free information describing the scope of the DNS rule. It may be used e.g. for trouble-shooting. NOTE 6: An EASDF can encode the DNS message identifier as the ID field in the header of the DNS message, or as any other string uniquely identifying the DNS message within the DNS context. |
|||||
6.1.6.2.5 Type: DnsQueryMdt
Table 6.1.6.2.5-1: Definition of type DnsQueryMdt
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
mdtId |
string |
M |
1 |
Identifier of the DNS Query message detection template, with a maximum of 32 characters. |
|
|
label |
string |
O |
0..1 |
DNS Query MDT’s label (NOTE 2) |
|
|
sourceIpv4Addr |
Ipv4Addr |
O |
0..1 |
UE IPv4 address (NOTE 1) |
|
|
sourceIpv6Prefix |
Ipv6Prefix |
O |
0..1 |
UE IPv6 prefix (NOTE 1) |
|
|
fqdnPatternList |
array(FqdnPatternMatchingRule) |
O |
1..N |
List of FQDN patterns, where each FQDN pattern is described by a FQDN Pattern Matching Rule. An FQDN value is considered part of the template if and only if the FQDN in the Queries field in the DNS Query message fully matches at least one FQDN pattern. (NOTE 3) |
|
|
NOTE 1: If neither the sourceIpv4Addr IE nor the sourceIpv6Prefix IE is present, the UE IP address in the DNS Context Data shall be assumed. NOTE 2: This attribute may contain free information describing the scope of the DNS Query MDT. It may be used e.g. for trouble-shooting. NOTE 3: The list of FQDN patterns may encode some FQDN patterns with a string matching rule and others with a regular expression (when the FQDN patterns cannot be described by a string matching rule). |
|||||
6.1.6.2.6 Type: DnsRspMdt
Table 6.1.6.2.6-1: Definition of type DnsRspMdt
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
mdtId |
string |
M |
1 |
Identifier of the DNS Response message detection template, with a maximum of 32 characters. |
|
|
label |
string |
O |
0..1 |
DNS Response MDT’s label (NOTE 1) |
|
|
fqdnPatternList |
array(FqdnPatternMatchingRule) |
O |
1..N |
List of FQDN patterns, where each FQDN pattern is described by a FQDN Pattern Matching Rule. An FQDN value is considered part of the template if and only if the FQDN in the Queries field in the DNS Response message fully matches at least one FQDN pattern. (NOTE 2) |
|
|
easIpv4AddrRanges |
array(Ipv4AddressRange) |
O |
1..N |
List of EAS IPv4 addresses ranges |
|
|
easIpv6PrefixRanges |
array(Ipv6PrefixRange) |
O |
1..N |
List of EAS IPv6 prefixes ranges |
|
|
NOTE 1: This attribute may contain free information describing the scope of the DNS Response MDT. It may be used e.g. for trouble-shooting. NOTE 2: The list of FQDN patterns may encode some FQDN patterns with a string matching rule and others with a regular expression (when the FQDN patterns cannot be described by a string matching rule). |
|||||
6.1.6.2.7 Type: Ipv4AddressRange
Table 6.1.6.2.7-1: Definition of type IPv4AddressRange
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
start |
Ipv4Addr |
M |
1 |
First value identifying the start of an IPv4 address range |
|
end |
Ipv4Addr |
M |
1 |
Last value identifying the end of an IPv4 address range |
6.1.6.2.8 Type: Ipv6PrefixRange
Table 6.1.6.2.8-1: Definition of type IPv6PrefixRange
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
start |
Ipv6Prefix |
M |
1 |
First value identifying the start of an IPv6 prefix range |
|
end |
Ipv6Prefix |
M |
1 |
Last value identifying the end of an IPv6 prefix range |
6.1.6.2.9 Type: Action
Table 6.1.6.2.9-1: Definition of type Action
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
applyAction |
ApplyAction |
M |
1 |
Action to apply to the DNS message |
|
forwardingParameters |
ForwardingParameters |
O |
0..1 |
This IE may be present if applyAction IE is set to " FORWARD". When present, it shall contain forward instructions to apply to the DNS message before forwarding it. |
|
reportingOnceInd |
boolean |
O |
0..1 |
Reporting-once Indication This IE may be present if the applyAction is set to "REPORT". When present, it shall be set as follows: – true: only one report shall be sent to the SMF, i.e. one report shall only be sent when a first DNS message matches any Message Detection Template of the DNS rule. – false (default): a report shall be sent to the SMF for any DNS message matching any Message Detection Template of the DNS rule. |
|
resetReportingOnceInd |
boolean |
O |
0..1 |
Reset the Reporting-once Indication This IE may be present in a request modifying a DNS rule, if the applyAction is set to "REPORT" and the reportingOnceInd is set to "true". When present, it shall be set as follows: – true: reset the Reporting-once Indication, i.e. send (only) one more report to the SMF when a next first DNS message matches any Message Detection Template of the DNS rule. – false (default): do not reset the Reporting-once Indication |
6.1.6.2.10 Type: DnsContextNotification
Table 6.1.6.2.10-1: Definition of type DnsContextNotification
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
eventReportList |
array(DnsContextEventReport) |
O |
1..N |
List of event reports |
6.1.6.2.11 Type: ForwardingParameters
Table 6.1.6.2.11-1: Definition of type ForwardingParameters
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
ecsOptionInfo |
EcsOptionInfo |
O |
0..1 |
Information to build optional EDNS Client Subnet (ECS) option to be included in the DNS Query as defined in IETF RFC 7871 [18], or to be used for replacing the ECS option received in the DNS Query message from the UE. |
|
dnsServerAddressInfo |
DnsServerAddressInfo |
O |
0..1 |
DNS Server Address Information to be used as destination address of the outgoing DNS Query |
6.1.6.2.12 Type: EcsOption
Table 6.1.6.2.12-1: Definition of type EcsOption
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
sourcePrefixLength |
integer |
M |
1 |
Leftmost number of significant bits of the IP address as defined for the SOURCE PREFIX-LENGTH in clause 6 of IETF RFC 7871 [18]. Minimum=0. Maximum=128 |
|
scopePrefixLength |
integer |
O |
0..1 |
Leftmost number of bits of the IP address that the DNS response covers as defined for the SCOPE PREFIX-LENGTH in clause 6 of IETF RFC 7871 [18]. This attribute shall only be sent in EASDF notification to the SMF. Minimum=0. Maximum=128 |
|
ipAddr |
IpAddr |
M |
1 |
IP address as defined for the ADDRESS in clause 6 of IETF RFC 7871 [18] |
6.1.6.2.13 Type: DnsContextEventReport
Table 6.1.6.2.13-1: Definition of type DnsContextEventReport
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
timestamp |
DateTime |
M |
1 |
Time of detection of the event |
|
dnsRuleId |
Uint32 |
C |
0..1 |
Identifies the DNS rule that triggered the report. This IE shall be present if the report is triggered by an event matching a DNS rule. |
|
dnsQueryReport |
DnsQueryReport |
O |
0..1 |
DNS Query Report |
|
dnsRspReport |
DnsRspReport |
O |
0..1 |
DNS Response Report |
|
dnsMsgId |
string |
O |
0..1 |
DNS message identifier When present, this IE shall be set to a unique identifier of the DNS message for which the event is reported (see clause 5.2.3.2.4) |
6.1.6.2.14 Type: DnsQueryReport
Table 6.1.6.2.14-1: Definition of type DnsQueryReport
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
fqdn |
Fqdn |
O |
0..1 |
FQDN received in the DNS Query |
6.1.6.2.15 Type: DnsRspReport
Table 6.1.6.2.15-1: Definition of type DnsRspReport
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
fqdn |
Fqdn |
O |
0..1 |
FQDN received in the DNS Response |
|
easIpv4Addresses |
array(IPv4Addr) |
O |
1..N |
EAS IPv4 address(es) received in the DNS Response |
|
easIpv6Addresses |
array(IPv6Addr) |
O |
1..N |
EAS IPv6 address(es) received in the DNS Response |
|
ecsOption |
EcsOption |
O |
0..1 |
EDNS Client Subnet (ECS) option received in the DNS Response (as defined in IETF RFC 7871 [18]) |
6.1.6.2.16 Type: EcsOptionInfo
Table 6.1.6.2.16-1: Definition of type EcsOptionInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
ecsOption |
EcsOption |
C |
0..1 |
Information to build optional EDNS Client Subnet (ECS) option to be included in the DNS Query as defined in IETF RFC 7871 [18], or to be used for replacing the ECS option received in the DNS Query message from the UE. (NOTE 1) |
|
baseDnsAitId |
BaselineDnsAitId |
C |
0..1 |
Identifier of the Baseline DNS Action Information Template that contains information to build optional EDNS Client Subnet (ECS) option to be included in the DNS Query as defined in IETF RFC 7871 [18], or to be used for replacing the ECS option received in the DNS Query message from the UE. (NOTE 1, NOTE 2) |
|
NOTE 1: Either the ecsOption IE or the baseDnsAitId IE shall be present. NOTE 2: The referenced baseline DNS Action Information Template may contain other information beyond the information to build the ECS option, in which case the EADSF shall only apply the information to build the ECS option. |
||||
6.1.6.2.17 Type: DnsServerAddressInfo
Table 6.1.6.2.17-1: Definition of type DnsServerAddressInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
|
dnsServerAddressList |
array(IpAddr) |
C |
1..N |
DNS Server Address to be used as destination address of the outgoing DNS Query. More than one IP address may be provided for resiliency. (NOTE 1) |
|
baseDnsAitId |
BaselineDnsAitId |
C |
0..1 |
Identifier of the Baseline DNS Action Information Template that contains DNS Server Address to be used as destination address of the outgoing DNS Query. (NOTE 1, NOTE 2) |
|
NOTE 1: Either the dnsServerAddressList IE or the baseDnsAitId IE shall be present. NOTE 2: The referenced baseline DNS Action Information Template may contain other information beyond the DNS Server Address information, in which case the EADSF shall only apply the DNS Server Address information. |
||||
6.1.6.2.18 Type: BaselineDnsMdtId
Table 6.1.6.2.18-1: Definition of type BaselineDnsMdtId
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
baseDnsPatternUri |
Uri |
M |
1 |
URI of the baseline DNS pattern returned in the Location header in the baseline DNS pattern creation response |
|
|
mdtId |
string |
M |
1 |
Identifier of the baseline DNS Message Detection Template ID within the baseline DNS pattern |
6.1.6.2.19 Type: BaselineDnsAitId
Table 6.1.6.2.19-1: Definition of type BaselineDnsAitId
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
baseDnsPatternUri |
Uri |
M |
1 |
URI of the baseline DNS pattern returned in the Location header in the baseline DNS pattern creation response |
|
|
aitId |
string |
M |
1 |
Identifier of the baseline DNS Action Information Template ID within the baseline DNS pattern |
6.1.6.2.20 Type: BaselineDnsQueryMdtInfo
Table 6.1.6.2.20-1: Definition of type BaselineDnsQueryMdtInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
|
sourceIpv4Addr |
Ipv4Addr |
O |
0..1 |
UE IPv4 address (NOTE) |
||
|
sourceIpv6Prefix |
Ipv6Prefix |
O |
0..1 |
UE IPv6 prefix (NOTE) |
||
|
baseDnsMdtList |
array(BaselineDnsMdtId) |
M |
1..N |
List of Baseline DNS Query Message Detection Template IDs. |
||
|
NOTE: If neither the sourceIpv4Addr IE nor the sourceIpv6Prefix IE is present, the UE IP address in the DNS Context Data shall be assumed. |
||||||
6.1.6.2.21 Type: BaselineDnsRspMdtInfo
Table 6.1.6.2.21-1: Definition of type BaselineDnsRspMdtInfo
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
baseDnsMdtList |
array(BaselineDnsMdtId) |
M |
1..N |
List of Baseline DNS Response Message Detection Template IDs. |
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 |
|
<one simple data type, i.e. boolean, integer, number, or string> |
6.1.6.3.3 Enumeration: ApplyAction
The enumeration ApplyAction represents an action to apply to the DNS packet. It shall comply with the provisions defined in table 6.1.6.3.3-1.
Table 6.1.6.3.3-1: Enumeration ApplyAction
|
Enumeration value |
Description |
Applicability |
|
"BUFFER" |
Buffer the DNS Query or Response message |
|
|
"REPORT" |
Report the DNS Query or Response message content to the SMF |
|
|
"FORWARD" |
Forward the DNS Query or Response message, after applying the instructions indicated in the forwarding parameters if any |
|
|
"DISCARD" |
Discard DNS messages |
6.1.6.4 Data types describing alternative data types or combinations of data types
There is no alternative data types or combinations of data types used for the Neasdf_DNSContext service in this version of the API.
6.1.6.5 Binary data
There is no binary data used for the Neasdf_DNSContext service in this version of the API.
6.1.7 Error Handling
6.1.7.1 General
For the Neasdf_DNSContext 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 Neasdf_DNSContext API.
6.1.7.2 Protocol Errors
Protocol errors handling shall be supported as specified in clause 5.2.7 of 3GPP TS 29.500 [4]. No further specific procedures for the Neasdf_DNSContext service are specified.
6.1.7.3 Application Errors
The application errors defined for the Neasdf_DNSContext service are listed in Table 6.1.7.3-1.
Table 6.1.7.3-1: Application errors
|
Application Error |
HTTP status code |
Description |
|
BASELINE_DNS_PATTERN_UNKNOWN |
400 Bad Request |
The request to create or modify a DNS context is rejected due to a baseline DNS pattern being unknown to the EASDF (i.e the URI of the baseline DNS pattern is unknown). |
|
BASELINE_DNS_MDT_UNKNOWN |
400 Bad Request |
The request to create or modify a DNS context is rejected due to a baseline DNS Message Detection Template being unknown to the EASDF (the baseline DNS pattern is known). |
|
BASELINE_DNS_AIT_UNKNOWN |
400 Bad Request |
The request to create or modify a DNS context is rejected due to a baseline DNS Action Information Template being unknown to the EASDF (the baseline DNS pattern is known). |
6.1.8 Feature negotiation
The optional features in table 6.1.8-1 are defined for the Neasdf_DNSContext 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 |
NOTE: No optional feature is defined for the Neasdf_DNSContext API in this release of the specification.
6.1.9 Security
As indicated in 3GPP TS 33.501 [8] and 3GPP TS 29.500 [4], the access to the Neasdf_DNSContext 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 Neasdf_DNSContext 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 Neasdf_DNSContext service.
The Neasdf_DNSContext API defines a single scope "neasdf-dnscontext" for the entire service, and it does not define any additional scopes at resource or operation level.
6.2 Neasdf_BaselineDNSPattern Service API
6.2.1 Introduction
The Neasdf_BaselineDNSPattern service shall use the Neasdf_BaselineDNSPattern API.
The API URI of the Neasdf_BaselineDNSPattern API shall be:
{apiRoot}/<apiName>/<apiVersion>
The request URIs used in HTTP requests from the NF service consumer towards the NF service producer shall have the Resource URI 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 "neasdf-baselinednspattern".
– The <apiVersion> shall be "v1".
– The <apiSpecificResourceUriPart> shall be set as described in clause 6.2.3.
6.2.2 Usage of HTTP
6.2.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 Neasdf_BaselineDNSPattern API is contained in Annex A.
6.2.2.2 HTTP standard headers
6.2.2.2.1 General
See clause 5.2.2 of 3GPP TS 29.500 [4] for the usage of HTTP standard headers.
6.2.2.2.2 Content type
The following content types shall be supported:
– JSON, as defined in 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].
– JSON Patch (IETF RFC 6902 [15]). The use of the JSON Patch format in a HTTP request body shall be signalled by the content type "application/json-patch+json".
6.2.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 supported, and the optional HTTP custom header fields specified in clause 5.2.3.3 of 3GPP TS 29.500 [4] may be supported.
6.2.3 Resources
6.2.3.1 Overview
Figure 6.2.3.1-1 describes the resource URI structure of the Neasdf_BaselineDNSPattern API.
Figure 6.2.3.1-1: Resource URI structure of the Neasdf_BaselineDNSPattern API
Table 6.2.3.1-1 provides an overview of the resources and applicable HTTP methods.
Table 6.2.3.1-1: Resources and methods overview
|
Resource name |
Resource URI |
HTTP method |
Description (service operation) |
|
Individual Baseline DNS Pattern |
/base-dns-patterns/{smfId}/{smfImplementationSegmentPaths} |
PUT |
Create a new Baseline DNS pattern, or replace the existing Baseline DNS pattern, by providing an Baseline DNS pattern |
|
PATCH |
Update (partial update) |
||
|
DELETE |
Delete |
6.2.3.2 Resource: Individual Baseline DNS Pattern
6.2.3.2.1 Description
This resource represents an individual Baseline DNS Pattern created in the EASDF.
This resource is modelled with the Document resource archetype (see clause C.1 of 3GPP TS 29.501 [5]).
6.2.3.2.2 Resource Definition
Resource URI: {apiRoot}/neasdf-baselinednspattern/<apiVersion>/base-dns-patterns/{smfId}/{smfImplementationSegmentPaths}
This resource shall support the resource URI variables defined in table 6.2.3.2.2-1.
Table 6.2.3.2.2-1: Resource URI variables for this resource
|
Name |
Data type |
Definition |
|
apiRoot |
string |
See clause 6.2.1. |
|
apiVersion |
string |
See clause 6.2.1. |
|
smfId |
VarNfId |
Represents the SMF Set Identifier (see NF Set Identifier in clause 28.12 of 3GPP TS 23.003 [19]) or the Set ID part within the SMF Set Identifier (see <Set Id> within the NF Set Identifier in clause 28.12 of 3GPP TS 23.003 [19]) or NF Instance Id of the SMF. The SMF Set Identifier or the Set ID part within the SMF Set ID shall be included if the EASDF is controlled by the SMF set, or the NF Instance Id of the SMF shall be included if the EASDF is controlled by a SMF. |
EXAMPLE 1: …/base-dns-patterns/smfInstanceId=4947a69a-f61b-4bc1-b9da-47c9c5d14b64/{smfImplementationSegmentPaths}
EXAMPLE 2: …/base-dns-patterns/smfSetId=set1.smfset.5gc.mnc012.mcc345/{smfImplementationSegmentPaths}
EXAMPLE 3: …/base-dns-patterns/setId=set1/{smfImplementationSegmentPaths}
6.2.3.2.3 Resource Standard Methods
6.2.3.2.3.1 PATCH
This method updates (partial update) an individual Baseline DNS Pattern resource in the EASDF.
This method shall support the URI query parameters specified in table 6.2.3.2.3.1-1.
Table 6.2.3.3.3.1-1: URI query parameters supported by the PATCH 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.2.3.2.3.1-2 and the response data structures and response codes specified in table 6.2.3.2.3.1-3.
Table 6.2.3.2.3.1-2: Data structures supported by the PATCH Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
array(PatchItem) |
M |
1..N |
It contains the list of changes to be made to the Baseline DNS pattern, according to the JSON PATCH format specified in IETF RFC 6902 [15]. |
Table 6.2.3.2.3.1-3: Data structures supported by the PATCH Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
PatchResult |
M |
1 |
200 OK |
Upon partial success, e.g. some of the requested modifications for unknown attribute(s) are discarded while the rest of the modification instructions are fully accepted, the EASDF shall return the execution report. |
|
n/a |
204 No Content |
Successful update of the Baseline DNS Pattern. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status code for the PATCH method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.2.3.2.3.1-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.2.3.2.3.1-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.2.3.2.3.2 PUT
This method creates or updates (complete replacement) an individual Baseline DNS Pattern resource in the EASDF.
This method shall support the URI query parameters specified in table 6.2.3.2.3.2-1.
Table 6.2.3.2.3.2-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.2.3.2.3.2-2 and the response data structures and response codes specified in table 6.2.3.2.3.2-3.
Table 6.2.3.2.3.2-2: Data structures supported by the PUT Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
BaseDnsPatternCreateData |
M |
1 |
Baseline DNS Pattern Data to be created or to replace the existing Baseline DNS Pattern data |
Table 6.2.3.2.3.2-3: Data structures supported by the PUT Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
DnsBasePatternCreatedData |
M |
1 |
201 Created |
Successful creation of a Baseline DNS Pattern |
|
n/a |
204 No Content |
Successful update of the Baseline DNS Pattern. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory 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: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.2.3.2.3.2-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.2.3.2.3.2-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.2.3.2.3.3 DELETE
This method deletes an individual Baseline DNS Pattern resource in the EASDF.
This method shall support the URI query parameters specified in table 6.2.3.2.3.3-1.
Table 6.2.3.2.3.3-1: URI query parameters supported by the DELETE 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.2.3.3.3.3-2 and the response data structures and response codes specified in table 6.2.3.2.3.3-3.
Table 6.2.3.2.3.3-2: Data structures supported by the DELETE Request Body on this resource
|
Data type |
P |
Cardinality |
Description |
|
n/a |
Table 6.2.3.2.3.3-3: Data structures supported by the DELETE Response Body on this resource
|
Data type |
P |
Cardinality |
Response codes |
Description |
|
n/a |
204 No Content |
Successful deletion of the Baseline DNS Pattern. |
||
|
RedirectResponse |
O |
0..1 |
307 Temporary Redirect |
Temporary redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
RedirectResponse |
O |
0..1 |
308 Permanent Redirect |
Permanent redirection. The response shall include a Location header field containing a different URI, or the same URI if this is a redirection triggered by an SCP to the same target resource via another SCP. In the former case, the URI shall be an alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set. (NOTE 2) |
|
NOTE 1: The mandatory HTTP error status code for the Successful deletion of method listed in Table 5.2.7.1-1 of 3GPP TS 29.500 [4] also apply. NOTE 2: RedirectResponse may be inserted by an SCP, see clause 6.10.9.1 of 3GPP TS 29.500 [4]. |
||||
Table 6.2.3.2.3.3-4: Headers supported by the 307 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
Table 6.2.3.2.3.3-5: Headers supported by the 308 Response Code on this resource
|
Name |
Data type |
P |
Cardinality |
Description |
|
Location |
string |
M |
1 |
An alternative URI of the resource located on an alternative service instance within the same EASDF or EASDF (service) set, or same URI if this is a redirection triggered by an SCP towards the same target resource via another SCP. |
|
3gpp-Sbi-Target-Nf-Id |
string |
O |
0..1 |
Identifier of the target EASDF (service) instance ID towards which the request is redirected |
6.2.3.3.4 Resource Custom Operations
6.2.3.3.4.1 Overview
Table 6.2.3.3.4.1-1: Custom operations
|
Operation Name |
Custom operation URI |
Mapped HTTP method |
Description (Service operation) |
6.2.4 Custom Operations without associated resources
There are no custom operations defined without any associated resources for the Neasdf_BaselineDNSPattern service in this release of this specification.
6.2.5 Notifications
There are no notifications defined for the Neasdf_BaselineDNSPattern service in this release of the specification.
6.2.6 Data Model
6.2.6.1 General
This clause specifies the application data model supported by the API.
Table 6.2.6.1-1 specifies the data types defined for the Neasdf_BaselineDNSPattern service based interface protocol.
Table 6.2.6.1-1: Neasdf_BaselineDNSPattern specific Data Types
|
Data type |
Clause defined |
Description |
Applicability |
|
BaseDnsPatternCreateData |
6.2.6.2.2 |
Data in Baseline DNS Pattern Create request |
|
|
BaseDnsPatternCreatedData |
6.2.6.2.3 |
Data in Baseline DNS Pattern Create response |
|
|
BaselineDnsMdt |
6.2.6.2.4 |
Baseline DNS message detection template |
|
|
BaselineDnsAit |
6.2.6.2.5 |
Baseline DNS action information Template |
|
|
VarNfId |
6.2.6.2.6 |
SMF or SMF Set Id or Set Id part in SMF set identifier |
Table 6.2.6.1-2 specifies data types re-used by the Neasdf 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 Neasdf_BaselineDNSPattern service based interface.
Table 6.2.6.1-2: Neasdf_BaselineDNSPattern re-used Data Types
|
Data type |
Reference |
Comments |
Applicability |
|
DnsQueryMdt |
6.1.6.2.5 |
DNS Query Message Detection Template |
|
|
DnsRspMdt |
6.1.6.2.6 |
DNS Response Message Detection Template |
|
|
EcsOption |
6.1.6.2.12 |
ECS Option information |
|
|
IpAddr |
3GPP TS 29.571 [16] |
IP address |
|
|
NfSetId |
3GPP TS 29.571 [16] |
NF Set Id |
|
|
NfInstanceId |
3GPP TS 29.571 [16] |
NF Instance Id |
|
|
PatchResult |
3GPP TS 29.571 [16] |
6.2.6.2 Structured data types
6.2.6.2.1 Introduction
This clause defines the structures to be used in resource representations.
6.2.6.2.2 Type: BaseDnsPatternCreateData
Table 6.2.6.2.2-1: Definition of type BaseDnsPatternCreateData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
label |
string |
O |
0..1 |
Baseline DNS pattern’s label (NOTE) |
|
|
baseDnsMdtList |
map(BaselineDnsMdt) |
O |
1..N |
When present, this IE contains the map of DNS message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], carrying the identifier of the baseline DNS Message Detection Template, with a maximum of 32 characters. |
|
|
baseDnsAitList |
map(BaselineDnsAit) |
O |
1..N |
When present, this IE contains the map of Baseline DNS action information Templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], carrying the identifier of the baseline DNS Message Detection Template, with a maximum of 32 characters. |
|
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.2.8 is supported. |
|
|
NOTE: This attribute may contain free information describing the scope of the baseline DNS pattern. It may be used e.g. for trouble-shooting. |
|||||
6.2.6.2.3 Type: BaseDnsPatternCreatedData
Table 6.2.6.2.3-1: Definition of type BaseDnsPatternCreatedData
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
supportedFeatures |
SupportedFeatures |
C |
0..1 |
This IE shall be present if at least one optional feature defined in clause 6.2.8 is supported. |
6.2.6.2.4 Type: BaselineDnsMdt
Table 6.2.6.2.4-1: Definition of type BaselineDnsMdt
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
mdtId |
string |
M |
1 |
Identifier of the DNS message detection template within the baseline DNS pattern, with a maximum of 32 characters. |
|
|
label |
string |
O |
0..1 |
Baseline DNS MDT’s label (NOTE 2) |
|
|
dnsQueryMdtList |
map(DnsQueryMdt) |
C |
1..N |
Map of DNS Query message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], carrying the identifier of the DNS Query message detection template, with a maximum of 32 characters. If present, only fqdnList attribute shall be included in the DNS Query message detection template. (NOTE 1) |
|
|
dnsRspMdtList |
map(DnsRspMdt) |
C |
1..N |
Map of DNS Response message detection templates. The key of the map shall be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [12], carrying the identifier of the DNS Response message detection template, with a maximum of 32 characters. (NOTE 1) |
|
|
NOTE 1: Either the dnsQueryMdtList IE or the dnsRspMdtList IE shall be present. NOTE 2: This attribute may contain free information describing the scope of the baseline DNS MDT. It may be used e.g. for trouble-shooting. |
|||||
6.2.6.2.5 Type: BaselineDnsAit
Table 6.2.6.2.5-1: Definition of type BaselineDnsAit
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
aitId |
string |
M |
1 |
Identifier of the DNS message handling action within the baseline DNS pattern |
|
|
label |
string |
O |
0..1 |
Baseline DNS AIT’s label (NOTE) |
|
|
ecsOption |
EcsOption |
C |
0..1 |
Information to build optional EDNS Client Subnet (ECS) option to be included in the DNS Query as defined in IETF RFC 7871 [18], or to be used for replacing the ECS option received in the DNS Query message from the UE. |
|
|
dnsServerAddressList |
array(IpAddr) |
C |
1..N |
DNS Server Address to be used as destination address of the outgoing DNS Query More than one IP address may be provided for resiliency. |
|
|
NOTE: This attribute may contain free information describing the scope of the baseline DNS AIT. It may be used e.g. for trouble-shooting. |
|||||
6.2.6.2.6 Type: VarNfId
Table 6.2.6.2.6-1: Definition of type VarNfId
|
Attribute name |
Data type |
P |
Cardinality |
Description |
Applicability |
|
smfSetId |
NfSetId |
C |
0..1 |
This IE shall be present if available. When present, this IE includes the SMF Set Id (NOTE) |
|
|
setId |
string |
C |
0..1 |
This IE shall be present if available. When present, this IE includes Set Id part in NF Set Identifier (see clause 28.12 of 3GPP TS 23.003 [7]), formatted as the following string: "set<Set ID>" with <Set ID> encoded as a string of characters consisting of alphabetic characters (A-Z and a-z), digits (0-9) and/or the hyphen (-) and that shall end with either an alphabetic character or a digit. Pattern: ‘^([A-Za-z0-9\-]*[A-Za-z0-9])$’ Examples: "set12" (NOTE) |
|
|
smfInstanceId |
NfInstanceId |
C |
0..1 |
This IE shall be present if available. When present, this IE includes SMF Instance Id (NOTE) |
|
|
NOTE: Either smfSetId attribute or setId or smfInstanceId attribute shall be included. |
|||||
6.2.7 Error Handling
6.2.7.1 General
For the Neasdf_BaselineDNSPattern 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 Neasdf_BaselineDNSPattern API.
6.2.7.2 Protocol Errors
No specific procedures for the Neasdf_BaselineDNSPattern API service are specified.
6.2.7.3 Application Errors
The application errors defined for the Neasdf_BaselineDNSPattern service are listed in Table 6.2.7.3-1.
Table 6.2.7.3-1: Application errors
|
Application Error |
HTTP status code |
Description |
6.2.8 Feature negotiation
The optional features in table 6.2.8-1 are defined for the Neasdf_BaselineDNSPattern API. They shall be negotiated using the extensibility mechanism defined in clause 6.6 of 3GPP TS 29.500 [4].
Table 6.2.8-1: Supported Features
|
Feature number |
Feature Name |
Description |
6.2.9 Security
As indicated in 3GPP TS 33.501 [8] and 3GPP TS 29.500 [4], the access to the Neasdf_BaselineDNSPattern 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 Neasdf_BaselineDNSPattern 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 Neasdf_BaselineDNSPattern service.
The Neasdf_BaselineDNSPattern API defines a single scope "neasdf-baselinednspattern" for the entire service, and it does not define any additional scopes at resource or operation level.
Annex A (normative):
OpenAPI specification