NRF Interface

Feature Summary and Revision History

Summary Data

Table 1. Summary Data

Applicable Product(s) or Functional Area

PCF

Applicable Platform(s)

SMI

Default Setting

Disabled – Configuration required to enable

Related Documentation

Not Applicable

Revision History

Table 2. Revision History

Revision Details

Release

Enhancement introduced.

Configuration updated for N5 interface service.

2022.01.0

Enhancement introduced.

PCF supports dual stack (IPv4 and IPv6) connectivity on all NRF external interfaces/endpoints.

2022.01.0

Enhancement introduced.

PCF supports IPv6 connectivity on all NRF external interfaces/endpoints.

2021.04.0

Enhancement introduced.

Added new PCF attributes - priority and capacity

2020.02.0

Enhancement introduced.

Introduced instructions on how to register an NF profile with NRF.

2020.01.0

First introduced.

Pre 2020.01.0

Feature Description

The NRF provides a fabric for all the NFs to register their profile and the supported services which facilitate in discovering each other. The registration enables the NFs to discover the other NFs based on the NF Type, Instance ID, and other conditions. In a broader view, this enables the NFs to exchange information that is required to carry out the diversified service requirements outlined for each NF.

PCF supports both IPv4 and IPv6 connectivity on its external endpoints (inbound and outbound).

With compliance to the 3GPP December 2018 29.510v15.2.0 specification, NF is equipped to use the NRF management and discovery services. These services allow you to invoke the following service operations:

NRF Management Services (nnrf-nfm)

  • PCF uses the NFRegister service to register its profile and other parameters with the NRF. The registration process involves of PCF registering the npcf-am-policy-control and npcf-smpolicycontrol services with the NRF along with the list of services that the PCF instances expose.


    Note

    PCF endpoint registers with the NRF only if there is a reachable pcf-engine. Registration is complete when the heartbeat between the endpoint and engine is successful. If the heartbeat fails, the deregistration process is initiated.


  • PCF uses the NFDeregister service to deregister its NF profile and the services that it has registered in the NRF. The NFDeregister service is initiated during a graceful endpoint shutdown.

  • PCF applies the NFStatusSubscribe service to subscribe to the notifications when the NF_REGISTERED, NF_DEREGISTERED, and NF_PROFILE_CHANGED events occur on the individual NF instance. The instance is associated with the registered service, such as nchf-spendinglimitcontrol (CHF) and nudr-dr (UDR).

  • The NFStatusNotify service enables the NRF to notify the subscribed PCF when the status of the individual NF instance change.

  • PCF uses the NFStatusUnsubscribe service to unsubscribe to the notifications that are invoked when the status of an NF instance changes.

  • PCF that is registered in NRF periodically contacts the NRF by sending a heartbeat. PCF attempts the contact by invoking the NFUpdate service operation to indicate that it is still operative.

  • PCF monitors the NF profile (NFProfile) by periodically polling the NFProfile configuration to determine the modified parameters. If it detects a modified parameter, then PCF informs NRF about the update by sending a PATCH request containing the details of the modified parameter.

  • When the PCF’s registration status changes from REGISTERED to UNDISOCVERABLE or conversely in the NFStatus, PCF sends a PATCH request to NRF for the new status.

NRF Discovery Service (nnrf-disc)

  • PCF uses the discovery service to discover the CHF and UDR NFs that support the nchf-spendinglimitcontrol and nudr-dr services.

How it Works

This section describes how this feature works.

At the startup, PCF registers its profile with the NRF endpoint of the highest priority. After the registration is complete, it periodically sends a heartbeat to the NRF along with its profile.

When PCF requires a service of another NF, it checks for the profile of that service in the cache. If PCF detects the NFProfile (profile), then it uses the information to consume the service. If the NFProfile is not found in the cache, PCF uses the configured NRF endpoints to discover the NF to which the service belongs. The information that is fetched by the discovery service is stored in the cache and reused until the validity period is met. If PCF does not find the NRF endpoint for discovery or receives an invalid response, it falls back on the local configuration looking for the required service.

After discovering the service from the NRF endpoint, PCF subscribes to the NRF for changes that happen in the NF profile. In response, a notification URI is called back for the event notification.

PCF updates the cache when NRF notifies it about the changes such as registration, deregistration, and modifications that happen in the NFPofile.

PCF periodically polls the NFProfile to determine the updated NF parameters. If it detects a modified parameter, PCF updates the configuration that is running. If PCF is registered to an NRF, then it sends a PATCH request to that NRF containing the details of the modified parameter in the payload. For example, [{"op":"replace","path":"/capacity","value":33}].

