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 --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
}'
{
"regionId": "01",
"setId": "101",
"plmnId": {
"mcc": "100",
"mnc": "101"
},
"salience": 1
}
{
"regionId": "01",
"setId": "101",
"plmnId": {
"mcc": "100",
"mnc": "101"
},
"salience": 1,
"mccmncRegionidSetId": "100-101-01-101"
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/amfset/{setId}"
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 --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 } ] } }'
{
"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
}
]
}
}
{
"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
}
]
}
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssrules/{name}"
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 --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" } ] }'
{
"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"
}
]
}
{
"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"
}
]
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/timeprofiles/{name}"
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 --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" } ] }'
{
"plmn": {
"mcc": "100",
"mnc": "101"
},
"nssai": [
{
"sst": 1,
"sd": "EABB01"
}
]
}
{
"plmn": {
"mcc": "100",
"mnc": "101"
},
"nssai": [
{
"sst": 1,
"sd": "EABB01"
}
],
"plmnId": "100-101"
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/configuredsnssais/{mcc}-{mnc}"
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:
- 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" }'
- 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" }] } }'
- 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 |
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 --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" }'
{
"name": "NSSAI-AUTH-1",
"plmnId":
{
"mcc": "100",
"mnc": "101"
},
"tac": null,
"tacrange":
{
"starttac": "100000",
"endtac": "200000"
},
"snssai":
{
"sst":"1",
"sd":"EABB01"
},
"grant": "ALLOWED"
}
{
"name": "NSSAI-AUTH-1",
"plmnId":
{
"mcc": "100",
"mnc": "101"
},
"tacrange":
{
"starttac": "100000",
"endtac": "200000"
},
"snssai":
{
"sst":"1",
"sd":"EABB01"
},
"grant": "ALLOWED"
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nssaiauth/{name}"
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:
|
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 --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" } ] } }'
{
"regionId": "01",
"setId": "102",
"mcc":"100",
"mnc":"101",
"candidateAmfList":
[
{
"instanceId": "12345678-abcd-efAB-CDEF-123456789012"
},
{
"instanceId": "12345678-abcd-efAB-CDEF-123456789013"
}
]
}
}
{
"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
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 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
|
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 --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" } ] }'
{
"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-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
}
]
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/nsiprofiles/{name}"
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
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 --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" }'
{
"rank": "1",
"nfId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1",
"grSiteStatus":"ACTIVE"
}
{
"rank": "1",
"nfId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1",
"grSiteStatus":"ACTIVE"
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/grsites/{NfId}"
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 |
Data Type: Array(NsiProfileDto) |
nssaiAuthDto
|
If |
Data Type: Array(NsiProfileDto) |
timeProfileDto |
If |
Data Type: Array(TimeProfileDto) |
nssRuleDto |
If |
Data Type: Array(NssRuleDto) |
amfResolutionDto |
If |
Data Type: Array(AmfResolutionDto) |
configuredSnssaiDto |
If |
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 --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/upload -H 'Content-Type: application/json' -d '
{
"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"
]
}
]
}
{
"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"
]
}
]
}
{
"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>'
[
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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:
|
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
{
"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:
|
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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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 --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"}}'
{
"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"
}
}
{
"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"
}
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/plmnlevelnsiprofiles/{mcc-mnc}"
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 -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"}}]}'
{
"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"
}
}
]
}
{
"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"
}
}
]
}
curl --http2-prior-knowledge -X DELETE "http://{{host}}:{{port}}/nnssf-configuration/v1/mappingOfNssais/{mcc-mnc}"
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
, andAutoConfigurationFromNsAvailability
. - PUT: Service Method to update the values of
EnableEnhancedAllowedNSSAIComputation
,EnhancedPatchBehaviour
, andAutoConfigurationFromNsAvailability
.
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:
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 theTrustedAmf
falls must be preconfigured before creating or updating aTrustedAmf
.
Note:
Before anAmfSet
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:
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"
]
}
]
curl -i --http2-prior-knowledge -X DELETE http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/{amfId}
curl -i --http2-prior-knowledge -X DELETE http://{{host}}:{{port}}/nnssf-configuration/v1/trustedamf/4faf1bbc-6e4a-4454-a507-aef01a101a14