3 NSSF REST Specifications

This chapter provides information about REST specifications used in Oracle Communications Oracle Communication Cloud Native Core, Network Selection Slice Function (NSSF).

NSSF can be configured using Helm configurations, REST APIs, and Cloud Native Core (CNC) Console. The NSSF deployment configurations are performed during NSSF installation using Helm, and a few configurations are modified using REST APIs. REST configurations can also be performed using the Cloud Native Configuration (CNC) Console.

For HELM configurations, see Oracle Communications Cloud Native Core, Network Slice Selection Function Installation, Upgrade, and Fault Recovery Guide.

For the configurations using CNC Console, see Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

3.1 AMF Set

AMF Set is a mandatory Managed Object (MO). It contains information on supported AMF Sets per PLMN and their salience. This MO can also be configured automatically with default 0 salience by configuring NSI Profile. The operator must ensure that the salience of AMF Sets in a PLMN is not the same. If more than one AMF set supports an NSI, the set with the lowest salience is picked.

  • Request_Type: POST
  • URL: http://{apiRoot}/nnssf-configuration/v1/amfset
  • REST message sample - AMF Set
  • Content-Type: application/json
  • Initiated By: API Invoker

AMF Set Supported REST APIs

An operator can configure AMF Set by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the AMF Set Managed Object:

Table 3-1 AMF Set - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/amfset Create an AMF Set

Data Type: amfset

HTTP Method: POST

/nnssf-configuration/v1/amfset Read all AMF Sets

Data Type: amfset

HTTP Method: GET

/nnssf-configuration/v1/amfset/{mcc}-{mnc}-{sst}-{sd} Update an AMF Set

Data Type: amfset

HTTP Method: PUT

/nnssf-configuration/v1/amfset/{mcc}-{mnc}-{sst}-{sd} Read an AMF Set

Data Type: amfset

HTTP Method: GET

/nnssf-configuration/v1/amfset/{mcc}-{mnc}-{sst}-{sd} Delete an AMF Set

Data Type: amfset

HTTP Method: DELETE

Request or Response Body Parameters

The AMF Set Managed Object is mandatory. It comprises the MCC (Mobile Country Code), MNC (Mobile Network Code), AMF Region ID, AMF Set ID and AMF Pointer. This AMF Set contains information on supported AMF Sets per PLMN and their salience. This Managed Object can also be configured automatically with default 0 salience by configuring NSI-Profile.

Table 3-2 AMF Set - Parameters

Parameter Description Details
regionId This is a mandatory parameter.

Region ID of the target AMF list.

Data Type: String

setId This is a mandatory parameter.

Set ID of the target AMF list.

Data Type: String

mcc This is a mandatory parameter.

Mobile Country Code.

Data Type: String

mnc This is a mandatory parameter.

Mobile Network Code.

Data Type: String

salience This is an optional parameter.

Order of importance (higher salience, more important). Default value is 0.

Data Type: String

Supported Response Codes

Table 3-3 Supported Response Codes

Response Code Description
201 AMF Set configured successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
409 Constraint Violation
406 Not Acceptable client error
404 Config not found

Examples

The following example shows how an AMF Set is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/amfset -H 'Content-Type: application/json' -d '{ "regionId": "01","setId":
      "101","plmnId": { "mcc": "100","mnc": "101" }, "salience": 1
    }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "regionId": "01",
    "setId": "101",
    "plmnId": {
        "mcc": "100",
        "mnc": "101"
    },
    "salience": 1
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
  "regionId": "01",
  "setId": "101",
  "plmnId": {
    "mcc": "100",
    "mnc": "101"
  },
  "salience": 1,
  "mccmncRegionidSetId": "100-101-01-101"
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/amfset/{setId}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/amfset/100-101-01-101"

3.2 Nss Rules

Nss Rules is a mandatory Managed Object. It maps SNSSAI+TAI+AMF-ID to the Network Slice Instance. If TOD is enabled, it adds in slice selection based on TOD. NSS Rules are policy rules which allow the operator to ALLOW or REJECT a request for a Network Slice Selection request, and if allowed, then map to a Network Slice.

  • Request_Type: POST
  • URL: http://{apiRoot}/nnssf-configuration/v1/nssrules
  • REST message sample - Nss Rules
  • Content-Type: application/json
  • Initiated By: API Invoker

Nss Rules - Supported REST APIs

The operator can configure Nss Rules by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the Nss Rules Managed Object:

Table 3-4 Nss Rules - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/nssrules Get all NssRules.

Data Type: array(NssRule)

HTTP Method: GET

/nnssf-configuration/v1/nssrules Create a network slice selection rule

Data Type: NssRule

HTTP Method: POST

/nnssf-configuration/v1/nssrules/{name} Read a network slice selection rule

Data Type: NssRule

HTTP Method: GET

/nnssf-configuration/v1/nssrules/{name} Delete a network slice selection rule

Data Type: NssRule

HTTP Method: DELETE

/nnssf-configuration/v1/nssrules/{name} Update a network slice selection rule

Data Type: NssRule

HTTP Method: PUT

Nss Rules - Dependencies

To configure Nss Rules Managed Object, configure the following Managed Objects as a pre-requisite:

  • Nssai Auth: An Auth with Grant "Allowed" encompassing range of TACs, default for PLMN, or a single matching TAC with rule is mandatory.
  • Nsi Profile: Profile name being used in rule must be configured.
  • Time Profile: If the rule is to return different profiles based on time of the day, then configuring the time profile is mandatory.

Request or Response Body Parameters

The Nss Rules Managed Object enables the configuration of policy rules. It allows an operator to allow, reject, or associate a Network slice based on NSSAI (SST and SD), PLMN (MCC and MNC), TAC, and AMF_ID. The operator can configure salience value to prioritize one rule over other.

Table 3-5 Nss Rules - Parameters

Parameter Description Details
name M/C/O: This is a mandatory parameter.

It contains Network Slice Selection Rule Name.

Data Type: String

amfId M/C/O: This is an optional parameter.

It contains AMF Identifier.

Data Type: String

plmnId M/C/O: This is a mandatory parameter.

It contains Public Land Mobile Network ID (MCC:MNC).

Data Type: String

tac M/C/O: This is a conditional parameter.

It contains Tracking Area Code (TAC).

Data Type: String

tacrange M/C/O: This is a conditional parameter.

Either tac or tacrange would be present. If both are not present, or if tac is null, then the rule corresponds to the PLMN.

Data Type: TacRange

snssai M/C/O: This is a mandatory parameter.

It contains Single Network Slice Selection Assistance Information.

Data Type: Snssai

salience M/C/O: This is an optional parameter.

It contains the order of importance (higher salience, more important).

Note: salience should be greater that 5.

Data Type: Integer

behavior M/C/O: This is a mandatory parameter.

It contains the behavior of the parameter. To know more, see "Primitive Tables" in Oracle Communications Cloud Native Core, Network Slice Selection Function REST Specification Guide.

Data Type: String

Supported Response Codes

Table 3-6 Supported Response Codes

Response Code Description
201 NSS Rules configured successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
409 Constraint Violation
406 Not Acceptable client error
404 Config not found

Examples

The following example shows how an NSS Rules is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/nssrules -H 'Content-Type: application/json' -d '{ "name": "TACRANGE-RULE-1", "amfId": "12345678-abcd-efAB-CDEF-123456789012", "plmnId": { "mcc": "100", "mnc": "101" }, "tac": null, "tacrange": { "starttac": "100000", "endtac": "200000" }, "snssai": { "sst": "1", "sd": "EABB01" }, "salience": "6", "behavior": { "accessType": "3GPP_ACCESS", "nsiProfiles": [ { "name": "NSI-PROFILE-1", "salience": 6 } ] } }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "name": "TACRANGE-RULE-1",
    "amfId": "12345678-abcd-efAB-CDEF-123456789012",
    "plmnId": {
        "mcc": "100",
        "mnc": "101"
    },
    "tac": null,
    "tacrange": {
        "starttac": "100000",
        "endtac": "200000"
    },
    "snssai": {
        "sst": "1",
        "sd": "EABB01"
    },
    "salience": "6",
    "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
            {
                "name": "NSI-PROFILE-1",
                "salience": 6
            }
        ]
    }
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "name": "TACRANGE-RULE-1",
    "amfId": "12345678-abcd-efAB-CDEF-123456789012",
    "plmnId": {
        "mcc": "100",
        "mnc": "101"
    },
    "tacrange": {
        "starttac": "100000",
        "endtac": "200000"
    },
    "snssai": {
        "sst": 1,
        "sd": "EABB01"
    },
    "salience": 6,
    "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
            {
                "name": "NSI-PROFILE-1",
                "salience": 6
            }
        ]
    }
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssrules/{name}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssrules/TACRANGE-RULE-1"

3.3 Time Profiles

Time profile is a conditional configuration only configured if TOD is enabled. This MO consists of time spans used to create a separate policy based on the time of day.

  • Request_Type: POST
  • URL: http://host:port/nnssf-configuration/v1/timeprofiles
  • REST message sample - Time Profiles
  • Content-Type: application/json
  • Initiated By: API Invoker

Time Profile - Supported REST APIs

The operator can configure Time Profiles by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the Time Profile Managed Object.

Table 3-7 Time Profile - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/timeprofiles Create a time profile

Data Type: TimeProfile

HTTP Method: POST

/nnssf-configuration/v1/timeprofiles Read all time profiles

Data Type: array(TimeProfile)

HTTP Method: GET

/nnssf-configuration/v1/timeprofiles/{name} Read a time profile by name

Data Type: TimeProfile

HTTP Method: GET

/nnssf-configuration/v1/timeprofiles/{name} Delete a time profile by name

Data Type: TimeProfile

HTTP Method: DELETE

/nnssf-configuration/v1/timeprofiles/{name} Update a time profile by name.

If Time profile with name not found, return 404

Immutable Param: name

Mutable Param: Start date, End date, Days of week, timespan(s)

Data Type: TimeProfile

HTTP Method: PUT

Time Profile - Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a pre-requisite to configuring Time Profile.

Note:

It is applicable only when "Time of the Day Based Network Slice Instance Selection" feature is enabled. For for information, see Time of the Day Based Network Slice Instance Selection section in Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

Request or Response Body Parameters

The Time Profile Managed Object enables the configuration of time or date based slice selection policies. This allows an operator to create a Time Profile and associate it to a network slice when creating a NSS Rule Managed Object.

Table 3-8 Time Profile - Parameters

Parameter Description Details
name This is a mandatory parameter.

Time Profile Name.

Data Type: String

startDate This is a mandatory parameter.

Date in the format of yy-mm-dd.

Data Type: Date

endDate This is a mandatory parameter.

Date in the format of yy-mm-dd.

Data Type: Date

daysOfWeek This is an optional parameter.

See Enumerations section.

Data Type: array(Daysofweek)

timespans This is an optional parameter.

See Primitive Tables section.

