3 NSSF REST Specifications

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

NSSF can be configured using Helm configurations, REST APIs, and Cloud Native Core (CNC) Console. The NSSF deployment configurations are performed during 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.

Note:

For details on common response codes and key guidelines for configuring managed objects, see:

3.1 SystemOptions

Managed object to configure SystemOptions. It consists of feature flags used to enable or disable various features within NSSF.
  • This Managed Object is independent of other Managed Objects and is created during a fresh installation of NSSF, with values based on helm parameters.
  • The operator can later update these options, but deletion is not supported; only GET and PUT operations are allowed if SystemOptions is not configured.

Note:

  • During a fresh installation, no configuration is present for system options. The operator must configure the system options first. Until the system options are configured, it is not possible to configure other settings.
  • All NSSF microservices check the database for SystemOptions upon startup.
  • During an upgrade, the current system options are stored in a backup table, and the new system options for the updated version are computed and stored.

Table 3-1 SystemOptions - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/systemoptions Returns array of all configured SystemOptions. There will be only one active SystemOptions on an NSSF. SystemOptions GET
/nnssf-configuration/v1/systemoptions Update the existing SystemOptions object SystemOptions PUT

SystemOptions - Dependencies

This Managed Object is not dependent on other Managed Objects.

Request or Response Body Parameters

Table 3-2 Request or Response Body Parameters

Parameter Description Details
autoAuthorizeNssaiAvailabilityDataEnable

This is a mandatory parameter.

Main object containing other objects required for enhanced computation of allowedNSSAI in NSSF.

Data Type: Boolean

enhancedPatchBehaviourEnable

This is a mandatory parameter.

Enables or disables allowing zero Snssai in TAI. When true, NSSF shall allow NssaiAvailabilityPatch to remove all Supported SNSSAIs in TAI, as well as in PUT for NssaiAvailability.

Data Type: Boolean

plmnLevelSystemOptionsList

This is a mandatory parameter.

Array of per-PLMN system options. Every PLMN must be covered, otherwise API will return 400 Bad Request.

Data Type: Array

Table 3-3 Request or Response Body Parameters- plmnLevelSystemOptions

Parameter Description Details
plmnId

This is a mandatory parameter.

PLMN ID in format mcc-mnc. Must uniquely identify the PLMN. Cross-check with PLMN level info to verify all PLMNs are covered.

For more details, see Plmnid.

Data Type: String

enhancedAllowedNssaiEnable

This is a mandatory parameter.

Enables or disables enhancedAllowedNssai feature for the specified PLMN.

Data Type: Boolean

Example

{
  "autoAuthorizeNssaiAvailabilityDataEnable": false,
  "enhancedPatchBehaviourEnable": false,
  "plmnLevelSystemOptionsList": [
    {
      "plmnId": "311-480",
      "enhancedAllowedNssaiEnable": false
    }
  ]
}

3.2 NsiProfiles

The NsiProfiles is a mandatory Managed Object. It consists of network slice identification information, including the NSI ID and NRF-URI. This Managed Object contains the essential details defining a network slice instance, used for NSSF operation and selection.

NSI Profiles - Supported REST APIs

Table 3-4 NSI Profiles - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/nsiprofiles Returns an array of all configured NSI Profiles. array(NsiProfile) GET
/nnssf-configuration/v1/nsiprofiles Create a network slice instance profile. NsiProfile POST
/nnssf-configuration/v1/nsiprofiles/{nsiId} Read a network slice instance profile. Returns NsiProfile based on the given nsiId. NsiProfile GET
/nnssf-configuration/v1/nsiprofiles/{nsiId} Delete a network slice instance profile based on nsiId.

Checks:

- NSI Profile must not be linked to any ConfiguredSNSSAI in any PLMN.

- NSI Profile must not be linked to any not allowed SupportedSlicesMapping.

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

Note: nsiId is immutable; all other parameters are mutable.