If PCF determines that it is not registered (or deregistered) to an NRF, then it does not start the NRF Update Request.

The endpoint selection of the NF and NRF endpoints for registration and discovery is based on the probabilistic load-balancing algorithm (IETF RFC 2782) that uses priority and capacity parameters. In addition, for the discovery service, the locality of the NF is used in the algorithm as:

  1. The first set of NFs is from the preferred locality which are sorted based on the locality for priority or capacity in the profile and endpoint.

  2. The second set of NFs is from the geo-server locality which are sorted among the locality for priority or capacity in the profile and endpoint.

  3. The third set of NFs is from the discovered NFs. These NFs are not part of the first and second set.

  4. The fourth set contains the locally configured NFs.


Note

Before PCF is shut down, it unregisters its profile and unsubscribes to the events that it has subscribed to.


Standards Compliance

This feature complies with the following standards specifications:

  • 3GPP TS 29.510 version 15.0.0 (2018-06) "Network Function Repository Services"

  • 3GPP TS 29.510 version 15.2.0 (2018-12) "Network Function Repository Services"

  • 3GPP TS 29.510 CR#124 "Network Function Repository Services"

  • 3GPP TS 29.571 version 15.2.0 "Common Data Types for Service Based Interfaces"

Configuring the PCF Profile

This section describes how to configure the PCF profile with NRF.

PCF registration involves associating the PCF profile with the NRF and registering the services such as npcf-am-policy-control and npcf-smpolicycontrol with the NRF. If you do not register any service, then the smfService is registered as the default service.

A PCF instance is discoverable by other NFs only after the PCF profile successfully registers with NRF. The PCF invokes the NFRegister service to complete the profile registration with the NRF.


Note

Each NF Profile has a mapped Instance ID which the other NFs use to determine the profile.


To configure a PCF profile, use the following configuration in the Policy Ops Center console:

config 
   service-registration  
      profile  
         allowed-plmns [ mcc mnc ] 
           mcc mcc 
           mnc mnc 
         capacity pcf_capacity 
         instance-id  instance_id 
         locality locality_string 
         pcf-info 
           dnn-list dnn_list_name 
           supi-ranges [ supi-range-id ]  
              supi-range-id supi_range_id 
                start start_integer 
                end end_integer 
                pattern regular_expression 
         plmn-list [ mcc mnc ]  
           mcc mcc 
           mnc mnc 
         priority pcf_priority 
         snssais [ sst sd ] 
           sst sst 
           sd sd 
      services  
         [afService | smfService]  
            allowed-nssais [ sst sd ]  
             sst sst 
             sd sd 
            allowed-plmns [ mcc mnc ]
             mcc mcc
             mnc mnc 
            api-version [ 1.0.0 | 1.0.2 ]  
            end 

NOTES:

  • service-registration —Enters the service registration configuration mode.

  • profile —Enter the profile configuration mode.

  • allowed-plmns [ mcc mnc ] —Specify the PLMN code which is identified by a globally unique. The PLMN consists of Mobile Country Code (MCC) and Mobile Network Code (MNC). Typically, it is a 5 – 6 integers that identify a country, and a mobile network operator in that country represented in the form 001-01 or 001-001.

  • mcc mcc —Specify the MCC value. Comprises of 3 integers.

  • mnc mnc —Specify the MNC value. Comprises of 2–3 integers.

  • capacity pcf_capacity—Specify the PCF profile's capacity. pcf_capacity must be an integer in the range is 0-65535.

  • instance-id instance_id —Specify the service registration ID of the profile instance.

  • locality locality —Specify the location of the NF instance such as geographic location and data center.

  • pcf-info —Configures the PCF information such as Data Network Name and SUPI information.

  • dnn-list dnn_list_name —Specify the Data Network Name (DNN) list name.

  • supi-ranges supi_range —Specify the ranges of SUPIs, which the AUSF instance serves. If you do not specify a SUPI range, the AUSF instance determines a SUPI to serve.

  • supi-range-id supi_range_id—Specify the SUPI range identifier.

  • start start —Specify the initial value of a SUPI range. This value permits integers such as IMSI range.

  • end end —Specify the last value of the SUPI range. This value permits integers such as IMSI range.

  • pattern pattern —Specify a regular expression according to the ECMA-262 dialect that represents the set of SUPIs belonging to the specified range.

  • plmn-list [ mcc mnc ] —Configures the PLMN code of the network function. Specifies the PLMN code which is a unique code. The PLMN consists of MCC and MNC. Typically, it is a 5–6 integers that identify a country, and a mobile network operator in that country represented in the form 001-01 or 001-001.

  • priority pcf_priority —Specify the PCF profile's priority order. pcf_priority must be an integer in the range is 0-65535.

  • snssais [ sst sd ] —Configures the S-NSSAIs of the network function.

  • sst sst —Specify the Slice or Service Type to signify the expected Network Slice behaviour in terms of features and services. The acceptable range is 0–255.

  • sd sd —Specify complements one or more Slice or Service Types to allow differentiation among multiple Network Slices of the same Slice or Service Type. Specifies the Slice Differentiator in a hexadecimal representation.

  • services —Enters the services configuration mode.

  • allowed-nssais [ sst sd ] —The Serving PLMN provides the NSSAI during the registration procedure. The NSSAI consists of the S-NSSAI values, which the UE uses in the serving PLMN for the current registration.

  • api-version api_version —Specify the API version of the services that are deployed. The default version is 1.0.0.

