Configuring NF Endpoint Profile Parameters in NRF Discovery Group

The SMF provides CLI for configuring NF endpoints for nnrf-nfd (NF discovery).

Note

For a discovery group, you can configure only the nnrf-disc service.

The CLI configuration allows configuring multiple endpoints under each endpoint profile. The SMF uses the priority and capacity parameters to load balance between these endpoints. All endpoints under an endpoint profile share the session context. That is, when selecting an endpoint profile for initial message of a session, then the SMF sends the subsequent messages (for example, update, delete, and so on) of the session to any of the endpoints in the endpoint profile.

Primary, secondary, and tertiary hosts [ip:port] can be configured within each endpoint. Both IPv4 and IPv6 addresses can be specified. If both are specified, then the IPv4 address is preferred.

SMF provides APIs to discover and send a message to an NF matching a set of filter parameters.

A URI uniquely identifies a resource. In the 5GC SBI APIs, when a resource URI is an absolute URI, the structure is specified as follows:

{apiRoot}/{apiName}/{apiVersion}/{apiSpecificResourceUriPart} 

apiRoot is a concatenation of the following parts:

  • scheme ("http" or "https")

    Note

    Both HTTP and HTTPS scheme URIs are allowed. See the 3GPP TS 33.501, subclause 13.1 for more information on security of service-based interfaces.

  • fixed string "://"

  • authority (host and optional port) as defined in IETF RFC 3986

  • an optional deployment-specific string (API prefix) that starts with a "/" character [api-root in CLI]

To configure the NRF endpoints for different services supported by NRF, use the following sample configuration:

config 
   group nrf discovery discovery_name 
      service type nrf nnrf-disc  
         endpoint-profile 
            name  epprofile_name 
            api-root api_string 
            api-uri-prefix uri_prefix_string 
            uri-scheme { http | https } 
            endpoint-name ep_name { capacity capacity | primary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } | secondary ip-address { ipv4 ipv4_address | ipv6 ipv6_address| port  port_num } | tertiary ip-address { ipv4 ipv4_address| ipv6 ipv6_address | port port_num } } 
            version [ uri-version version_num full version version_num ] 
            end 

NOTES:

  • group nrf discovery discovery_name : Configure the NRF discovery group.

  • api-root api_string : Specify the deployment-specific service API prefix that is used within the { apiRoot }.

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

  • endpoint-name ep_name { capacity capacity | primary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } | secondary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } | tertiary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } } : Specify the endpoint name. You can configure the primary, secondary, and tertiary hosts (IP: Port) within each endpoint for NF server failover handling. The server failover configuration accepts both the IPv4 and IPv6 addresses. However, the SMF gives preference to the IPv4 address.

    • capacity capacity : Specify the node capacity for the endpoint. capacity must be an integer in the range of 0-65535.

    • The endpoint selection for sending the message is based on probabilistic load-balancing algorithm (IETF RFC 2782) using the priority and capacity parameters.

    • primary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } : Specify the primary endpoint IPv4 address, IPv6 address, or port.

    • secondary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } : Specify the secondary endpoint IPv4 address, IPv6 address, or port.

    • tertiary ip-address { ipv4 ipv4_address | ipv6 ipv6_address | port port_num } : Specify the tertiary endpoint IPv4 address, IPv6 address, or port.

    • priority priority_value : Specify the priority for the service to select the appropriate profile using the load-balancing logic. priority must be an integer in the range of 0-65535.

  • uri-scheme { http | https } : Specify the URI scheme as http or https .

  • version [ uri-version version_num full version version_num ] : Specify the API URI version. The full version format is <Major-version>.<Minor-version>.<patch-version>.[alpha-<draft-number>].