NsiProfile PUT

NSI Profiles - Dependencies

This Managed Object is not dependent on other Managed Objects. No prerequisites are required for configuring NSI Profiles.

Request or Response Body Parameters

The NSI Profiles Managed Object allows the configuration and management of Network Slice Instance (NSI) profiles. The operator can create, modify, or retrieve these profiles by providing the appropriate parameters in the request or by receiving them in the response.

The key parameters used in the request or response bodies enable the configuration of the Network Slice by defining specific attributes, such as the NSI ID and NRF URL (Network Resource Function URL) corresponding to the slice.

Table 3-5 NSI Profiles - Parameters

Parameter Description Details
nrfUri This is a mandatory parameter.

Contains the API URI of the NRF NFDiscovery Service to be used for selecting the NFs or services within the selected Network Slice instance.

Data Type: URI

nsiId This is a mandatory parameter.

Contains the identifier of the selected Network Slice Instance

Note: nsiId is stored in UPPER CASE in database.

Data Type: NsiId

nrfNfMgtUri This is an optional parameter.

When present, it contains the API URI of the NRF NFManagement Service.

Data Type: URI

nrfAccessTokenUri This is a mandatory parameter.

When present, it contains the API URI of the NRF Access Token Service.

Data Type: URI

Examples

 {
  "nsiId": "NSI-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"
}

Note:

nsiId is stored in UPPER CASE in database.

3.3 PlmnConfig

The PlmnConfig is a mandatory managed object that contains configurations applicable to a specific PLMN, uniquely identified by its PLMN ID. Multiple PLMN is supported. Hence, it is required to configure all supported PLMNs.

Key Parameters:

  1. plmnid – Mandatory
    • Description: Identifies the PLMN for which the configuration is being applied.
  2. configuredNSSAI (Configured Network Slice Selection Assistance Information) – Mandatory
    • Description: Lists all S-NSSAIs (Single Network Slice Selection Assistance Information) configured at the PLMN level. This represents the complete set of S-NSSAIs that can be supported in TAIs (Tracking Area Identifiers) within the PLMN.
    • Usage:
      • If an NsSelection GET request contains a requestedNSSAI not present in configuredNSSAI, the NSSF (Network Slice Selection Function) will include the configured NSSAI in the response.
      • S-NSSAI support for a TAI within the PLMN is considered unauthorized unless explicitly listed in configuredNSSAI.
  3. barredSnssaiList (Restricted Network Slice Selection Assistance Information) – Optional
    • Description: Lists S-NSSAIs that are restricted or barred within the PLMN. Any S-NSSAI in this list must not be included in the supportedslicesmapping for any TAI within the PLMN, ensuring that restricted S-NSSAIs are unavailable for use.
    • Usage: Ensures that certain S-NSSAIs are completely unavailable for selection within the PLMN.
  4. nsiInformationList (Network Slice Instance Information) – Mandatory
    • Description: Defines the default fallback network slice instance information for the PLMN. This information applies to all TAI-S-NSSAI combinations unless overridden by Allowed NSSAI.
    • Usage: If nsiInformation is not explicitly configured or if auto-configuration is enabled, this list serves as the default fallback for slice selection.

PlmnConfig - Supported REST APIs

Table 3-6 PlmnConfig - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/plmnconfig Create a PLMN Config

Data Type: plmnconfig

HTTP Method: POST

/nnssf-configuration/v1/plmnconfig Read all PLMN Configs

Data Type: plmnconfig

HTTP Method: GET

/nnssf-configuration/v1/plmnconfig/{plmnId} Update a PLMN Config

Data Type: plmnconfig

HTTP Method: PUT

/nnssf-configuration/v1/plmnconfig/{plmnId} Read a PLMN Config

Data Type: plmnconfig

HTTP Method: GET

/nnssf-configuration/v1/plmnconfig/{plmnId} Delete a PLMN Config

Data Type: plmnconfig