Data Type: array(TimeSpan)

Supported Response Codes

Table 3-9 Supported Response Codes

Response Code Description
201 Time Profile configured successfully
200 Successful response
204 No Content
400 Bad Request
404 Config not found
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how an Time Profile is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/timeprofiles -H 'Content-Type: application/json' -d '{ "name": "WEEKDAY-BUSY", "startDate": "2021-09-10", "endDate": "2025-12-31", "daysOfWeek": [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY" ], "timeSpans": [ { "startTime": "07:00:00", "endTime": "09:00:00" }, { "startTime": "17:00:00", "endTime": "22:00:00" } ] }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "name": "WEEKDAY-BUSY",
    "startDate": "2021-09-10",
    "endDate": "2025-12-31",
    "daysOfWeek": 
    [
        "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"
    ],
    "timeSpans":
    [
        {
            "startTime": "07:00:00",
            "endTime": "09:00:00"
        },
        {
            "startTime": "17:00:00",
            "endTime": "22:00:00"
        }
    ]
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "name": "WEEKDAY-BUSY",
    "startDate": "2021-09-10",
    "endDate": "2025-12-31",
    "daysOfWeek": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY"
    ],
    "timeSpans": [
        {
            "startTime": "07:00:00",
            "endTime": "09:00:00"
        },
        {
            "startTime": "17:00:00",
            "endTime": "22:00:00"
        }
    ]
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/timeprofiles/{name}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/timeprofiles/WEEKDAY-BUSY"

3.4 Configured NSSAI

Configured NSSAI is a mandatory Managed Object. It signifies default configured NSSAI per PLMN. NSSF enables operator to configure default SNSSAI per TAC also.

Note:

Default Configured NSSAI signifies the Configured NSSAI for the PLMN by the operator. The Configured NSSAI that comes in the request is the UE's perspective of the same. The response from the NSSF is the intersection. The word "Default" is used to differentiate the perspectives (Operator and UE). This managed object signifies the Configured NSSAI for the PLMN, irrespective of the UE.
  • Request_Type: POST
  • URL:
  • http://{apiRoot}/nnssf-configuration/v1/configuredsnssais
  • REST message sample - Configured S-NSSAIs
  • Content-Type: application/json
  • Initiated by: API Invoker

Configured NSSAIs - Supported REST APIs

The operator can configure Configured NSSAIs by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the Configured NSSAIs Managed Object:

Table 3-10 Configured NSSAIs - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/configuredsnssais Create a configured NSSAI.

Data Type: array(ConfiguredNssai)

HTTP Method: POST

/nnssf-configuration/v1/configuredsnssais Read all configured NSSAIs.

Data Type: array(ConfiguredNssai)

HTTP Method: GET

/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}

If combination of AmfId, MCC, MNC, TAC is not found, then responds with 404

Mutable parameters: Snssai List, Salience

Immutable parameters: AMF-Id , MCC, MNC, TAC

Data Type: ConfiguredNssai

HTTP Method: PUT

/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}

Per AMF + TAI configured NSSAI

Per TAI configured NSSAI

Per PLMN configured NSSAI

Data Type:

ConfiguredNssai

ConfiguredNssai

array(ConfiguredNssai)

HTTP Method: GET

/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}

Delete a configured NSSAI.

Data Type: ConfiguredNssai

HTTP Method: DELETE

/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}-{sst}-{sd} Delete a configured NSSAI.

Data Type: ConfiguredNssai

HTTP Method: DELETE

ConfiguredNssai - Dependencies

To configure ConfiguredNssai Managed Object, you need to first configure the following Managed Objects as a prerequisite:

  • NssaiAuth: A default PLMN level Auth with grant ALLOWED.
  • NSSRule: A default PLMN level Rule with AMF_ID as null (No dependency on AMF).

Note:

For more information on default configuration, see Examples and steps for default Configured NSSAIs.

Request or Response Body Parameters

The Configured NSSAIs Managed Object enables the configuration of default NSSAI based on one or more of the following parameters: PLMN, TAC, and AMF-ID. The operator can configure default behavior when none of the rules match and UE has set default indication flag to true.

Table 3-11 Configured NSSAIs - Parameters

Parameter Description Details
plmnid This is a mandatory parameter.

Public Land Mobile Network ID (MCC:MNC).

Data Type: plmnid

nssai This is a mandatory parameter.

See Primitive Table section.

Data Type: array(Snssai)

Supported Response Codes

Table 3-12 Supported Response Codes

Response Code Description
201 ConfiguredNssai configured successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
404 Not Found
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how an Configured NSSAI is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/configuredsnssais -H 'Content-Type: application/json' -d '{ "plmn": { "mcc": "100", "mnc": "101" }, "nssai": [ { "sst": 1, "sd": "EABB01" } ] }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "plmn": {
        "mcc": "100",
        "mnc": "101"
    },
    "nssai": [
        {
            "sst": 1,
            "sd": "EABB01"
        }
    ]
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
  "plmn": {
    "mcc": "100",
    "mnc": "101"
  },
  "nssai": [
    {
      "sst": 1,
      "sd": "EABB01"
    }
  ],
  "plmnId": "100-101"
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/configuredsnssais/100-101"

Examples and steps for default Configured NSSAIs

Scenario: This is a sample scenario where we are confiuring S-NSSAI (1,EABB01) as default configured NSSAI. Perform the following prerequisite configurations for this scenario:

  1. Configure Auth: It signifies that S-NSSAI (1,EABB01) is allowed on the whole PLMN.
    Sample cURL for configuring Auth:
    curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/nssaiauth -H 'Content-Type: application/json' -d '{
      "name": "NSSAI-AUTH-1",
      "plmnId": { "mcc": "100", "mnc": "101" },
      "snssai": { "sst": "1", "sd": "EABB01" },
      "grant": "ALLOWED"
    }'
    
  2. Configure Rule: It signifies that S-NSSAI (1,EABB01) is allowed as per Auth, and also with that linked Auth Profile, NSI-PROFILE-1 is mapped.
    Sample cURL for configuring Rule:
    curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/nssrules -H 'Content-Type: application/json' -d '{
      "name": "IR-RULE-1",
      "plmnId": { "mcc": "100", "mnc": "101" },
      "snssai": { "sst": 1, "sd": "EABB01" },
      "salience": "6",
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [{ "name": "NSI-PROFILE-1" }]
      }
    }'
    
  3. Configure Configured NSSAI: Now, we can have S-NSSAI (1, EABB01) in PLMN ("mcc": "100", "mnc": "101") set as the default. This configuration is because there is an Auth, S-NSSAI (1, EABB01), in PLMN ("mcc": "100", "mnc": "101"), and a rule that maps the Auth to a profile.
    Sample cURL to configure Configured NSSAI:
    curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/configuredsnssais -H 'Content-Type: application/json' -d '{
      "plmn": { "mcc": "100", "mnc": "101" },
      "nssai": [ { "sst": 1, "sd": "EABB01" } ]
    }'
    

Note:

  • If more S-NSSAIs need to be part of Configured NSSAI, then a similar Auth and Rule pair must be configured for each S-NSSAI.
  • These steps assume that the NSI-PROFILE-1 profile already exists.

3.5 NSSAI Auth

NSSAI Auth is a mandatory Managed Object. It consists of network slice, TAI and Grant value. The configuration signifies a mapping of allowed and restricted S-NSSAI per TAI.

  • Request_Type: POST
  • URL: http://localhost:5755/nnssf-configuration/v1/nssaiauth
  • REST message sample - NSSAI Auth
  • Initiated by: API Invoker

NSSAI Auth - Supported REST APIs

An operator can configure NSSAI Auth by following the information provided in the table below. The supported operations are POST, GET, and DELETE. The following table provides information about the REST APIs supported by the NSSAI Auth Managed Object.

Table 3-13 NSSAI Auth - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/nssaiauth Create an NSSAIAuth Profile.

Data Type: NssaiAuth

HTTP Method: POST

nnssf-configuration/v1/nssaiauth Return all configured NssaiAuth Managed Objects

Data Type: array(NssaiAuth)

HTTP Method: GET

nnssf-configuration/v1/nssaiauth/{name} Returns an NssaiAuth Managed Object if present with the name

Data Type: NssaiAuth

HTTP Method: GET

nnssf-configuration/v1/nssaiauth/{name} Updates an NssaiAuth Managed Object if present with the name

Data Type: NssaiAuth

HTTP Method: PUT

/nnssf-configuration/v1/nssaiauth/{name} Delete an NssaiAuth Managed Object if a Managed Object with name is found.

Data Type: NssaiAuth

HTTP Method: DELETE

NSSAI Auth - Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a prerequisite to configure NSSAI Auth.

Request or Response Body Parameters

The NSSAI Auth Managed Object enables the configuration of network slice authentication rules by configuring Grant status (Allowed_PLMN, Rejected_PLMN, or Rejected_TAC) for S-NSSAI on a per TAI basis.

Table 3-14 NSSAI Auth - Parameters

Parameter Description Details
name This is a mandatory parameter.

Network Slice Authentication Rule Name.

Data Type: String

plmnId This is a mandatory parameter.

Public Land Mobile Network ID (MCC:MNC).

Data Type: plmnid

tac This is a conditional parameter.

Tracking Area Code.

Data Type: String

tacrange This is a conditional parameter.

Range of TAC represented by starttac and endtac. Either tac or tacrange would be present. If both are not present, then Auth corresponds to PLMN.

Data Type: TacRange

snssai This is a mandatory parameter.

Single Network Slice Selection Assistance Information.

Data Type: Snssai

grant This is a mandatory parameter.

Whether the requested s-NSSAI is allowed or restricted.

Data Type: Grant

Supported Response Codes

Table 3-15 Supported Response Codes

Response Code Description
201 NSSAI Auth configured successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
409 Constraint Violation
406 Not Acceptable client error
422 Unprocessable entity
404 Config not found
500 Internal Server Error

Examples

The following example shows how an NSSAI Auth is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/nssaiauth -H 'Content-Type: application/json' -d '{ "name": "NSSAI-AUTH-1", "plmnId": { "mcc": "100", "mnc": "101" }, "tac": null, "tacrange": { "starttac": "100000", "endtac": "200000" }, "snssai": { "sst":"1", "sd":"EABB01" }, "grant": "ALLOWED" }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "name": "NSSAI-AUTH-1",
    "plmnId":
    {
        "mcc": "100",
        "mnc": "101"
    },
    "tac": null,
    "tacrange":
    {
        "starttac": "100000",
        "endtac": "200000"
    },
    "snssai": 
    {
        "sst":"1",
        "sd":"EABB01"
    },
    "grant": "ALLOWED"
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "name": "NSSAI-AUTH-1",
    "plmnId":
    {
        "mcc": "100",
        "mnc": "101"
    },
    "tacrange":
    {
        "starttac": "100000",
        "endtac": "200000"
    },
    "snssai": 
    {
        "sst":"1",
        "sd":"EABB01"
    },
    "grant": "ALLOWED"
}

Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssaiauth/{name}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssaiauth/NSSAI-AUTH-1"