Defining the PCF Registration Status

This section describes how to configure the PCF's registration status.

The registration status of PCF reflects its capability to transact with NRF and other NFs. The PCF instance that is registered with an NRF periodically contacts that NRF by invoking the NFUpdate service operation to indicate that it is operative.

You can now define the registration status as UNDISCOVERABLE. The UNDISCOVERABLE status is typically assigned when you want to perform preventive maintenance, or operations and maintenance activities. During this period, PCF would be in a dormant state, which means all the operations involving the PCF instance are suspended.

The feature to modify the registration status is compliant with 3GPP TS 29.510 CR 124.

To configure the registration state as UNDISCOVERABLE, use the following configuration in the Policy Ops Center console:

config 
   service-registration profile nf-status 
   [ REGISTERED | UNDISCOVERABLE ] 
   end 

NOTES:

  • service-registration profile nf-status [ REGISTERED | UNDISCOVERABLE ] —Configures the network function's registration status. The default NFStatus is REGISTERED.

Configuring the NRF Endpoint for Management Services

This section describes the configurations that you must perform to enable the NRF's management services.

  1. Configuring the NRF Endpoint Group

  2. Configuring the Management Service

Configuring the NRF Endpoint Group

This section describes how to configure the NRF Groups.

To configure the nnrf-nfm service for enabling the management service, use the following configuration in the Policy Ops Center console:

config 
  group 
   nrf 
    mgmt [ name ]  
     name nrf_group_name 
     service 
     type service_type 
      nrf [ nrf-service-name ] 
       nrf-service-name nrf_service_name 
       endpoint-profile [ name ]    
         name endpoint_profile_name   
         capacity endpoint_capacity   
         priority  endpoint_priority 
         api-uri-prefix uri_prefix  
         api-root  api 
         uri-scheme  uri_scheme 
         version    
       uri-version [ name ]   
        name version_name   
        full-version full_version   
       endpoint-profile [name]   
        name endpoint_name   
        priority endpoint_priority   
        capacity endpoint_capacity   
        primary ip-address    
          ipv4 ipv4_address  
          ipv6ipv6_address   
          fqdn fqdn 
          port port_number  
        secondary ip-address   
          ipv4 ipv4_address  
          ipv6  ipv6_address 
          fqdn fqdn 
          port port_number 
        tertiary ip-address  
          ipv4 ipv4_address 
          ipv6 ipv6_address 
          fqdn fqdn 
          port port_number 
          end 
  • group —Enters the group configuration mode.

  • nrf —Enters the NRF configuration mode.

  • mgmt [ name ] —Enters the management configuration mode.

  • name nrf_group_name —Specify the name of the nrf group.

  • service—Enters the service configuration mode.

  • type service_type —Specify the configured NF service types. The service types vary depending on the configured service. The PCF service supports the nnrf-nfm service.

  • nrf-service-name nrf_service_name —Specify the NRF service name.

  • endpoint-profile [ name ] —Enters the endpoint profile configuration mode.

  • name endpoint_profile_name —Specify the name of the endpoint profile.

  • api-uri-prefix uri_prefix —Specify the apiName. If not configured, it takes the standard API name for the service as per the specification.

  • api-root api —Specify the deployment-specific service API prefix that is used within the apiRoot.

  • uri-scheme uri_scheme —Specify the URI scheme as HTTP or HTTPs.

  • uri-version —Specify the api/Version and the version number. The full version format is <Major-version>.<Minor-version>.<patch-version>.[alpha-<draftnumber>].

  • endpoint-name —Specify the endpoint name and priority for the service to select the appropriate profile using the load-balancing logic. The priority must be an integer in the range of 0-65535. Capacity denotes the node capacity for the endpoint. It must be an integer in the range of 0-65535.

  • primary ip-address —Specify the IP address, FQDN, and Port for the primary endpoint.

  • secondary ip-address —Specify the IP address, FQDN, and port number for the secondary endpoint.

  • tertiary ip-address —Specify the IP address, FQDN, and port number for the tertiary endpoint.