HTTP Method: DELETE

PlmnConfig- Dependencies

Required NsiProfiles and SystemOptions must be configured beforehand in order to configure PlmnConfig. Only PLMNs that are configured in SystemOptions will be accepted as part of PlmnConfig.

Request or Response Body Parameters

Table 3-7 PlmnConfig- Parameters

Parameter Description Details
plmnId This is a mandatory parameter.

Identifies the PLMN for which the configuration is being made. Format: mcc-mnc.

For more details, see Plmnid.

Data Type: String

plmnInfo This is a mandatory parameter.

Configuration of PLMN: Contains the Configured NSSAI for the PLMN, the Barred SNSSAI for the PLMN, and the default fallback Network Slice Instance information for the PLMN.

For more information, see PlmnInfo.

Data Type: PlmnInfo

Examples

{
    "plmnId": "311-480",
    "plmnInfo": {
        "configuredNssai": [
            {
                "sst": "1",
                "sd": "EABB01",
                "accessType": "3GPP_ACCESS",
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-1",
                        "salience": "4"
                    },
                    {
                        "nsiProfileId": "NSI-2",
                        "salience": "2"
                    }
                ]
            },
            {
                "sst": "2",
                "sd": "EABB02",
                "accessType": "3GPP_ACCESS",
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-2",
                        "salience": "3"
                    }
                ]
            },
            {
                "sst": "3",
                "sd": "EABB03",
                "accessType": "BOTH"
            },
            {
                "sst": "4",
                "sd": "EABB04",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "5",
                "sd": "EABB05",
                "accessType": "BOTH"
            },
            {
                "sst": "6",
                "sd": "EABB06",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "7",
                "sd": "EABB07",
                "accessType": "BOTH"
            },
            {
                "sst": "8",
                "sd": "EABB08",
                "accessType": "NON_3GPP_ACCESS"
            },
            {
                "sst": "9",
                "sd": "EABB09",
                "accessType": "BOTH"
            },
            {
                "sst": "10",
                "sd": "EABB10",
                "accessType": "NON_3GPP_ACCESS"
            }
        ],
        "barredSnssaiList": [
            {
                "sst": "5",
                "sd": "EABB05"
            }
        ],
        
        "nsiInformationList": [
            {
                "nsiProfileId": "NSI-1",
                "salience": "3"
            }
        ]
    }
}

3.4 SupportedSlicesMapping

The SupportedSlicesMapping is an optional managed object that enables configuration and management of supported slices based on TAI (Tracking Area Identity).

This managed object is applicable only if auto-authorization of NssaiAvailability data is not enabled. Operator shall be allowed to configure this managed object even when the feature is enabled, but such configurations will be stored in the database without effect.

SupportedSlicesMapping - Supported REST APIs

Table 3-8 SupportedSlicesMapping - Supported REST APIs

URI Description Data Type HTTP Method
/nnssf-configuration/v1/supportedslicesmapping Create a SupportedSlicesMapping. supportedslicesmapping POST
/nnssf-configuration/v1/supportedslicesmapping Read all SupportedSlices mappings supportedslicesmapping GET
/nnssf-configuration/v1/supportedslicesmapping/{name} Update a SupportedSlices mapping supportedslicesmapping PUT
/nnssf-configuration/v1/supportedslicesmapping/{name} Read a Supported Slices mapping supportedslicesmapping GET
/nnssf-configuration/v1/supportedslicesmapping/{name} Delete a Supported Slices mapping supportedslicesmapping DELETE

SupportedSlicesMapping - Dependencies

We need NsiProfile, SystemOptions, and PlmnConfig to configure Supported Slices Mapping.

Request or Response Body Parameters

Table 3-9 SupportedSlicesMapping - Parameters

Parameter Description Details
name This is a mandatory parameter.

Unique Identifier of the mapping.

Note: name is stored in UPPER CASE in the database.

Data Type: string

supportedSnssaiList