3.6 AMF Resolutions

AMF Resolutions is a conditional Managed Object, only configured if subscription to NRF helm parameter (nsconfig.nrf.subscription) is not set. AMF Resolutions enables operator to configure mapping candidate AMF list to a Target AMF set ID and Region ID. If a subscription to NRF is set, this MO is auto-populated.

  • Request_Type: POST
  • URL: http: //{apiRoot}/nnssf-configuration/v1/amfresolutions
  • REST message sample - AMF Resolutions
  • Content-Type: application/json
  • Initiated By: API Invoker

AMF Resolutions - Supported REST APIs

An operator can configure AMF Resolutions by following the information provided in the table below. The supported operations are POST and GET. The following table provides information about the REST APIs supported by the AMF Resolutions Managed Object:

Table 3-16 AMF Resolutions - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/amfresolutions Get all AMFs for all set-ids

Data Type: array(AmfResolution)

HTTP Method: GET

/nnssf-configuration/v1/amfresolutions Create a AMF Resolutions

Data Type: AmfResolution

HTTP Method: POST

/nnssf-configuration/v1/amfresolutions/{mcc}-{mnc}-{sst}-{sd} Get all AMFs inside the set-id

Data Type: AmfResolution

HTTP Method: GET

/nnssf-configuration/v1/amfresolutions/{mcc}-{mnc}-{sst}-{sd} Updates the candidateAmfList for the AMF with set-id{mcc}-{mnc}-{sst}-{sd}.

Note: candidateAmfList should not be empty. An AMF set must contain at least one candidate AMF.

Data Type: AmfResolution

HTTP Method: PUT

AMF Resolutions -Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a prerequisite to configure AMF Resolution.

Request or Response Body Parameters

The AMF Resolutions Managed Object enables the configuration of mapping list of candidate AMFs to a pair of Target AMF set ID and Region ID. The operator can provide a static candidate AMF list. This configuration is used in cases where customer has disabled discovery service with NRF.

Table 3-17 AMF Resolutions - Parameters

Attribute Description Details
regionId This is a mandatory parameter.

Region ID of the target AMF list.

Data Type: Integer

setId This is a mandatory parameter.

Set ID of the target AMF list.

Data Type: Integer

mcc This is a mandatory parameter.

Mobile Country Code.

Data Type: String

mnc This is a mandatory parameter.

Mobile Network Code.

Data Type: String

candidateAmfList This is a conditional parameter.

For more information, see in the Primitive Table section .

Note: This parameter is mandatory, non empty, and valid when NRF subscription is not enabled. When NRF subscription is enabled, this parameter is ignored.

Data Type: Array(candidateAmf)

Caution:

An AMF set must contain at least one AMF, and this requirement must be maintained during configuration. The NSSF does not allow the operator to delete all AMFs within an AMF set, as an empty AMF set has no operational value. Therefore, if the operator intends to remove all AMFs from an AMF set, it is recommended to delete the entire AMF set instead.

Supported Response Codes

Table 3-18 Supported Response Codes

Response Code Description
201 AMF Resolutions configured successfully
200 Successful response
204 No Content
400 Bad Request
404 Not Found
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how an AMF Resolution is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/amfresolutions -H 'Content-Type: application/json' -d '{ "regionId": "01", "setId": "102", "mcc":"100", "mnc":"101", "candidateAmfList": [ { "instanceId": "12345678-abcd-efAB-CDEF-123456789012" }, { "instanceId": "12345678-abcd-efAB-CDEF-123456789013" } ] } }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "regionId": "01",
    "setId": "102",
    "mcc":"100",
    "mnc":"101",
    "candidateAmfList":
    [
        {
            "instanceId": "12345678-abcd-efAB-CDEF-123456789012"
        },
        {
            "instanceId": "12345678-abcd-efAB-CDEF-123456789013"
        }
    ]
}
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "regionId": "01",
    "setId": "102",
    "mcc":"100",
    "mnc":"101",
    "candidateAmfList":
    [
        {
            "instanceId": "12345678-abcd-efAB-CDEF-123456789012"
        },
        {
            "instanceId": "12345678-abcd-efAB-CDEF-123456789013"
        }
    ]
}

3.7 NSI Profiles

NSI Profiles is a mandatory Managed Object. It consists of network slice name and ID and NRF-ID, Target AMF lists associated with the slice. This Managed Object contains network slice information.

Note:

If Target AMF sets associated with network slice is not present then NSSF adds AMF set with salience 0.
  • Request_Type: POST
  • URL: http://{apiRoot}/nnssf-configuration/v1/nsiprofiles
  • REST message sample - NSI Profiles
  • Content-Type: application/json
  • Initiated By: API Invoker

NSI Profiles - Supported REST APIs

Customer can configure NSI Profiles by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the NSI Profiles Managed Object:

Table 3-19 NSI Profiles - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/nsiprofiles Returns array of all configured NsiProfiles.

Data Type: array(NsiProfile)

HTTP Method: GET

/nnssf-configuration/v1/nsiprofiles Create a network slice instance profile.

Data Type: NsiProfile

HTTP Method: POST

/nnssf-configuration/v1/nsiprofiles/{name} Read a network slice instance profile. Returns NsiProfile based on name

Data Type: NsiProfile

HTTP Method: GET

/nnssf-configuration/v1/nsiprofiles/{name} Delete a network slice instance profile based on name.

Data Type: NsiProfile

HTTP Method: DELETE

/nnssf-configuration/v1/nsiprofiles/{name} Update a network slice instance profile based on name.

Immutable parameter is nsiId. Rest all parameters, except name, are mutable.

It performs a Delete and POST only for targetamfsets.

Data Type: NsiProfile

HTTP Method: PUT

NSI Profiles - Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a prerequisite to configure NSI Profile.

Request or Response Body Parameters

The NSI Profiles Managed Object enables the configuration of Network Slice Instance profile. The operator can create a Network Slice by providing a name, id, NRF URL corresponding to the slice, and a list of Target AMF sets that support this slice.

Table 3-20 NSI Profiles - Parameters

Parameter Description Details
name This is a mandatory parameter.

Contains Network Slice Instance Profile Name.

Data Type: String

nrfUri This is a mandatory parameter.

Contains URI of the Network Repository Function.

Note: It must contain NRF NF Discovery URL.

Data Type: String

nsiId This is an optional parameter.

Contains Network Slice Instance Identifier.

Data Type: String

targetAmfSets This is a mandatory parameter.

Contains an array of TargetAmfSet (see Primitive Tables section).

Data Type: Array (TargetAmfSet)

nrfNfMgtUri This is a mandatory parameter.

Contains Management URI of Network Resource Function.

Data Type: String

nrfAccessTokenUri This is a mandatory parameter.

Contains Access Token URI of Network Resource Function.

Data Type: String

plmn This is a mandatory parameter.

Contains PLMN ID.

Data Type: plmn

Supported Response Codes

Table 3-21 Supported Response Codes

Response Code Description
201 NSI Profiles configured successfully
400 Bad Request
403 Forbidden
404 Config not found
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how an NSI Profiles is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/nsiprofiles -H 'Content-Type: application/json' -d '{ "name": "NSI-PROFILE-1", "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1", "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1", "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token", "nsiId": "SLICE1", "plmn": { "mcc": "100", "mnc": "101" }, "targetAmfSets": [ { "regionId": "01", "setId": "101", "salience": "1" }, { "regionId": "01", "setId": "102", "salience": "2" } ] }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "name": "NSI-PROFILE-1",
    "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
    "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
    "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
    "nsiId": "SLICE1",
    "plmn": {
        "mcc": "100",
        "mnc": "101"
    },
    "targetAmfSets": [
        {
            "regionId": "01",
            "setId": "101",
            "salience": "1"
        },
        {
            "regionId": "01",
            "setId": "102",
            "salience": "2"
        }
    ]
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "name": "NSI-PROFILE-1",
    "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
    "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
    "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
    "nsiId": "SLICE1",
    "plmn": {
        "mcc": "100",
        "mnc": "101"
    },
    "targetAmfSets": [
        {
            "regionId": "01",
            "setId": "101",
            "salience": 1
        },
        {
            "regionId": "01",
            "setId": "102",
            "salience": 2
        }
    ]
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nsiprofiles/{name}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nsiprofiles/NSI-PROFILE-1"

3.8 GrSite

GrSite is a conditional Managed Object. It is relevant only if georedundancy (global.grEnabled) is enabled. GrSite enables the customer to configure GrSite information.

  • Request_Type: POST/GET /PUT
  • URL: http: //{apiRoot}/nnssf-configuration/v1/grsites
  • REST message sample - GrSite
  • Content-Type: application/json
  • Initiated By: API Invoker

GrSite - Supported REST APIs

Configure the GrSite by using the information provided in the table below. The supported operations are POST, GET, and PUT. The following table provides information about the REST APIs supported by the GrSite Managed Object:

Table 3-22 GrSite - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/grsites It returns array of all configured GrSites.

Data Type: Array(GrSite)

HTTP Method: GET

/nnssf-configuration/v1/grsites/{NfId} It returns GrSite for corresponding nfId.

Data Type: Array(GrSite)

HTTP Method: GET

/nnssf-configuration/v1/grsites It creates a GrSite.

Data Type: GrSite

HTTP Method: POST

/nnssf-configuration/v1/grsites/{nfId} It updates the rank of GrSite.

Data Type: Integer(GrSite)

HTTP Method: PUT

/nnssf-configuration/v1/grsites/{NfId} It deletes GrSite for corresponding nfId.

Data Type: GrSite

HTTP Method: DELETE

GrSite - Dependencies

This Managed Object is not dependent on other Managed Objects. Hence, configuration of any other Managed Objects is not a prerequisite to configure GrSite.

Note:

It is applicable only when Georedundency is enabled in the helm options. For for information about enabling Georedundency, see Georedundency section in Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

Request or Response Body Parameters

The GrSite Managed Object enables the configuration of different sites for the NSSF. This Managed Object allows an operator to configure various sites with different priorities, ranks, and statuses.

Note:

Currently, NSSF supports three-site georedundency.

Table 3-23 GrSite - Parameters

Parameter Description Details
nfId This is a mandatory parameter.

Contains the instance ID of the site NSSF.

Data Type: String

rank This is a mandatory parameter.

Contains the priority given by the operator to related georedundant sites.

Note: A lower value indicates a higher priority.

Data Type: Integer

grSiteStatus This is a mandatory parameter.

It contains the current status of the site or NSSF.

Note: To know more about data type, see enumerations section.

Range: ACTIVE or DOWN

Data Type: enum

Supported Response Codes

Table 3-24 Supported Response Codes