NOTES:

Configuring the Management Service

This section describes how to enable the management service for the NRF.

To configure the NRF Management service, PCF locality, and associating them to the NRF Endpoint, use the following configuration in the Policy Ops Center console:

config 
   group 
    nf-mgmt [ name ] 
      name nf_management_group_name 
      nrf-mgmt-group  -> /group/nrf/mgmt/name 
       locality locality 
      failover 
        sla 
          reconnect 
            interval interval 
            end  

NOTES:

  • group —Enters the group configuration mode.

  • nf-mgmt [ name ] —Specify the management group that is associated to a network function.

  • locality locality —Specify the NF locality.

  • failover —Enters the failover configuration mode.

  • sla —Enters the sla configuration mode.

  • reconnect —Enters the reconnect configuration mode.

  • interval interval —Specify the time interval after which NF must attempt a reconnect operation.

Configuring the NRF Endpoint for Discovery Service

This section describes the configurations that you must perform to enable NRF's discovery services.

  1. Configuring the NRF Endpoint Group

  2. Configuring the Discovery Service

  3. Configuring the Local NF Endpoint

Configuring the NRF Endpoint Group

This section describes how to configure the NRF endpoint groups for the discovery of different NFs using the discovery (nnrf-disc) service.

To enable discovery of the NRF groups, use the following configuration in the Policy Ops Center console:

config 
     profile 
     nrf 
     discovery [ name ] 
      name discovery_group_name 
      service 
       type service_type 
        nrf [ nrf-service-name ] 
        nrf-service-name nrf_service_name 
        endpoint-profile [ name ] 
         name endpoint_profile_name 
         capacity endpoint_capacity 
         priority endpoint_priority 
         api-uri-prefix uri_prefix_string 
         api-root api 
         uri-scheme uri_scheme 
         version 
          uri-version [ name ] 
           name version_name 
           full-version full_version 
          endpoint-name 
           name endpoint_name 
           priority endpoint_priority 
           capacity endpoint_capacity 
          primary ip-address 
           ipv4 ipv4_address 
           ipv6 ipv6_address 
           fqdn fqdn 
           port port_number 
          secondary ip-address 
           ipv4 ipv4_address 
           ipv6 ipv6_address 
           fqdn fqdn 
           port port_number 
          tertiary ip-address 
           ipv4 ipv4_address 
           ipv6 ipv6_address 
           fqdn fqdn 
           port port_number 
           end  

NOTES:

  • profile —Enters the profile configuration mode.

  • nrf —Enters the nrf configuration mode.

  • discovery [ name ] —Enters the discovery [ name ] configuration mode.

  • name discovery_group_name —Specify the name of the discovery group. Discovery group is the logical link to the NRF endpoint groups (nrf-group). For each NF type, you can associate a discovery group and the locality information.

  • type service_type —Specify the configured NF service types. The service types vary depending on the configured service. The PCF service supports the nnrf-disc service.

  • nrf-service-name nrf_service_name —Specify the NRF service name.

  • endpoint-name —Specify the endpoint's name and priority for the service to select the appropriate profile using the load-balancing logic. The priority must be an integer in the range of 0-65535. Capacity denotes the node capacity for the endpoint. It must be an integer in the range of 0-65535.

  • api-uri-prefix uri_prefix_string —Specify the {apiName}. If not configured, it takes the standard API name for the service as per the specification.

  • api-root api —Specify the deployment-specific service API prefix that is used within the apiRoot.

  • uri-scheme uri_scheme —Specify the URI scheme as HTTP or HTTPs.

  • uri-version { name version_name | full-version full_version} —Specify the api/Version and the version number. The full version format is <Major-version>.<Minor-version>.<patch-version>.[alpha-<draftnumber>].

  • primary ip-address —Specify the IP address, FQDN, and port number for the primary endpoint.

  • secondary ip-address —Specify the IP address, FQDN, and port number for the secondary endpoint.

  • tertiary ip-address —Specify the IP address, FQDN, and port number for the tertiary endpoint.