This is a mandatory parameter.

SnssaiInfo Allowed for List of TAIs

  1. Validate NSI Profile Existence: Ensure that each NSI profile specified is present in the NSI profiles table.
  2. Validate SNSSAI Uniqueness: Check that there are no duplicate SNSSAIs within the same entry.
  3. Validate SNSSAI Configuration: Verify that all specified SNSSAIs are part of the ConfiguredNssai for the PLMN specified in plmnTacList.
  4. Validate SNSSAI Barred Status: Ensure that none of the specified SNSSAIs are included in the barredSnssaiList for the PLMN specified in plmnTacList.
  5. Validate SNSSAI Configuration Conflict: Check that no SNSSAI is configured in BarredSlicesMappingConfig for the same TAI.
  6. Validate AccessType: Validate AccessType of each SNSSAI should be the same as that of AccessType in corresponding SNSSAI in the ConfiguredNssai for the PLMN specified.

Data Type: array<SnssaiInfo>

See SnssaiInfo

plmnTacList

This is a mandatory parameter.

List of TACs in a PLMN for Which Supported Slices are Being Configured per PLMN

Validations to be Performed

  1. Validate PLMN Membership: Verify that the PLMN obtained from plmnTacList is included in the list of supported PLMNs.
  2. Validate TAC Uniqueness: Ensure that the tacList contains unique TACs, with no duplication of TACs either within the same entry or across different entries.

Examples and Invalid Cases

  • Supported PLMNs Example:
    • PLMN: (311-480)
  • plmnTacList Example 1:
    • plmn: 311-480
      • tac1: (1001)
      • tac2: (1002)
      • tac3: (1003)
  • Invalid Examples:

    • Duplication of TACs in plmnTacList:
      • Entry 1: tac1, tac2 and Entry 2: tac2, tac3 (Invalid, as tac2 is common between the entries)
      • Entry 1: tac1, tac2, tac1 (Invalid, as tac1 is repeated within the same entry)
    • plmnTacList Belonging to an Unsupported PLMN:
      • The plmnTacList contains a PLMN that is not supported.

For more information, see PlmnTacList.

Data Type: PlmnTacList

Examples

 
  {
  "name": "SUPPORTED-SNSSAIS-CONFIG-1",
  "supportedSnssaiList": [
    {
      "sst": 1,
      "sd": "EABB01",
      "accessType": "3GPP_ACCESS",
      "nsiInformationList": [
        {
          "nsiProfileId": "NSI-1",
          "salience": 2
        }
      ]
    },
    {
      "sst": 1,
      "sd": "EABB02",
      "accessType": "3GPP_ACCESS",
      "nsiInformationList": [
        {
          "nsiProfileId": "NSI-1",
          "salience": 2
        }
      ]
    }
  ],
  "plmnTacList": {
    "plmnId": "311-480",
    "tacList": [
      {
        "tac": "202400"
      },
      {
        "tac": "202401"
      },
      {
        "tac": "202402"
      }
    ]
  }
}

3.5 BarredSlicesMapping

This is an optional managed object. The Barred Slices Mapping Config allows for the configuration and management of slice restrictions based on TAI (Tracking Area Identity). The operator is allowed to configure this managed object even when the feature is enabled, but in that case, the configuration will only be stored in the database and will not take effect.

BarredSlicesMapping - Supported REST APIs

Table 3-10 BarredSlicesMapping - Supported REST APIs

URI Description Details
/nnssf-configuration/v1/barredslicesmapping Create a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: POST

/nnssf-configuration/v1/barredslicesmapping Read all Barred Slices mappings

Data Type: barredslicesmapping

HTTP Method: GET

/nnssf-configuration/v1/barredslicesmapping/{name} Update a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: PUT

/nnssf-configuration/v1/barredslicesmapping/{name} Read a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: GET

/nnssf-configuration/v1/barredslicesmapping/{name} Delete a Barred Slices mapping