Response Code Description
201 GrSite configured successfully
200 Successful response
204 No Content
400 Bad Request
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how a GrSite is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "1", "nfId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "grSiteStatus":"ACTIVE" }'
Example of the Request Body
The following snippet shows an example of the request body:
{
    "rank": "1",
    "nfId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1",
    "grSiteStatus":"ACTIVE"
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "rank": "1",
    "nfId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1",
    "grSiteStatus":"ACTIVE"
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/grsites/{NfId}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/grsites/fe7d992b-0541-4c7d-ab84-c6d70b1b01b1"

3.9 NSSF Backup and Restore Configurations

These APIs provide functionality to back up existing configuration, delete existing configuration, and to restore a (stored) back up.

  • Request_Type: POST/GET/DELETE
  • URL: http://{apiRoot}/nnssf-configuration/v1/upload
  • Content-Type: application/json
  • Initiated By: API Invoker

NSSF Backup and Restore Configurations - Supported REST APIs

Configure the ConfigurationBackup Managed Object by following the information provided in the table below. The supported operations are POST, GET, and DELETE. Perform the configuration of ConfigurationBackup Managed Object as follows:

Table 3-25 NSSF Backup and Restore Configurations - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/upload Restores a backup configuration.

Data Type: ConfigBackup

HTTP Method: POST

/nnssf-configuration/v1/backup Returns backup of existing configuration.

Data Type: ConfigBackup

HTTP Method: GET

/nnssf-configuration/v1/deleteConfiguration/ Deletes existing configuration.

HTTP Method: DEL

Request or Response Body Parameters

ConfigurationBackup consists of list of following parameters:

Table 3-26 NSSF Backup and Restore Configurations - Parameters

Parameter Description Details
plmnLevelNsiProfileDto If PlmnLevelNsiProfile is configured, this parameter contains list of PlmnLevelNsiProfiles. Data Type: Array(PLMNLevelNsiProfileDto)
nsiProfileDto

If NsiProfile is configured, this parameter contains list of NsiProfiles.

Data Type: Array(NsiProfileDto)

nssaiAuthDto

If NssaiAuth is configured, this parameter contains list of NssaiAuths.

Data Type: Array(NsiProfileDto)

timeProfileDto

If TimeProfile is configured, this parameter contains list of TimeProfile.

Data Type: Array(TimeProfileDto)

nssRuleDto

If NssRule is configured, this parameter contains list of NssRule.

Data Type: Array(NssRuleDto)

amfResolutionDto

If AmfResolution is configured, this parameter contains list of AmfResolution.

Data Type: Array(AmfResolutionDto)

configuredSnssaiDto

If ConfiguredSnssai is configured, this parameter contains list of ConfiguredSnssai.

Data Type: Array(ConfiguredSnssaiDto)

amfSetDto If amfSetDto is configured, this parameter contains list of AmfSets. Data Type: Array(AmfSetDto)
mappingOfNssaisDto If mappingOfNssaisDto is configured, this parameter contains list of MappingOfNssais. Data Type: Array(PlmnMappingOfNssai)
nssfSystemOptionDtoList If nssfSystemOptionDtoList is configured, this parameter contains list of NssfSystemOptions. Data Type: Array(NssfSystemOptionDto)
trustedAmfDtoList If trustedAmfDtoList is configured, this parameter contains list of TrustedAmfs. Data Type: Array(TrustedAmfDto)

Supported Response Codes

Table 3-27 Supported Response Codes

Response Code Description
201 Configured successfully
400 Bad Request
404 Not Found
406 Not Acceptable client error
204 No Content

Examples

The following example shows how ConfigurationBackup is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/upload -H 'Content-Type: application/json' -d '
Example of the Request Body of Configuration Upload
The following snippet shows an example of the request body:
{
  "plmnLevelNsiProfileDto": [
    {
      "name": "NSI-PROFILE-3",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLIC3",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "plmnId": "100-101"
    }
  ],
  "nsiProfileDto": [
    {
      "name": "NSI-PROFILE-1",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLICE1",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        }
      ]
    },
    {
      "name": "NSI-PROFILE-2",
      "nrfUri": "https://nrf.slice2.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice2.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice2.oracle.com/oauth2/token",
      "nsiId": "SLICE2",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        },
        {
          "regionId": "01",
          "setId": "103",
          "salience": 3
        }
      ]
    }
  ],
  "nssaiAuthDto": [
    {
      "name": "NSSAI-AUTH-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-4",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    }
  ],
  "timeProfileDto": [
    {
      "name": "WEEKDAY-BUSY",
      "startDate": "2021-09-10",
      "endDate": "2025-12-31",
      "daysOfWeek": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY"
      ],
      "timeSpans": [
        {
          "startTime": "07:00:00",
          "endTime": "45:00:00"
        },
        {
          "startTime": "17:00:00",
          "endTime": "22:00:00"
        }
      ]
    }
  ],
  "nssRuleDto": [
    {
      "name": "TACRANGE-RULE-1",
      "amfId": "12345678-abcd-efAB-CDEF-123456789012",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "tacrange": {
        "starttac": "100000",
        "endtac": "200000"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "salience": 6,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-1",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-2",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-3",
            "salience": 6
          }
        ]
      }
    }
  ],
  "amfResolutionDto": [
    {
      "regionId": "01",
      "setId": "102",
      "mcc": "100",
      "mnc": "101",
      "mccmncRegionidSetId": "100-101-01-102",
      "candidateAmfList": [
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789012"
        },
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789013"
        }
      ]
    }
  ],
  "configuredSnssaiDto": [
    {
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "nssai": [
        {
          "sst": 5,
          "sd": "EABB01"
        }
      ],
      "plmnId": "100-101"
    }
  ],
  "amfSetDto": [
    {
      "regionId": "01",
      "setId": "101",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 0,
      "mccmncRegionidSetId": "100-101-01-101"
    },
    {
      "regionId": "01",
      "setId": "102",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 0,
      "mccmncRegionidSetId": "100-101-01-102"
    },
    {
      "regionId": "01",
      "setId": "103",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 0,
      "mccmncRegionidSetId": "100-101-01-103"
    },
    {
      "regionId": "01",
      "setId": "104",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 1,
      "mccmncRegionidSetId": "100-101-01-104"
    }
  ],
  "mappingofNssaisDto": [
    {
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "mappingOfNssai": [
        {
          "servingSnssai": {
            "sst": 1,
            "sd": "EABB01"
          },
          "homeSnssai": {
            "sst": 7,
            "sd": "EABB07"
          }
        },
        {
          "servingSnssai": {
            "sst": 2,
            "sd": "EABB02"
          },
          "homeSnssai": {
            "sst": 8,
            "sd": "EABB08"
          }
        }
      ]
    }
  ],
  "nssfSystemOptionDtoList": [
    {
      "NssfSystemOptionService": [
        {
          "scope": "NsSelection",
          "PerPLMNConfiguration": [
            {
              "PlmnConfiguration": {
                "EnableEnhancedAllowedNSSAIComputation": true
              },
              "plmnId": {
                "mcc": "100",
                "mnc": "101"
              }
            }
          ]
        }
      ],
      "AutoConfigurationFromNsAvailability": "FromTrustedAMFs",
      "EnhancedPatchBehaviour": false
    }
  ],
  "trustedAmfDtoList": [
    {
      "amfSet": "100-101-01-101",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a01",
        "4faf1bbc-6e4a-4454-a507-aef01a101a02"
      ]
    },
    {
      "amfSet": "100-101-01-103",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a03",
        "4faf1bbc-6e4a-4454-a507-aef01a101a04"
      ]
    }
  ]
}
Example of the Response Body of Configuration Upload
The following example shows the contents of the response body in JSON format.
{
  "plmnLevelNsiProfileDto": [
    {
      "name": "NSI-PROFILE-3",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLIC3",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "plmnId": "100-101"
    }
  ],
  "nsiProfileDto": [
    {
      "name": "NSI-PROFILE-1",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLICE1",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        }
      ]
    },
    {
      "name": "NSI-PROFILE-2",
      "nrfUri": "https://nrf.slice2.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice2.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice2.oracle.com/oauth2/token",
      "nsiId": "SLICE2",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        },
        {
          "regionId": "01",
          "setId": "103",
          "salience": 3
        }
      ]
    }
  ],
  "nssaiAuthDto": [
    {
      "name": "NSSAI-AUTH-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-4",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    }
  ],
  "timeProfileDto": [
    {
      "name": "WEEKDAY-BUSY",
      "startDate": "2021-09-10",
      "endDate": "2025-12-31",
      "daysOfWeek": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY"
      ],
      "timeSpans": [
        {
          "startTime": "07:00:00",
          "endTime": "45:00:00"
        },
        {
          "startTime": "17:00:00",
          "endTime": "22:00:00"
        }
      ]
    }
  ],
  "nssRuleDto": [
    {
      "name": "TACRANGE-RULE-1",
      "amfId": "12345678-abcd-efAB-CDEF-123456789012",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "tacrange": {
        "starttac": "100000",
        "endtac": "200000"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "salience": 6,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-1",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-2",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-3",
            "salience": 6
          }
        ]
      }
    }
  ],
  "amfResolutionDto": [
    {
      "regionId": "01",
      "setId": "102",
      "mcc": "100",
      "mnc": "101",
      "mccmncRegionidSetId": "100-101-01-102",
      "candidateAmfList": [
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789012"
        },
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789013"
        }
      ]
    }
  ],
  "configuredSnssaiDto": [
    {
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "nssai": [
        {
          "sst": 5,
          "sd": "EABB01"
        }
      ],
      "plmnId": "100-101"
    }
  ],
  "amfSetDto": [
    {
      "regionId": "01",
      "setId": "104",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 1,
      "mccmncRegionidSetId": "100-101-01-104"
    }
  ],
  "mappingofNssaisDto": [
    {
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "mappingOfNssai": [
        {
          "servingSnssai": {
            "sst": 1,
            "sd": "EABB01"
          },
          "homeSnssai": {
            "sst": 7,
            "sd": "EABB07"
          }
        },
        {
          "servingSnssai": {
            "sst": 2,
            "sd": "EABB02"
          },
          "homeSnssai": {
            "sst": 8,
            "sd": "EABB08"
          }
        }
      ]
    }
  ],
  "nssfSystemOptionDtoList": [
    {
      "NssfSystemOptionService": [
        {
          "scope": "NsSelection",
          "PerPLMNConfiguration": [
            {
              "PlmnConfiguration": {
                "EnableEnhancedAllowedNSSAIComputation": false
              },
              "plmnId": {
                "mcc": "311",
                "mnc": "480"
              }
            },
            {
              "PlmnConfiguration": {
                "EnableEnhancedAllowedNSSAIComputation": true
              },
              "plmnId": {
                "mcc": "100",
                "mnc": "101"
              }
            }
          ]
        }
      ],
      "AutoConfigurationFromNsAvailability": "FromTrustedAMFs",
      "EnhancedPatchBehaviour": false
    }
  ],
  "trustedAmfDtoList": [
    {
      "amfSet": "100-101-01-101",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a01",
        "4faf1bbc-6e4a-4454-a507-aef01a101a02"
      ]
    },
    {
      "amfSet": "100-101-01-103",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a03",
        "4faf1bbc-6e4a-4454-a507-aef01a101a04"
      ]
    }
  ]
}
Example of the Response Body of Configuation Backup
The following example shows the contents of the response body in JSON format:
{
  "plmnLevelNsiProfileDto": [
    {
      "name": "NSI-PROFILE-3",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLIC3",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "plmnId": "100-101"
    }
  ],
  "nsiProfileDto": [
    {
      "name": "NSI-PROFILE-1",
      "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
      "nsiId": "SLICE1",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        }
      ]
    },
    {
      "name": "NSI-PROFILE-2",
      "nrfUri": "https://nrf.slice2.oracle.com/nnrf-disc/v1",
      "nrfNfMgtUri": "https://nrf.slice2.oracle.com/nnrf-nfm/v1",
      "nrfAccessTokenUri": "https://nrf.slice2.oracle.com/oauth2/token",
      "nsiId": "SLICE2",
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "targetAmfSets": [
        {
          "regionId": "01",
          "setId": "101",
          "salience": 1
        },
        {
          "regionId": "01",
          "setId": "102",
          "salience": 2
        },
        {
          "regionId": "01",
          "setId": "103",
          "salience": 3
        }
      ]
    }
  ],
  "nssaiAuthDto": [
    {
      "name": "NSSAI-AUTH-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    },
    {
      "name": "NSSAI-AUTH-4",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "grant": "ALLOWED"
    }
  ],
  "timeProfileDto": [
    {
      "name": "WEEKDAY-BUSY",
      "startDate": "2021-09-10",
      "endDate": "2025-12-31",
      "daysOfWeek": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY"
      ],
      "timeSpans": [
        {
          "startTime": "07:00:00",
          "endTime": "45:00:00"
        },
        {
          "startTime": "17:00:00",
          "endTime": "22:00:00"
        }
      ]
    }
  ],
  "nssRuleDto": [
    {
      "name": "TACRANGE-RULE-1",
      "amfId": "12345678-abcd-efAB-CDEF-123456789012",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "tacrange": {
        "starttac": "100000",
        "endtac": "200000"
      },
      "snssai": {
        "sst": 1,
        "sd": "EABB01"
      },
      "salience": 6,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-1",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-2",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 2,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-2",
            "salience": 6
          }
        ]
      }
    },
    {
      "name": "TACRANGE-RULE-3",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "snssai": {
        "sst": 5,
        "sd": "EABB01"
      },
      "salience": 5,
      "behavior": {
        "accessType": "3GPP_ACCESS",
        "nsiProfiles": [
          {
            "name": "NSI-PROFILE-3",
            "salience": 6
          }
        ]
      }
    }
  ],
  "amfResolutionDto": [
    {
      "regionId": "01",
      "setId": "102",
      "mcc": "100",
      "mnc": "101",
      "mccmncRegionidSetId": "100-101-01-102",
      "candidateAmfList": [
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789012"
        },
        {
          "instanceId": "12345678-abcd-efAB-CDEF-123456789013"
        }
      ]
    }
  ],
  "configuredSnssaiDto": [
    {
      "plmn": {
        "mcc": "100",
        "mnc": "101"
      },
      "nssai": [
        {
          "sst": 5,
          "sd": "EABB01"
        }
      ],
      "plmnId": "100-101"
    }
  ],
  "amfSetDto": [
    {
      "regionId": "01",
      "setId": "104",
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "salience": 1,
      "mccmncRegionidSetId": "100-101-01-104"
    }
  ],
  "mappingofNssaisDto": [
    {
      "plmnId": {
        "mcc": "100",
        "mnc": "101"
      },
      "mappingOfNssai": [
        {
          "servingSnssai": {
            "sst": 1,
            "sd": "EABB01"
          },
          "homeSnssai": {
            "sst": 7,
            "sd": "EABB07"
          }
        },
        {
          "servingSnssai": {
            "sst": 2,
            "sd": "EABB02"
          },
          "homeSnssai": {
            "sst": 8,
            "sd": "EABB08"
          }
        }
      ]
    }
  ],
  "nssfSystemOptionDtoList": [
    {
      "NssfSystemOptionService": [
        {
          "scope": "NsSelection",
          "PerPLMNConfiguration": [
            {
              "PlmnConfiguration": {
                "EnableEnhancedAllowedNSSAIComputation": false
              },
              "plmnId": {
                "mcc": "311",
                "mnc": "480"
              }
            },
            {
              "PlmnConfiguration": {
                "EnableEnhancedAllowedNSSAIComputation": true
              },
              "plmnId": {
                "mcc": "100",
                "mnc": "101"
              }
            }
          ]
        }
      ],
      "AutoConfigurationFromNsAvailability": "FromTrustedAMFs",
      "EnhancedPatchBehaviour": false
    }
  ],
  "trustedAmfDtoList": [
    {
      "amfSet": "100-101-01-101",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a01",
        "4faf1bbc-6e4a-4454-a507-aef01a101a02"
      ]
    },
    {
      "amfSet": "100-101-01-103",
      "amfIdList": [
        "4faf1bbc-6e4a-4454-a507-aef01a101a03",
        "4faf1bbc-6e4a-4454-a507-aef01a101a04"
      ]
    }
  ]
}