Configuring the Discovery Service

This section describes how to enable the discovery service for the NRF.

To configure the NRF Discovery and PCF locality and associating them to the NRF Endpoint, use the following configuration in the Policy Ops Center console:

config 
     profile 
       nf-pair 
         nf-type [ type ] 
           type nf_type 
         nrf-discovery-group -> /group/nrf/discovery/name 
         subscription-enabled subscription_status 
         subscription-extension extension_value 
         locality 
           client -> /service-registration/profile/locality 
           preferred-server server_name 
           geo-server geo_server 
           end 
NOTES:
  • type nf_type —Specify one or more NF types such as AMF, CHF, PCF, and UDM as the network element profile.

  • subscription-enabled subscription_status —Specify if PCF is enabled to subscribe to notifications related to the discovered service.

  • subscription-extension extension_value —Specify the duration (in minutes) for which the subscription is extended.

  • preferred-server server_name —Specify the preferred server locality information. Preferred server locality is the locality that is considered as the locality of preference during the corresponding NF discovery.

  • geo-server geo_server —Specify the geo-server locality information. Geo-server locality is a geo redundant site for the preferred locality and is used as the next suitable server locality after preferred locality, during NF discovery.

Configuring the Local NF Endpoint

This section describes how to configure the local NF endpoint.

The PCF becomes aware of the various NFs in the 5G fabric through the NF discovery service that is exposed by the NRF or through the CLI configuration. If the NRF is unavailable, then PCF relies on the local configuration of the NF endpoints to discover the NFs.

To configure the local configuration for the NF services that PCF uses, use the following configuration in the Policy Ops Center console:

config 
  profile 
  nf-client 
   nf-type 
    udr 
    udr-profile [ name ] 
      name udr_profile_name 
      locality 
        name udr_locality_name 
        priority priority 
     sevice 
      name service_name 
      type [ type ] 
       type service_type 
       endpoint-profile [ name ] 
         name endpoint_profile_name 
         capacity endpoint_capacity 
         priority endpoint_priority 
         api-uri-prefix uri_prefix_string 
         api-root api 
         uri-scheme uri_scheme 
         version 
           uri-version [ name ] 
             name version_name 
             full-version full_version 
       endpoint-profile [ name ]  
         name endpoint_name 
         priority endpoint_priority 
         capacity endpoint_capacity 
       primary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
       secondary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
       tertiary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
    chf-profile [ name ]  
     name chf_profile_name 
     locality [ name ]  
      name locality_name 
      priority priority 
     service  
      name service_name 
      type [ type ]  
       type service_type 
     endpoint-profile [ name ] 
       endpoint-profile [ name ] 
         name endpoint_profile_name 
         capacity endpoint_capacity 
         priority endpoint_priority 
         api-uri-prefix uri_prefix_string 
         api-root api 
         uri-scheme uri_scheme 
         version 
           uri-version [ name ] 
             name version_name 
             full-version full_version 
       endpoint-profile [ name ]  
         name endpoint_name 
         priority endpoint_priority 
         capacity endpoint_capacity 
       primary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
       secondary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
       tertiary ip-address  
         ipv4 ipv4_address 
         ipv6 ipv6_address 
         port port_number 
         end 

NOTES:

  • udr-profile [ name ] —Enter the UDR profile configuration mode.

  • name udr_profile_name —Specify the name of the UDR profile.

  • type service_type —Specify the configured NF service types. The service types vary depending on the configured service.

  • nrf-service-name nrf_service_name —Specify the NRF service name.

  • api-uri-prefix uri_prefix_string —Specify the apiName. If not configured, it takes the standard API name for the service as per the specification.

  • api —Specify the deployment-specific service API prefix that is used within the apiRoot.

  • uri_scheme —Specify the URI scheme as HTTP or HTTPs.

  • uri-version —Specify the API/version and the version number. The full version format is <Major-version>.<Minor-version>.<patch-version>.[alpha-<draftnumber>] .

  • endpoint-name —Specify the endpoint name and priority for the service to select the appropriate profile using the load-balancing logic. The priority must be an integer in the range of 0-65535. Capacity denotes the node capacity for the endpoint. It must be an integer in the range of 0-65535.

  • primary ip-address —Specify the IP address, FQDN, and port number for the primary endpoint.

  • secondary ip-address —Specify the IP address, FQDN, and port number for the secondary endpoint.

  • tertiary ip-address —Specify the IP address, FQDN, and port number for the tertiary endpoint.