Data Type: barredslicesmapping

HTTP Method: DELETE

BarredSlicesMapping- Dependencies

Required NsiProfiles, SystemOptions, and PlmnConfig must be configured beforehand in order to configure BarredSlicesMapping.

Request or Response Body Parameters

Table 3-11 BarredSlicesMapping- Parameters

Parameter Description Details
name This is a mandatory parameter.

Unique Identifier of mapping

Note: name is stored in UPPER CASE in the database.

Data Type: string

barredSnssaiList This is a mandatory parameter.

Slices Configured as Barred for List of TACs

Validations to be performed:

  1. Validate SNSSAI Uniqueness: Ensure there are no duplicate SNSSAIs within the same entry.
  2. Validate SNSSAI Configuration: Verify that all specified SNSSAIs are included in the ConfiguredNssai for the PLMN specified in plmnTacList.
  3. Validate SNSSAI Barred Status: Ensure that none of the specified SNSSAIs are present in the barredSnssaiList for the PLMN specified in plmnTacList.
  4. Validate SNSSAI Configuration Conflict: Check that no SNSSAI is configured in the SupportedSlicesMappingConfig for the same TAI.

Data Type: array<Snssai>

See Snssai

plmnTacList This is a mandatory parameter.

List of TACs for Which Barred Slices Are Being Configured per PLMN

Validations to be Performed:

  1. Validate PLMN Membership: Verify that the PLMN specified in plmnTacList is part of the supported PLMNs.
  2. Validate TAC Uniqueness: Ensure that the tacList contains unique TACs, with no duplication either within the same entry or across different entries.

Examples and Invalid Cases:

  • Supported PLMNs Example:
    • PLMN: (311-480)
  • plmnTacList Example 1:
    • plmn: 311-480
      • tac1: (1001)
      • tac2: (1002)
      • tac3: (1003)
  • Invalid Examples:
    • Duplication of TACs in plmnTacList:
      • Entry 1: tac1, tac2 and Entry 2: tac2, tac3

        (Invalid, as tac2 is common between the entries)

      • Entry 1: tac1, tac2, tac1

        (Invalid, as tac1 is repeated within the same entry)

    • plmnTacList Belonging to an Unsupported PLMN:
      • The plmnTacList contains a PLMN that is not supported.

For more information, see PlmnTacList.

Data Type: PlmnTacList

Examples

{
  "name": "BARRED-SNSSAIS-CONFIG-1",
  "barredSnssaiList": [
    {
      "sst": 3,
      "sd": "EABB03"
    },
     {
      "sst": 4,
      "sd": "EABB04"
    }
  ],
  "plmnTacList": {
    "plmnId": "311-480",
    "tacList": [
      {
        "tac": "202509"
      },
      {
        "tac": "202510"
      }
    ]
  }
}

3.6 GrSites

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

GrSites - Supported REST APIs

Table 3-12 GrSites - 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/{nfInstanceId} It returns GrSites for corresponding nfInstanceId.

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/{nfInstanceId} It updates GrSite rank for corresponding nfInstanceId. Changes in other fields will be ignored.

Data Type: GrSite

HTTP Method: PUT

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

Data Type: GrSite

HTTP Method: DELETE

GrSites - 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 georedundancy is enabled in the helm options. For information about enabling georedundancy, see Georedundancy section in Oracle Communications Cloud Native Core, Network Slice Selection Function User Guide.

Request or Response Body Parameters

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

Table 3-13 GrSites - Parameters

Parameter Description Details
nfInstanceId This is a mandatory parameter.

Contains the instance ID of the site NSSF.

Validation - Controlled at application layer

uuid

Unique

Data Type: String

siteId This is a mandatory parameter.

Contains the instance ID of the site NSSF.

Validation - Controlled at application layer

Unique

Data Type: String

Rank This is a mandatory parameter.

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

Validation - Controlled at application layer

Unique

Data Type: Integer