3.10 NRF-Client

The NRF-Client manages configuration of profiles by retrieving the NfProfiles and performing complete update of the NfProfiles used for registering with NRF.

NRF-Client - Supported REST APIs

The operator can configure the NRF-Client by following the information provided in the table below. The supported operations are GET and PUT. The following table provides information about the REST APIs supported by the NRF-Client Managed Object:

Table 3-28 NRF-Client - Supported REST APIs

URI Description Details
{nfType}/nf-common-component/v1/nrf-client-nfmanagement/nfProfileList Retrieve the NfProfiles used to register with NRF

Data Type: Array(NFProfile)

HTTP Method: GET

{nfType}/nf-common-component/v1/nrf-client-nfmanagement/nfProfileList Complete update of the NfProfiles used to register with NRF

Data Type: Array(NFProfile)

HTTP Method: PUT

Request or Response Body Parameters

Table 3-29 configmapApplicationConfig.profile.appProfiles Parameters

Parameter Description Details
nfInstanceId

This is a mandatory parameter.

Unique identifier for the network function instance.

Data Type: String

Range: UUID

nfType

This is a mandatory parameter.

Type of the network function (for example, NSSF).

Data Type: String

Range: Predefined types (for example, NSSF)

nfStatus

This is a mandatory parameter.

Status of the network function.

Data Type: String

Range: REGISTERED, UNREGISTERED, etc.

heartBeatTimer

This is a conditional parameter.

Time in seconds expected between two consecutive heartbeat messages from an NF Instance to the NRF.

It may be included in the registration request. When present in the request, it shall contain the heartbeat time proposed by the NF service consumer.

It shall be included in responses from NRF to registration requests (PUT) or in NF profile updates (PUT or PATCH).

If the proposed heartbeat time is acceptable by the NRF based on the local configuration, it shall use the same value as in the registration request. Otherwise the NRF shall override the value using a preconfigured value.

Data Type: Integer

Range: 1-3600 seconds

fqdn

This is a conditional parameter.

Fully Qualified Domain Name of the network function.

Data Type: String

Range: Valid domain

priority

This is an optional parameter.

Priority (relative to other NFs of the same type) in the range of 0-65535, to be used for NF selection; lower values indicate a higher priority. If priority is also present in the nfServiceList parameters, those will have precedence over this value.

The NRF may overwrite the received priority value when exposing an NFProfile with the NRF Discovery service.

Data Type: Integer

Range: 0-65535

capacity

This is an optional parameter.

Static capacity information in the range of 0-65535, expressed as a weight relative to other NF instances of the same type; if capacity is also present in the nfServiceList parameters, those will have precedence over this value.

Data Type: Integer

Range: 0-65535

load

This is an optional parameter.

Dynamic load information, ranged from 0 to 100, indicates the current load percentage of the NF.

Data Type: Integer

Range: 0-100

plmnList.mcc

This is a conditional parameter.

Mobile Country Code (MCC) of the PLMN.

Data Type: String

Range: 3-digit numeric code

plmnList.mnc

This is a conditional parameter.

Mobile Network Code (MNC) of the PLMN.

Data Type: String

Range: 2- or 3-digit numeric code

nfSetIdList

This is a conditional parameter.

NF Set ID defined in clause 28.12 of 3GPP TS 23.003 [12].

At most one NF Set ID shall be indicated per PLMN of the NF.

Data Type: array(NfSetId)

Range: Valid String

locality

This is an optional parameter.

Operator defined information about the location of the NF instance (for example, geographic location, data center).

Data Type: String

Range: Valid location String

nfServices.serviceInstanceId

This is a mandatory parameter.

Unique ID of the service instance within a given NF Instance.

Data Type: String

Range: UUID

nfServices.serviceName

This is a mandatory parameter.

Name of the service provided by the NF.

Data Type: String

Range: Predefined service names

nfServices.versions.expiry

This is an optional parameter.

Expiry date and time of the NF service.

Data Type: DateTime

Range: ISO 8601 timestamp or null

nfServices.versions.apiFullVersion

This is a mandatory parameter.

Full version number of the API as specified in clause 4.3.1 of 3GPP 1 29.501.

Data Type: String

Range: x.y.z (for example, 1.0.0)

nfServices.versions.apiVersionInUri

This is a mandatory parameter.

Version of the service instance to be used in the URI for accessing the API (for example, "v1").

Data Type: String

Range: Version String (for example, v1)

nfServices.scheme

This is a mandatory parameter.

Communication scheme (for example, HTTP, HTTPS).

Data Type: String(UriScheme)

Range: http, https

nfServices.nfServiceStatus

This is a mandatory parameter.

Status of the NF Service Instance

Data Type: String

Range: REGISTERED, UNREGISTERED

nfServices.fqdn

This is an optional parameter.

Fully Qualified Domain Name of the service endpoint.

Data Type: String

Range: Valid domain String

nfServices.interPlmnFqdn

This is a conditional parameter.

If the NF service needs to be discoverable by other NFs in a different PLMN, then an FQDN that is used for inter PLMN routing as specified in 3GPP 1 23.003 [12] may be registered with the NRF.

A change of this attribute shall result in triggering a "NF_PROFILE_CHANGED" notification from NRF towards subscribing NFs located in a different PLMN, but the new value shall be notified as a change in the "fqdn" attribute.

Data Type: String or null

Range: Valid domain String or null

nfServices.ipEndPoints.ipv4Address

This is an optional parameter.

IPv4 address of the service endpoint.

Data Type: String

Range: Valid IPv4 address

nfServices.ipEndPoints.transport

This is an optional parameter.

Transport protocol used by the service (for example, TCP).

Data Type: String

Range: TCP, UDP

nfServices.ipEndPoints.port

This is an optional parameter.

Port number for the service endpoint.

Data Type: Integer

Range: 1-65535

nfServices.allowedNfTypes

This is an optional parameter.

Type of the NFs allowed to access the service instance.

The absence of this attribute indicates that any NF type is allowed to access the service instance.

A change of this attribute shall not trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute shall not be included in profile change notifications to subscribed NFs.

Data Type: Array of Strings

Range: Valid NF types

nfServices.priority

This is an optional parameter.

Priority (relative to other services of the same type) in the range of 0-65535, to be used for NF Service selection; lower values indicate a higher priority.

The NRF may overwrite the received priority value when exposing an NFProfile to the NRF Discovery service.

Data Type: Integer

Range: 0-65535

nfServices.capacity

This is an optional parameter.

Static capacity information in the range of 0-65535, expressed as a weight relative to other services of the same type.

Data Type: Integer

Range: 0-65535

nfServices.load

This is an optional parameter.

Dynamic load information, ranging from 0 to 100, indicates the current load percentage of the NF Service.

Data Type: Integer

Range: 0-100

nrfProfileList

Configuration Example

PUT Request

curl -L -X PUT 'http://ocnssf-nsconfig.ocnssf:8080/nssf/nf-common-component/v1/nrf-client-nfmanagement/nfProfileList' -H 'Content-Type: application/json' -d '<JsonRequestBody>'
Example of Request Body
[
  {
    "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a01",
    "nfType": "NSSF",
    "nfStatus": "REGISTERED",
    "fqdn": "ocnssf-nsgateway.ocnssf.svc",
    "priority": 1,
    "capacity": 1,
    "load": 2,
    "plmnList": [
      {
        "mcc": "310",
        "mnc": "14"
      }
    ],
    "locality": "rcnltxekloc1",
    "nfServices": [
      {
        "serviceInstanceId": "92d59bfc-e5d6-47f5-a26b-3a03facdebcc",
        "serviceName": "nnssf-nsselection",
        "versions": [
          {
            "expiry": null,
            "apiFullVersion": "1.0.0",
            "apiVersionInUri": "v1"
          }
        ],
        "scheme": "http",
        "nfServiceStatus": "REGISTERED",
        "fqdn": "ocnssf1-ingress-gateway.ocnssf.svc",
        "interPlmnFqdn": null,
        "ipEndPoints": [
          {
            "ipv4Address": "10.224.45.178",
            "transport": "TCP",
            "port": 80
          }
        ],
        "allowedNfTypes": [
          "AMF",
          "NSSF"
        ],
        "priority": 1,
        "capacity": 1,
        "load": 2
      },
      {
        "serviceInstanceId": "d33728cd-6e21-434b-bc5a-ed69bc612377",
        "serviceName": "nnssf-nssaiavailability",
        "versions": [
          {
            "expiry": null,
            "apiFullVersion": "1.0.0",
            "apiVersionInUri": "v1"
          }
        ],
        "scheme": "http",
        "nfServiceStatus": "REGISTERED",
        "fqdn": "ocnssf2-ingress-gateway.ocnssf.svc",
        "interPlmnFqdn": null,
        "ipEndPoints": [
          {
            "ipv4Address": "10.224.45.179",
            "transport": "TCP",
            "port": 80
          }
        ],
        "allowedNfTypes": [
          "AMF",
          "NSSF"
        ],
        "priority": 1,
        "capacity": 1,
        "load": 2
      }
    ]
  }
]

3.11 Runtime Log Level Update

The Runtime Log Level Update Managed Object enables an operator to centralize the configuration and update it dynamically without restarting NSSF.

Table 3-30 Runtime Log Level Update - Parameters

Parameter Description Details
commonCfgClient.enabled This is a mandatory parameter.

It is used to enable or disable client.

Data Type: Boolean

Range: true or false

Default Value: true

commonCfgClient.pollingInterval This is a mandatory parameter.

It is used to set polling interval in Milliseconds.

Data Type: Integer

Default Value: 5000

Runtime Log Level Update - Supported REST APIs

The operator can configure the Runtime Log Level Update by following the information provided in the table below. The supported operations are GET and PUT. The following table provides information about the REST APIs supported by the Runtime Log Level Update Managed Object:

Table 3-31 Runtime Log Level Update - Supported REST APIs

URI Description Details
http://<nssf-url>/nssf/nf-common-component/v1/services Get the list of microservices registered with common config service for dynamic logging.

Data Type: array

HTTP Method: GET

http://<nssf-url>/nssf/nf-common-component/v1/<microservice-name>/logging To get the current Logging information of the microservice.

Data Type: array

HTTP Method: GET

http://<nssf-url>/nssf/nf-common-component/v1/<microservice-name>/logging To update the Logging information of the microservice.

Data Type: array

HTTP Method: PUT

Examples API Calls

1. GET All Services

cURL: http://<nssf-url>/nssf/nf-common-component/v1/services

2. GET Log Level for a Microservice

cURL: http://<nssf-url>/nssf/nf-common-component/v1/<microservice-name>/logging

Example Response:
{
  "appLogLevel": "INFO",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ]
}

3. PUT to Update Log Level

cURL: http://<nssf-url>/nssf/nf-common-component/v1/<microservice-name>/logging

Example Request:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ]
}

Per-Microservice Logging Endpoints and Payloads

1. App-Info

  • GET: /nssf/nf-common-component/v1/app-info/logging
  • PUT: /nssf/nf-common-component/v1/app-info/logging
PUT Payload Example:
{

  "appLogLevel": "DEBUG"

}

Table 3-32 App-Info

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

2. Perf-Info

  • GET: /nssf/nf-common-component/v1/perf-info/logging
  • PUT: /nssf/nf-common-component/v1/perf-info/logging
PUT Payload Example:
{

  "appLogLevel": "WARN"

}

Table 3-33 Perf-Info

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

3. Ingress Gateway

  • GET: /nssf/nf-common-component/v1/igw/logging
  • PUT: /nssf/nf-common-component/v1/igw/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "logDiscarding": {
    "enabled": false,
    "featureToThresholdMapping": [
      {
        "feature": "RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "OVERLOAD_CONTROL",
        "thresholdFactor": 100
      },
      {
        "feature": "ROUTE_LEVEL_RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "RSS_RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "EGRESS_RATE_LIMITING",
        "thresholdFactor": 100
      }
    ]
  },
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    },
    {
      "packageName": "oauth",
      "logLevelForPackage": "ERROR"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-34 Ingress Gateway 

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING

  • OVERLOAD_CONTROL

  • ROUTE_LEVEL_RATE_LIMITING

  • RSS_RATE_LIMITING

  • EGRESS_RATE_LIMITING

thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

4. Egress Gateway

  • GET: /nssf/nf-common-component/v1/egw/logging
  • PUT: /nssf/nf-common-component/v1/egw/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "logDiscarding": {
    "enabled": false,
    "featureToThresholdMapping": [
      {
        "feature": "RATE_LIMITING",
        "thresholdFactor": 100
      },
      {
        "feature": "NOTIFICATION_RATE_LIMITING",
        "thresholdFactor": 100
      }
    ]
  },
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    },
    {
      "packageName": "oauth",
      "logLevelForPackage": "INFO"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-35 Egress Gateway

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING

  • OVERLOAD_CONTROL

  • ROUTE_LEVEL_RATE_LIMITING

  • RSS_RATE_LIMITING

  • EGRESS_RATE_LIMITING

thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

5. Alternate Route

  • GET: /nssf/nf-common-component/v1/alt-route/logging
  • PUT: /nssf/nf-common-component/v1/alt-route/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ],
  "additionalErrorLogging": "DISABLED"
}

Table 3-36 Alternate Route

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF
additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

6. NRF Client - Discovery

  • GET: /nssf/nf-common-component/v1/nrf-client-nfdiscovery/logging
  • PUT: /nssf/nf-common-component/v1/nrf-client-nfdiscovery/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-37 NRF Client - Discovery

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

7. NRF Client - Management

  • GET: /nssf/nf-common-component/v1/nrf-client-nfmanagement/logging
  • PUT: /nssf/nf-common-component/v1/nrf-client-nfmanagement/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "WARN"
    }
  ],
  "logSubscriberInfo": "DISABLED",
  "additionalErrorLogging": "DISABLED"
}

Table 3-38 NRF Client - Management

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF
logSubscriberInfo

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

8. NsAvailability

  • GET: /nssf/nf-common-component/v1/nsavailability/logging
  • PUT: /nssf/nf-common-component/v1/nsavailability/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-39 NsAvailability

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

9. NsAuditor

  • GET: /nssf/nf-common-component/v1/nsaudit/logging
  • PUT: /nssf/nf-common-component/v1/nsaudit/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-40 NsAuditor

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

10. NsConfig

  • GET: /nssf/nf-common-component/v1/nsconfig/logging
  • PUT: /nssf/nf-common-component/v1/nsconfig/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-41 NsConfig

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

11. NsSelection

  • GET: /nssf/nf-common-component/v1/nsselection/logging
  • PUT: /nssf/nf-common-component/v1/nsselection/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-42 NsSelection

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

12. NsSubscription

  • GET: /nssf/nf-common-component/v1/nssubscription/logging
  • PUT: /nssf/nf-common-component/v1/nssubscription/logging
PUT Payload Example:
{
  "appLogLevel": "DEBUG",
  "packageLogLevel": [
    {
      "packageName": "root",
      "logLevelForPackage": "ERROR"
    }
  ]
}

Table 3-43 NsSubscription

Parameter Name Description Details
appLogLevel

This is a mandatory parameter

Application-wide log level

Data Type: String

Range: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

Data Type:StringRange: TRACE, DEBUG, INFO, WARN, ERROR, OFF, OFF

3.12 PLMN Level NSI Profiles

PLMN Level NSI Profiles is a mandatory Managed Object. It is Default Network Slice Instance Profile per PLMN and consists of network slice ID, NRF-ID, and PLMN.

It is important to configure Rules based on NsAvailability Update, as all autoconfigured NSS_Rules are dependent on PLMN Level NSI Profiles. If this configuration is not provided for autoconfiguration of the Rules, the NsAvailability update will fail.

Note:

Without this configuration, PDU establishment can fail for autoconfigured Auth.
  • Request_Type: POST
  • URL: http://{apiRoot}/nnssf-configuration/v1/plmnlevelnsiprofiles
  • REST message sample - PLMN Level NSI Profile
  • Content-Type: application/json
  • Initiated by: API Invoker

PLMN Level NSI Profile - Supported REST APIs

The operator can configure PLMN Level NSI Profile by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the PLMN Level NSI Profile Managed Object:

Table 3-44 PLMN Level NSI Profile - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/plmnlevelnsiprofiles Returns PLMNLevelNsiProfile for all supported PLMNs.