Examples

Sample PlmnConfig
{
    "siteId": "01",
    "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a01",
    "rank": 1
}
Example

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

Example Curl Command:
1. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01"}'
2. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02"}'
3. curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03"}'
 
Example Response:
1. { "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01", "grSiteStatus":"ACTIVE" }
2. { "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02", "grSiteStatus":"ACTIVE" }
3. { "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03", "grSiteStatus":"ACTIVE" }
Example Curl Command:
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01"}'
 
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02"}'
 
curl --http2-prior-knowledge -X POST http://{{host}}:{{port}}/nnssf-configuration/v1/grsites -H 'Content-Type: application/json' -d '{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03"}'

Example of the Response Body:

{ "rank": "1", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b1", "siteId": "01", "grSiteStatus":"ACTIVE" }
 
{ "rank": "2", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b2", "siteId": "02", "grSiteStatus":"ACTIVE" }
 
{ "rank": "3", "nfInstanceId": "fe7d992b-0541-4c7d-ab84-c6d70b1b01b3", "siteId": "03", "grSiteStatus":"ACTIVE" }

3.7 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: PUT/GET/DELETE
  • URL: http://{apiRoot}/nnssf-configuration/v1/allconfig
  • 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 PUT, GET, and DELETE. Perform the configuration of ConfigurationBackup Managed Object as follows:

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

URI Description Details
/nnssf-configuration/v1/allconfig

Overrides all configuration managed objects.

Deletes existing configuration and overrides.

Data Type: ConfigBackup

HTTP Method: PUT

/nnssf-configuration/v1/allconfig Responds with get ALL for all configured managed objects.

Data Type: ConfigBackup

HTTP Method: GET

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

HTTP Method: DELETE

Request or Response Body Parameters

ConfigurationBackup consists of list of following parameters:

Table 3-15 NSSF Backup and Restore Configurations - Parameters

Parameter Description Details
systemOptionsConfigInfo This is a mandatory parameter.

This contains all the systemOptions configurations.

systemOptions will not be deleted by the deleteConfiguration API; it can only be updated using the PUT method.

Data Type: SystemOptionsConfigInfoDto
nsiProfileConfigList

This is an optional parameter

This contains the list of all nsiProfileConfigs.

Data Type: Array<NsiProfileConfigDto>

plmnConfigList

This is an optional parameter

This contains the list of all plmnConfig.

This is dependent on systemOptionsConfigInfo and nsiProfileConfigList. Proper systemOptionsConfigInfo should already exist, or it must be included in the API request body. Additionally, nsiProfileConfigList needs to be present in the API request body for nsiInformationList in plmnConfig.

Data Type: Array<PlmnConfigDto>

barredSlicesMappingConfigList

This is an optional parameter

This contains the list of all barredSlicesMapping.It is dependent on plmnConfigList and nsiProfileConfigList.

Data Type: Array<BarredSlicesMappingConfigDto>

supportedSlicesMappingConfigList

This is an optional parameter

This contains the list of all supportedSlicesMappingConfig.It is dependent on plmnConfigList and nsiProfileConfigList.

Data Type: Array<SupportedSlicesMappingConfigDto>

geoRedundantSitesInfoList

This is a mandatory parameter

This contains the list of all geoRedundantSitesInfo.This is a mandatory parameter and must not be empty.

Data Type: Array<GeoRedundantSitesInfoDto>

Examples

{
    "systemOptionsConfigInfo": {
        "autoAuthorizeNssaiAvailabilityDataEnable": true,
        "enhancedPatchBehaviourEnable": true,
        "plmnLevelSystemOptionsList": [
            {
                "plmnId": "311-480",
                "enhancedAllowedNssaiEnable": true
            },
            {
                "plmnId": "100-101",
                "enhancedAllowedNssaiEnable": true
            }
        ]
    },
    "nsiProfileConfigList": [
        {
            "nsiId": "NSI-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": "NSI-2",
            "nrfUri": "https://nrf.slice1.oracle.com/nnrf-disc/v2",
            "nrfNfMgtUri": "https://nrf.slice1.oracle.com/nnrf-nfm/v2",
            "nrfAccessTokenUri": "https://nrf.slice2.oracle.com/oauth2/token"
        }
    ],
    "plmnConfigList": [
        {
            "plmnId": "311-480",
            "plmnInfo": {
                "configuredNssai": [
                    {
                        "sst": "1",
                        "sd": "EABB01",
                        "accessType": "3GPP_ACCESS",
                        "nsiInformationList": [
                            {
                                "nsiProfileId": "NSI-1",
                                "salience": "4"
                            },
                            {
                                "nsiProfileId": "NSI-2",
                                "salience": "2"
                            }
                        ]
                    },
                    {
                        "sst": "2",
                        "sd": "EABB02",
                        "accessType": "3GPP_ACCESS",
                        "nsiInformationList": [
                            {
                                "nsiProfileId": "NSI-2",
                                "salience": "3"
                            }
                        ]
                    },
                    {
                        "sst": "3",
                        "sd": "EABB03",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "4",
                        "sd": "EABB04",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "5",
                        "sd": "EABB05",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "6",
                        "sd": "EABB06",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "7",
                        "sd": "EABB07",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "8",
                        "sd": "EABB08",
                        "accessType": "NON_3GPP_ACCESS"
                    },
                    {
                        "sst": "9",
                        "sd": "EABB09",
                        "accessType": "BOTH"
                    },
                    {
                        "sst": "10",
                        "sd": "EABB10",
                        "accessType": "NON_3GPP_ACCESS"
                    }
                ],
                "barredSnssaiList": [
                    {
                        "sst": "5",
                        "sd": "EABB05"
                    }
                ],
                "nsiInformationList": [
                    {
                        "nsiProfileId": "NSI-1",
                        "salience": "3"
                    }
                ]
            }
        }
    ],
    "barredSlicesMappingConfigList": [
        {
            "name": "Barred-NSSAIS-CONFIG-1",
            "barredSnssaiList": [
                {
                    "sst": 3,
                    "sd": "EABB03"
                },
                {
                    "sst": 4,
                    "sd": "EABB04"
                }
            ],
            "plmnTacList": {
                "plmnId": "311-480",
                "tacList": [
                    {
                        "tac": "202509"
                    },
                    {
                        "tac": "202510"
                    }
                ]
            }
        }
    ],
    "supportedSlicesMappingConfigList": [
        {
            "name": "SUPPORTED-SLICES-MAPPING-CONFIG-1",
            "supportedSnssaiList": [
                {
                    "sst": 1,
                    "sd": "EABB01",
                    "accessType": "3GPP_ACCESS",
                    "nsiInformationList": [
                        {
                            "nsiProfileId": "NSI-1",
                            "salience": 2
                        }
                    ]
                }
            ],
            "plmnTacList": {
                "plmnId": "311-480",
                "tacList": [
                    {
                        "tac": "200000"
                    }
                ]
            }
        }
    ],
    "geoRedundantSitesInfoList": [
        {
            "siteId": "01",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a01",
            "rank": 1
        },
        {
            "siteId": "02",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a02",
            "rank": 2
        },
        {
            "siteId": "03",
            "nfInstanceId": "9faf1bbc-6e4a-4454-a507-aef01a101a03",
            "rank": 3
        }
    ]
}

3.8 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-16 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

commonCfgClient.pollingInterval This is a mandatory parameter.

It is used to set polling interval in Milliseconds.

Data Type: Integer

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-17 Runtime Log Level Update - Supported REST APIs

URI Description Details
http://<nsconfig-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://<nsconfig-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://<nsconfig-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://<nsconfig-url>/nssf/nf-common-component/v1/services

2. GET Log Level for a Microservice

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

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

3. PUT to Update Log Level

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

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

Per-Microservice Logging Endpoints and Payloads

1. App-Info

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

  "appLogLevel": "DEBUG"

}

Table 3-18 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

2. Perf-Info

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

  "appLogLevel": "WARN"

}