Data Type: array(PLMNLevelNsiProfile)

HTTP Method: GET

/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc} Create a generic fall back NSI profile (Nrf, Network slice instance).

Data Type: PLMNLevelNsiProfile

HTTP Method: POST

/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc} Get PLMNLevelNsiProfile for supported PLMN.

Data Type: PLMNLevelNsiProfile

HTTP Method: GET

/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc} Delete PLMNLevelNsiProfile for supported PLMN.

Data Type: PLMNLevelNsiProfile

HTTP Method: DELETE

/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc} Update PLMNLevelNsiProfile for supported PLMN.

Data Type: PLMNLevelNsiProfile

HTTP Method: PUT

PLMN Level NSI Profiles- Dependencies

This managed object is not dependent on other managed objects.

Request or Response Body Parameters

The PLMN Level NSI Profiles managed object enables the configuration of Network Slice Instance profile. This allows an operator to create an Network Slice, by providing a name, id, NRF URL corresponding to the slice and list of Target AMF sets which support this slice.

Table 3-45 PLMN Level NSI Profiles - Parameters

Parameter Description Details
nrfUri M/C/O: This is a mandatory parameter.

Contains URI of the Network Repository Function.

Note: It must contain NRF NF Discovery URL.

Data Type: String

nsiId M/C/O: This is an optional parameter.

Contains Network Slice Instance Identifier.

Data Type: String

nrfNfMgtUri M/C/O: This is a mandatory parameter.

Contains Management URI of Network Resource Function.

Data Type: String

nrfAccessTokenUri M/C/O: This is an optional parameter.

Contains Access Token URI of Network Resource Function.

Data Type: String

plmn M/C/O: This is a mandatory parameter.

Contains PLMN ID.

Data Type: plmn

plmnid M/C/O: This is a mandatory parameter.

Contains value of MCC and MNC in the format "MCC"-"MNC"

Data Type: String

Supported Response Codes

Table 3-46 Supported Response Codes

Response Code Description
201 PLMN Level NSI Profiles configured successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
404 Config not found
406 Not Acceptable client error

Examples

The following example shows how a PLMN Level NSI Profile is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl --http2-prior-knowledge -X POST 'http://{{host}}:{{port}}/nnssf-configuration/v1/plmnlevelnsiprofiles' --header 'Content-Type: application/json' --data-raw '{"name":"NSI-PROFILE-1","nrfUri":"https://nrf.slice1.oracle.com/nnrf-disc/v1","nrfNfMgtUri":"https://nrf.slice1.oracle.com/nnrf-nfm/v1","nrfAccessTokenUri":"https://nrf.slice1.oracle.com/oauth2/token","nsiId":"SLICE1","plmn":{"mcc":"100","mnc":"101"}}'
Example of the Request Body
The following snippet shows an example of the request body:
{
  "name": "NSI-PROFILE-1",
  "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
  "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
  "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
  "nsiId": "SLICE1",
  "plmn": {
    "mcc": "100",
    "mnc": "101"
  }
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
  "name": "NSI-PROFILE-1",
  "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v1",
  "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v1",
  "nrfAccessTokenUri": "https://nrf.slice1.oracle.com/oauth2/token",
  "nsiId": "SLICE1",
  "plmn": {
    "mcc": "100",
    "mnc": "101"
  }
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/plmnlevelnsiprofiles/100-101"

3.13 MappingOfNssai

MappingOfNssai is a mandatory Managed Object to support request mapping. It is added to support EPS to 5G handover and contains mapping of 4G S-NSSAI to 5G S-NSSAI for a given PLMN.

Note:

This Managed Object must be configured for each supported PLMN.
  • Request_Type: POST
  • URL: http://{apiRoot}/nnssf-configuration/v1/mappingOfNssais
  • REST message sample - MappingOfNssai
  • Content-Type: application/json
  • Initiated by: API Invoker

MappingOfNssai - Supported REST APIs

The operator can configure MappingOfNssai by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the MappingOfNssai managed object:

Table 3-47 MappingOfNssai - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/mappingOfNssais/{mcc-mnc} Returns MappingOfNssais for the PLMN in request parameters.

Data Type: array(MappingOfNssai

HTTP Method: GET

/nnssf-configuration/v1/mappingOfNssais Returns MappingOfNssais for all supported PLMNs.

Data Type: array(PlmnMappingOfNssai)

HTTP Method: GET

/nnssf-configuration/v1/mappingOfNssais Create MappingOfNssais for the PLMN.

Data Type: array(MappingOfNssai)

HTTP Method: POST

/nnssf-configuration/v1/mappingOfNssais/{mcc-mnc} Update MappingOfNssais for the PLMN.

Data Type: array(MappingOfNssai)

HTTP Method: PUT

/nnssf-configuration/v1/mappingOfNssais/{mcc-mnc} Delete MappingOfNssais for the PLMN.

Data Type: NA

HTTP Method: DELETE

/nnssf-configuration/v1/mappingOfNssais{mcc=?mnc=?homeSnssai=? } Delete a MappingOfNssai for homeSnssai the PLMN.

Data Type: NA

HTTP Method: DELETE

/nnssf-configuration/v1/mappingOfNssais{mcc=?mnc=?homeSnssai=? } Update ServingSnssai for homeSnssai the PLMN.

Data Type: MappingOfNssai

HTTP Method: PUT

/nnssf-configuration/v1/mappingOfNssaisrequestparam Create MappingOfNssais for the PLMN.

Data Type: array(PlmnMappingOfNssai )

HTTP Method: POST

/nnssf-configuration/v1/mappingOfNssaisrequestparam Returns MappingOfNssais for all supported PLMNs.

Data Type: array(PlmnMappingOfNssai )

HTTP Method: GET ALL

/nnssf-configuration/v1/mappingOfNssaisrequestparam{mcc=?mnc=?} Returns MappingOfNssais for the PLMN in request parameters.

Data Type: array(MappingOfNssai )

HTTP Method: GET

/nnssf-configuration/v1/mappingOfNssaisrequestparam{mcc=?mnc=?} Update MappingOfNssais for the PLMN.

Data Type: array(MappingOfNssai)

HTTP Method: PUT

/nnssf-configuration/v1/mappingOfNssaisrequestparam{mcc=?mnc=?} Delete MappingOfNssais for the PLMN.

Data Type: NA

HTTP Method: DELETE

/nnssf-configuration/v1/mappingOfNssaisrequestparam{mcc=?mnc=?homeSnssai=? } Delete a MappingOfNssai for homeSnssai the PLMN.

Data Type: NA

HTTP Method: DELETE

/nnssf-configuration/v1/mappingOfNssaisrequestparam{mcc=?mnc=?homeSnssai=? } Update ServingSnssai for homeSnssai the PLMN.

Data Type: MappingOfNssai

HTTP Method: PUT

MappingOfNssai- Dependencies

This managed object is not dependent on other managed objects.

Request or Response Body Parameters

Table 3-48 MappingOfNssai - Parameters

Parameter Description Details
mcc This is a mandatory parameter.

Specifies Mobile Country Code.

Data Type: Integer

mnc This is a mandatory parameter.

Specifies Mobile Network Code.

Data Type: Integer

mappingOfNssai This is a mandatory parameter.

Specifies an array of MappingOfSnssai.

For more information, see MappingOfSnssai.

Data Type: array(MappingOfSnssai)

Supported Response Codes

Table 3-49 Supported Response Codes

Response Code Description
201 API invoker onboarded successfully
200 Successful response
204 No Content
400 Bad Request
403 Forbidden
404 Config not found
406 Not Acceptable client error
500 Internal Server Error

Examples

The following example shows how a MappingOfNssai is onboarded by submitting a POST request on the REST resource using cURL:

cURL Command:
curl -v --http2-prior-knowledge -X POST "http://{{host}}:{{port}}/nnssf-configuration/v1/mappingOfNssais" -H 'Content-Type: application/json' -d '{"plmnId": {"mcc": "100","mnc": "102"},"mappingOfNssai": [{"servingSnssai": {"sst": 1,"sd": "EABB01"},"homeSnssai": {"sst": 7,"sd": "EABB07"}},{"servingSnssai": {"sst": 2,"sd": "EABB02"},"homeSnssai": {"sst": 8,"sd": "EABB08"}}]}'
Example of the Request Body
The following snippet shows an example of the request body:
{
        "plmnId": {
            "mcc": "100",
            "mnc": "102"
        },
        "mappingOfNssai": [
            {
                "servingSnssai": {
                    "sst": 1,
                    "sd": "EABB01"
                },
                "homeSnssai": {
                    "sst": 7,
                    "sd": "EABB07"
                }
            },
            {
                "servingSnssai": {
                    "sst": 2,
                    "sd": "EABB02"
                },
                "homeSnssai": {
                    "sst": 8,
                    "sd": "EABB08"
                }
            }
        ]
}
Example of the Response Body
The following example shows the contents of the response body in JSON format:
{
    "plmnId": {
        "mcc": "100",
        "mnc": "102"
    },
    "mappingOfNssai": [
        {
            "servingSnssai": {
                "sst": 1,
                "sd": "EABB01"
            },
            "homeSnssai": {
                "sst": 7,
                "sd": "EABB07"
            }
        },
        {
            "servingSnssai": {
                "sst": 2,
                "sd": "EABB02"
            },
            "homeSnssai": {
                "sst": 8,
                "sd": "EABB08"
            }
        }
    ]
}
Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/mappingOfNssais/{mcc-mnc}"
Example of Delete cURL
curl  --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/mappingOfNssais/100-102"

3.14 NSSF System Options

Managed object to configure NssfSystemOptions. It contains parameters to configure multiple features such as, enhanced computation of AllowedNSSAI and enable AutoConfiguration from Trusted AMFs etc.

URI: {apiRoot}/nnssf-configuration/v1/nssfsystemoptions

Method:

  • GET: Service Method to get the values of EnableEnhancedAllowedNSSAIComputation, EnhancedPatchBehaviour, and AutoConfigurationFromNsAvailability.
  • PUT: Service Method to update the values of EnableEnhancedAllowedNSSAIComputation, EnhancedPatchBehaviour, and AutoConfigurationFromNsAvailability.

Content-Type: application/json

Request or Response Body Parameters

Table 3-50 Request or Response Body Parameters

Parameter Description Details
NssfSystemOptionService

M/C/O: This is a mandatory parameter.

Description: It is the main object that contains other objects required for enhanced computation of allowedNSSAI in NSSF.

Data Type: Object

Range: NA

Default Value: NA

NssfSystemOptionService.scope

M/C/O: This is a mandatory parameter.

Description: Name of the NSSF Service that the feature applies to. Currently, it is limited to NsSelection only.

Data Type: String

Range: NA

Default Value: NsSelection

NssfSystemOptionService.PerPLMNConfiguration

M/C/O: This is a mandatory parameter.

Description: It is the object that contains objects for PLMN level configurations required for enhanced computation of allowedNSSAI in NSSF.

Data Type: Object

Range: NA

Default Value: NA

NssfSystemOptionService.PerPLMNConfiguration.PlmnConfiguration

M/C/O: This is a mandatory parameter.

Description:

It contains objects for PLMN level configurations required for enhanced computation of allowedNSSAI in NSSF.

Data Type: Object

Range: NA

Default Value: NA

NssfSystemOptionService.PerPLMNConfiguration.PlmnConfiguration.EnableEnhancedAllowedNSSAIComputation

M/C/O: This is a mandatory parameter.

Description: Parameter to enable or disable the feature for a PLMN

Data Type: Boolean

Range: true or false

Default Value: false

NssfSystemOptionService.PerPLMNConfiguration.plmnId

M/C/O: This is a mandatory parameter.

Description: Object that contains PLMN details

Data Type: Object

Range: NA

Default Value: NA

NssfSystemOptionService.PerPLMNConfiguration.plmnId.mnc

M/C/O: This is a mandatory parameter.

Description: MNC of the PLMN

Data Type: Integer

Range: Valid MNC

Default Value: NA

NssfSystemOptionService.PerPLMNConfiguration.plmnId.mcc

M/C/O: This is a mandatory parameter.

Description: MCC of the PLMN

Data Type: Integer

Range: Valid MCC

Default Value: NA

AutoConfigurationFromNsAvailability

M/C/O: This is a mandatory parameter.

Description: This parameter is used to configure NSSF's behavior with respect to "Auto-Population of Configuration Based on NSAvailability Update" feature.

It is an enum with the following possible values:

  • Disable: This signifies the feature is disabled and is the default value. There will be no configuration update based on NsAvailability data if the value is disabled.
  • FromTrustedAMFs: This signifies NsAvailability Update only from trusted AMFs may lead to an update in NSSF configuration.
  • FromAllAMFs: This signifies that NsAvailability Update from any AMF may lead to an update in NSSF configuration.

Note: Assuming that NsAvailability Update is processed by NSSF. That is, the AMF is authorized to send the availability update.

Data Type: String

Range:

Disable

FromTrustedAMFs

FromAllAMFs

Default Value: Disable

EnhancedPatchBehaviour M/C/O: This is a mandatory parameter.

Description: This parameter is used to allow patch remove request to remove last element of supportedSnssaiList and update AMF with empty list in database.

If the value of the flag is true, then we should allow the patch remove request to remove the last element of supportedSnssaiList.

Data Type: Boolean

Range: true or false

Default Value: false

Supported Response Codes

Table 3-51 Supported Response Codes

Response Code Description
200 Successful response
204 No content
400 Bad Request
404 Config not found

Example

Sample cURL:

curl -i --http2-prior-knowledge -X GET http://{{host}}:{{port}}/nnssf-configuration/v1/nssfsystemoptions

Example of GET Request or Response Body

{
  "NssfSystemOptionService": [
    {
      "scope": "NsSelection",
      "PerPLMNConfiguration": [
        {
          "PlmnConfiguration": {
            "EnableEnhancedAllowedNSSAIComputation": false
          },
          "plmnId": {
            "mcc": "311",
            "mnc": "480"
          }
        }
      ]
    }
  ],
  "AutoConfigurationFromNsAvailability": "Disable",  
  "EnhancedPatchBehaviour": false 
}

Example of PUT request for FromTrustedAMFs

{"EnhancedPatchBehaviour": true, 
  "AutoConfigurationFromNsAvailability": "FromTrustedAMFs",
  "NssfSystemOptionService": [
    {
      "scope": "NsSelection",
      "PerPLMNConfiguration": [
        {
          "PlmnConfiguration": {
            "EnableEnhancedAllowedNSSAIComputation": true
          },
          "plmnId": {
            "mnc": "480",
            "mcc": "311"
          }
        }
      ]
    }
  ]
}

Example of PUT request for FromAllAMFs

{"EnhancedPatchBehaviour": true, 
  "AutoConfigurationFromNsAvailability": "FromAllAMFs",
  "NssfSystemOptionService": [
    {
      "scope": "NsSelection",
      "PerPLMNConfiguration": [
        {
          "PlmnConfiguration": {
            "EnableEnhancedAllowedNSSAIComputation": true
          },
          "plmnId": {
            "mnc": "480",
            "mcc": "311"
          }
        }
      ]
    }
  ]
}

3.15 Trusted AMF

TrustedAmf is a managed object that lists an AMF as trusted and authorized to make configuration changes in the NSSF. Any update from these AMFs, as part of the NS-Availability Update service from this operator-approved list of AMFs, will not require authorization from the NSSF (as mandated in 29.531). These updates will be automatically authorized, and the corresponding table entries will be auto-updated without operator intervention.

  • Request Type: GET/POST/PUT/DELETE
  • URL: http://{apiRoot}/nnssf-configuration/v1/trustedamf
  • Content-Type: application/json
  • Initiated By: API Invoker

TrustedAmf - Dependencies

To configure TrustedAmf Managed Object, configure the following Managed Objects as a prerequisite:

  • AmfSet: The AmfSet under which the TrustedAmf falls must be preconfigured before creating or updating a TrustedAmf.

Note:

Before an AmfSet is deleted then operator needs to remove the corresponding TrustedAmf.

TrustedAmf - Supported REST APIs

The operator can configure TrustedAmf by following the information provided in the table below. The supported operations are POST, GET, DELETE, and PUT. The following table provides information about the REST APIs supported by the TrustedAmf Managed Object:

Table 3-4 TrustedAmf - Supported REST APIs

Table 3-52 TrustedAmf - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/trustedamf Get all TrustedAmfs

Data Type: array(TrustedAmf)

HTTP Method: GET

/nnssf-configuration/v1/trustedamf Creates a list of TrustedAmfs

Data Type: array(TrustedAmf)

HTTP Method: POST

/nnssf-configuration/v1/trustedamf Update the whole list of TrustedAmfs

Data Type: array(TrustedAmf)

HTTP Method: PUT

/nnssf-configuration/v1/trustedamf/{amfSet}

Update TrustedAmfs based on a particular AmfSet

Data Type: TrustedAmf

HTTP Method: PUT

/nnssf-configuration/v1/trustedamf/{amfId} Delete a TrustedAmf by amfId

Data Type: NA

HTTP Method: DELETE

Request or Response Body Parameters

Table 3-53 Request or Response Body Parameters

Parameter Description Details
amfSet

M/C/O: This is a mandatory parameter.

Description: It contains the AMF Set.

Data Type: String

Range: NA

Default Value: NA

amfIdList

M/C/O: This is a mandatory parameter.

Description: It contains a list of AMF Identifiers.

Data Type: array(String)

Range: NA

Default Value: NA

Supported Response Codes

Table 3-54 Supported Response Codes

Response Code Description
201 TrustedAmf configured successfully
200 TrustedAmf updated successfully
204 TrustedAmf deleted successfully
400 Bad Request
404 Not Found
409 Constraint Violation
406 Not Acceptable client error

Examples

The following example shows how an TrustedAmf is onboarded by submitting a GET/POST/PUT/DELETE request on the REST resource using cURL:

Sample GET cURL Command:

curl -i --http2-prior-knowledge -X GET http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf

Example of Response Body

[
  {
    "amfSet": "100-101-01-101",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a01",
      "4faf1bbc-6e4a-4454-a507-aef01a101a02"
    ]
  },
  {
    "amfSet": "100-101-01-103",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a03",
      "4faf1bbc-6e4a-4454-a507-aef01a101a04"
    ]
  }
]
Sample PUT cURL Command 1:

curl -i --http2-prior-knowledge -X PUT http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf -H 'Content-Type: application/json' -d '[ { "amfSet": "100-101-01-101", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a01", "4faf1bbc-6e4a-4454-a507-aef01a101a02" ] }, { "amfSet": "100-101-01-103", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a03", "4faf1bbc-6e4a-4454-a507-aef01a101a04" ] } ]'

Example of Response Body

[
  {
    "amfSet": "100-101-01-101",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a01",
      "4faf1bbc-6e4a-4454-a507-aef01a101a02"
    ]
  },
  {
    "amfSet": "100-101-01-103",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a03",
      "4faf1bbc-6e4a-4454-a507-aef01a101a04"
    ]
  }
]
Sample PUT cURL Command 2:

curl -i --http2-prior-knowledge -X PUT http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf -H 'Content-Type: application/json' -d '[ { "amfSet": "100-101-01-101", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a08" ] }, { "amfSet": "100-101-01-103", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a09", "4faf1bbc-6e4a-4454-a507-aef01a101a10" ] }, { "amfSet": "100-101-02-102", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a11", "4faf1bbc-6e4a-4454-a507-aef01a101a12" ] } ]'

Example of Response Body

[
  {
    "amfSet": "100-101-01-101",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a08"
    ]
  },
  {
    "amfSet": "100-101-01-103",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a09",
      "4faf1bbc-6e4a-4454-a507-aef01a101a10"
    ]
  },
  {
    "amfSet": "100-101-02-102",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a11",
      "4faf1bbc-6e4a-4454-a507-aef01a101a12"
    ]
  }
]
Sample PUT cURL Command for a particular AmfSet:
curl -i --http2-prior-knowledge -X PUT http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/{amfSet} -H 'Content-Type: application/json' -d '<Request-Body>'

Example of Request Body

{
  "amfSet": "100-101-02-102",
  "amfIdList": [
    "4faf1bbc-6e4a-4454-a507-aef01a101a12",
    "4faf1bbc-6e4a-4454-a507-aef01a101a13",
    "4faf1bbc-6e4a-4454-a507-aef01a101a14"
  ]
}

Sample cURL:

curl -i --http2-prior-knowledge -X PUT http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/100-101-02-102 -H 'Content-Type: application/json' -d '{ "amfSet": "100-101-02-102", "amfIdList": [ "4faf1bbc-6e4a-4454-a507-aef01a101a12", "4faf1bbc-6e4a-4454-a507-aef01a101a13", "4faf1bbc-6e4a-4454-a507-aef01a101a14" ] }'

Example of Response Body

[
  {
    "amfSet": "100-101-01-101",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a08"
    ]
  },
  {
    "amfSet": "100-101-01-103",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a09",
      "4faf1bbc-6e4a-4454-a507-aef01a101a10"
    ]
  },
  {
    "amfSet": "100-101-02-102",
    "amfIdList": [
      "4faf1bbc-6e4a-4454-a507-aef01a101a12",
      "4faf1bbc-6e4a-4454-a507-aef01a101a13",
      "4faf1bbc-6e4a-4454-a507-aef01a101a14"
    ]
  }
]
DELETE cURL Command:
curl -i --http2-prior-knowledge -X DELETE http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/{amfId}
Example of Delete cURL
curl -i --http2-prior-knowledge -X DELETE http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/4faf1bbc-6e4a-4454-a507-aef01a101a14