Table 3-19 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

3. Ingress Gateway

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

Table 3-20 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

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING
  • OVERLOAD_CONTROL
  • ROUTE_LEVEL_RATE_LIMITING
  • EGRESS_RATE_LIMITING
thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

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

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

4. Egress Gateway

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

Table 3-21 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

logDiscarding.enabled

This is a mandatory parameter

Enable/disable log discarding

Data Type: Boolean

Range: true, false

featureToThresholdMapping

This is a mandatory parameter

Feature thresholds list

Data Type: List of Objects

Range: Each item contains feature and thresholdFactor

feature

This is a mandatory parameter

Feature name

Data Type: String

Range:

  • RATE_LIMITING
  • OVERLOAD_CONTROL
  • ROUTE_LEVEL_RATE_LIMITING
  • EGRESS_RATE_LIMITING
thresholdFactor

This is a mandatory parameter

Threshold factor for feature

Data Type: Integer

Range: 0–100

packageLogLevel

This is a mandatory parameter

Specific package log settings

Data Type: List of Objects

Range: Each item contains packageName and logLevelForPackage

packageName

This is a mandatory parameter

Name of the package

Data Type: String

Range: Any valid Java package name

logLevelForPackage

This is a mandatory parameter

Log level assigned to the package

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

This is an optional parameter

Subscriber info logging setting

Data Type: String

Range: ENABLED, DISABLED

additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

5. Alternate Route

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

Table 3-22 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

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
additionalErrorLogging

This is an optional parameter

Additional error logging setting

Data Type: String

Range: ENABLED, DISABLED

6. NRF Client - Management

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

Table 3-23 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

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
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. NsAvailability

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

Table 3-24 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

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

8. NsAuditor

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

Table 3-25 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

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

9. NsConfig

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

Table 3-26 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

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

10. NsSelection

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

Table 3-27 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

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

11. NsSubscription

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

Table 3-28 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

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

3.9 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-29 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-30 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 29.501.

Data Type: String

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

nfServices.versions.apiVersionInUri

This is a mandatory parameter.

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

Data Type: String

Range: Version String (for example, v1)

nfServices.scheme

This is a mandatory parameter.

Communication scheme (for example, HTTP, HTTPS).

Data Type: String(UriScheme)

Range: http, https

nfServices.nfServiceStatus

This is a mandatory parameter.

Status of the NF Service Instance

Data Type: String

Range: REGISTERED, UNREGISTERED

nfServices.fqdn

This is an optional parameter.

Fully Qualified Domain Name of the service endpoint.

Data Type: String

Range: Valid domain String

nfServices.interPlmnFqdn

This is a conditional parameter.

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

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

Data Type: String or null

Range: Valid domain String or null

nfServices.ipEndPoints.ipv4Address

This is an optional parameter.

IPv4 address of the service endpoint.

Data Type: String

Range: Valid IPv4 address

nfServices.ipEndPoints.transport

This is an optional parameter.

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

Data Type: String

Range: TCP, UDP

nfServices.ipEndPoints.port

This is an optional parameter.

Port number for the service endpoint.

Data Type: Integer

Range: 1-65535

nfServices.allowedNfTypes

This is an optional parameter.

Type of the NFs allowed to access the service instance.

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

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

Data Type: Array of Strings

Range: Valid NF types

nfServices.priority

This is an optional parameter.

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

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

Data Type: Integer

Range: 0-65535

nfServices.capacity

This is an optional parameter.

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

Data Type: Integer

Range: 0-65535

nfServices.load

This is an optional parameter.

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

Data Type: Integer

Range: 0-100

nrfProfileList

Configuration Example

PUT Request

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