Patent Publication Number: US-11652895-B1

Title: Methods, systems, and computer readable media for dynamic optimized network function discovery for consumer network functions

Description:
TECHNICAL FIELD 
     The subject matter described herein relates to service discovery in communications networks. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for dynamic optimized network function (NF) discovery for consumer NFs. 
     BACKGROUND 
     In 5G telecommunications networks, a network function that provides service is referred to as a producer NF or NF service producer. A network function that consumes services is referred to as a consumer NF or NF service consumer. A network function can be a producer NF, a consumer NF, or both, depending on whether the network function is consuming, producing, or consuming and producing services. The terms “producer NF” and “NF service producer” are used interchangeably herein. Similarly, the terms “consumer NF” and “NF service consumer” are used interchangeably herein. 
     A given producer NF may have many service endpoints, where a service endpoint is the point of contact for one or more NF instances hosted by the producer NF. The service endpoint is identified by a combination of Internet protocol (IP) address and port number or a fully qualified domain name (FQDN) that resolves to an IP address and port number on a network node that hosts a producer NF. An NF instance is an instance of a producer NF that provides a service. A given producer NF may include more than one NF instance. It should also be noted that multiple NF instances can share the same service endpoint. 
     NFs register with a network function repository function (NRF). The NRF maintains profiles of available NF instances identifying the services supported by each NF instance. The profile of an NF instance is referred to in 3GPP TS 29.510 as an NF profile. NF instances can obtain information about other NF instances that have registered with the NRF through the NF discovery service operation. According to the NF discovery service operation, a consumer NF sends an NF discovery request to the NRF. The NF discovery request includes query parameters that the NRF uses to locate the NF profiles of producer NFs capable of providing the service identified by the query parameters. NF profiles are data structures that define the type of service provided by an NF instance as well as contact and capacity information regarding the NF instance. Thus, it is desirable for consumer NFs to be able to formulate NF discovery requests with query parameters that are optimized for locating producer NFs that are capable of and best suited for providing a service requested by the consumer NFs. 
     A service communication proxy (SCP) can also invoke the NF discovery service operation to learn about available producer NF instances. The case where the SCP uses the NF service discovery procedure to obtain information about producer NF instances on behalf of consumer NFs is referred to as delegated discovery. Consumer NFs connect to the SCP, and the SCP load balances traffic among producer NF service instances that provide the required services or directly routes the traffic to the destination producer NF instances. The communications model where consumer NFs communicate with producer NFs via the SCP is referred to as the indirect communications model. 
     In addition to the SCP, another example of an intermediate proxy that forwards traffic between producer and consumer NFs is the security edge protection proxy (SEPP). The SEPP is the network function used to protect control plane traffic that is exchanged between different 5G public land mobile networks (PLMNs). As such, the SEPP performs message filtering, policing and topology hiding for all application programming interface (API) messages that are transmitted between PLMNs. 
     One problem that can occur in 5G and other communications networks is that consumer NFs may lack the intelligence to format queries for NF discovery service operations that result in optimized sets of NF profiles of producer NFs to provide service to the consumer NFs. For example, a consumer NF may formulate a query to the NRF to discover NF profiles of producer NFs that provide a given service. However, the consumer NF may not know which PLMN or network slice provides the given service for a particular subscription permanent identifier (SUR). Accordingly, the NRF may respond with either an empty set of NF profiles, because none of the NF profiles match the query parameters in the NF discovery request or a sub-optimal set of NF profiles containing NF profiles of producer NFs that can provide the service but may not be optimal for the particular consumer NF. In the empty set case, the consumer NF may be required to repeat the NF service discovery procedure multiple times with different sets of query parameters, which increases latency in providing the service. In the case where the consumer NF receives a suboptimal set of NF profiles, the consumer NF may select a producer NF to provide the service that is inefficient, due to factors such as load and/or location. Accordingly, in light of these difficulties, there exists a need for improved methods, systems, and computer readable media for dynamic optimized NF discovery. 
     SUMMARY 
     A method for dynamic optimized network function (NF) discovery includes querying an NF repository function (NRF), receiving at least one response to the querying, and building, from the at least one response, an NF discovery data digest of NF profile attributes and corresponding attribute values usable as query parameters in NF discovery requests. The method further includes determining that a consumer NF has a need for a service, and, in response, formulating, using the NF discovery data digest, an NF discovery request message including at least one of the NF profile attribute values as a query parameter. The method further includes transmitting the NF discovery request message to the NRF. The method further includes receiving an NF discovery response from the NRF including at least one NF profile. The method further includes using the at least one NF profile to facilitate providing of the service to the consumer NF. 
     According to another aspect of the subject matter described herein, querying the NRF includes periodically or aperiodically transmitting requests for NF discovery service operations to the NRF. 
     According to another aspect of the subject matter described herein, periodically or aperiodically transmitting the requests for NF discovery service operations to the NRF includes transmitting the requests independently of a current need of the consumer NF for a service provided by producer NF instances. 
     According to another aspect of the subject matter described herein, building the NF discovery data digest includes reading, from the responses, a subset of NF profile attributes and attribute values usable as query parameters in the NF discovery requests. 
     According to another aspect of the subject matter described herein, building the NF discovery data digest includes creating, in the NF discovery data digest, mappings between the NF profile attributes read from the responses. 
     According to another aspect of the subject matter described herein, creating the mappings between the NF profile attributes includes classifying the attributes into sets of NF profile attributes that are mapped to one or more common attributes, wherein the common attributes include at least one of: public land mobile network (PLMN), network slice instance (nsi)-list, service name, single network slice selection assistance information (S-NSSAI), and locality. 
     According to another aspect of the subject matter described herein, the attributes that are mapped to the one or more common attributes include attributes associated with individual NF types. 
     According to another aspect of the subject matter described herein, formulating the NF discovery request message using the NF discovery data digest includes accessing the NF discovery data digest using a first NF profile attribute value, using one of the mappings to determine a second NF profile attribute value mapped to the first NF profile attribute value, and including the second NF profile attribute value in the NF discovery request. 
     According to another aspect of the subject matter described herein, the first NF profile attribute value includes an attribute value associated with a subscriber and the second NF profile attribute value includes an attribute value associated with a producer NF. 
     According to another aspect of the subject matter described herein, using the at least one NF profile to facilitate providing of the service to the consumer NF includes forwarding the at least one NF profile to the consumer NF or an SCP that performs delegated discovery on behalf of the consumer NF. 
     According to another aspect of the subject matter described herein, a system for dynamic optimized network function (NF) discovery is provided. The system includes a computing platform or environment including at least one processor. The system includes an NF discovery data digest module implemented using the at least one processor for querying an NF repository function (NRF), receiving at least one response to the querying, and building, from the at least one response, an NF discovery data digest of NF profile attributes and corresponding attribute values usable as query parameters in NF discovery requests. The system further includes an NRF interaction module for determining that a consumer NF has a need for a service, and, in response, formulating, using the NF discovery data digest, an NF discovery request message including at least one of the NF profile attribute values as a query parameter, transmitting the NF discovery request message to the NRF, receiving an NF discovery response from the NRF including at least one NF profile, and using the at least one NF profile to further providing of the service to the consumer NF. 
     According to another aspect of the subject matter described herein, the NF discovery data digest module is configured to query the NRF by periodically or aperiodically transmitting requests for NF discovery service operations to the NRF. 
     According to another aspect of the subject matter described herein, the NF discovery data digest module is configured to periodically or aperiodically transmit the requests for NF discovery service operations to the NRF independently of a current need of the consumer NF for a service provided by producer NF instances. 
     According to another aspect of the subject matter described herein, the NF discovery data digest module is configured to build the NF discovery data digest by reading, from the responses, a subset of NF profile attributes and attribute values usable as query parameters in the NF discovery requests and store the subset of NF profile attributes and attribute values in the NF discovery data digest. 
     According to another aspect of the subject matter described herein, the NF discovery data digest module is configured to build the NF discovery data digest by creating mappings between the NF profile attributes read from the responses. 
     According to another aspect of the subject matter described herein, the NF discovery data digest module is configured to create the mappings between the NF profile attributes by classifying the NF profile attributes into sets that share one or more common NF profile attributes, wherein the one or more common NF profile attributes include at least one of: public land mobile network (PLMN), network slice instance (nsi)-list, single network slice selection assistance information (S-NSSAI), service name, and locality. 
     According to another aspect of the subject matter described herein, the attributes that are mapped to the one or more common attributes include attributes associated with individual NF types. 
     According to another aspect of the subject matter described herein, the NRF interaction module is configured to formulate the NF discovery request message using the NF discovery data digest by accessing the NF discovery data digest using a first NF profile attribute value, using one of the mappings to determine a second NF profile attribute value mapped to the first NF profile attribute value, and including the second NF profile attribute value in the NF discovery request. 
     According to another aspect of the subject matter described herein, the NRF interaction module is configured to facilitate the providing of the service to the consumer NF by forwarding the at least one NF profile to the consumer NF or an SCP that performs delegated discovery on behalf of the consumer NF. 
     According to another aspect of the subject matter described herein, one or more non-transitory computer readable media having stored thereon executable instructions that when executed by one or more processors of one or more computers control the one or more computers to perform steps is provided. The steps include querying a network function (NF) repository function (NRF), receiving at least one response to the querying, and building, from the at least one response, an NF discovery data digest of NF profile attributes and corresponding attribute values usable as query parameters in NF discovery requests. The steps further include determining that a consumer NF has a need for a service, and, in response, formulating, using the NF discovery data digest, an NF discovery request message including at least one of the NF profile attribute values as a query parameter. The steps further include transmitting the NF discovery request message to the NRF. The steps further include receiving an NF discovery response from the NRF including at least one NF profile. The steps further include using the at least one NF profile to facilitate providing of the service to the consumer NF. 
     The subject matter described herein can be implemented in software in combination with hardware and/or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary implementations of the subject matter described herein will now be explained with reference to the accompanying drawings, of which: 
         FIG.  1    is a network diagram illustrating an exemplary 5G system network architecture; 
         FIG.  2    is a message flow diagram illustrating exemplary messages exchanged between a consumer NF and an NRF in the NF discovery service operation; 
         FIG.  3    is a block diagram illustrating an exemplary architecture for a consumer NF for implementing dynamic optimized NF discovery; 
         FIG.  4    is a message flow diagram illustrating exemplary messages exchanged in implementing dynamic optimized NF discovery; and 
         FIG.  5    is a flow chart illustrating exemplary steps of a process for dynamic optimized NF discovery. 
     
    
    
     DETAILED DESCRIPTION 
       FIG.  1    is a block diagram illustrating an exemplary 5G system network architecture. The architecture in  FIG.  1    includes NRF  100  and SCP  101 , which may be located in the same home public land mobile network (HPLMN). As described above, NRF  100  may maintain profiles of available NF instances and their supported services and allow consumer NFs or SCPs to subscribe to and be notified of the registration of new/updated NF instances. SCP  101  may also support service discovery and selection of NF instances. SCP  101  may perform load balancing of connections between consumer and producer NFs. 
     NRF  100  is a repository for service profiles of NF instances and SCP profiles of SCP instances. In order to communicate with a producer NF instance, a consumer NF or an SCP must obtain the NF profile of the producer NF instance from NRF  100 . The NF profile is a JavaScript object notation (JSON) data structure defined in 3GPP TS 29.510. The NF profile includes attributes that indicate the type of service provided, capacity of the NF instance, and information for contacting the NF instance. 
     In  FIG.  1   , any of the network functions can be consumer NFs, producer NFs, or both, depending on whether they are requesting, providing, or requesting and providing services. In the illustrated example, the NFs include a policy control function (PCF)  102  that performs policy related operations in a network, a unified data management (UDM)  104  that manages user data, and an application function (AF)  106  that provides application services. 
     The NFs illustrated in  FIG.  1    further include a session management function (SMF)  108  that manages sessions between access and mobility management function (AMF)  110  and PCF  102 . AMF  110  performs mobility management operations similar to those performed by a mobility management entity (MME) in 4G networks. An authentication server function (AUSF)  112  performs authentication services for user equipment (UEs), such as user equipment (UE)  114 , seeking access to the network. 
     A network slice selection function (NSSF)  116  provides network slicing services for devices seeking to access specific network capabilities and characteristics associated with a network slice. A network exposure function (NEF)  118  provides application programming interfaces (APIs) for application functions seeking to obtain information about Internet of things (IoT) devices and other UEs attached to the network. NEF  118  performs similar functions to the service capability exposure function (SCEF) in 4G networks. 
     A radio access network (RAN)  120  connects user equipment (UE)  114  to the network via a wireless link. Radio access network  120  may be accessed using a g-Node B (gNB) (not shown in  FIG.  1   ) or other wireless access point. A user plane function (UPF)  122  can support various proxy functionality for user plane services. One example of such proxy functionality is multipath transmission control protocol (MPTCP) proxy functionality. UPF  122  may also support performance measurement functionality, which may be used by UE  114  to obtain network performance measurements. Also illustrated in  FIG.  1    is a data network (DN)  124  through which UEs access data network services, such as Internet services. 
     SEPP  126  filters incoming traffic from another PLMN and performs topology hiding for traffic exiting the home PLMN. SEPP  126  may communicate with a SEPP in a foreign PLMN which manages security for the foreign PLMN. Thus, traffic between NFs in different PLMNs may traverse two SEPP functions, one for the home PLMN and the other for the foreign PLMN. 
     As stated above, one problem that can occur in 5G and other networks is that consumer NFs may lack the intelligence and/or query parameters to formulate optimal NF discovery request messages. For example, before performing an NF discovery query towards an NRF, a consumer NF may not be completely aware of the producer NF capabilities, deployment models, locations, PLMNs, and slices. As a result, the consumer NF is incapable of choosing optimal discovery query attribute values and will have to apply various algorithms sequentially before the consumer NF discovers the producer NFs that best match the requirements of the consumer NF. One possible effect of a sub-optimal NF discovery query is that the consumer NF may discover one or more producer NFs that are not optimal in providing the requested service, and the consumer NF may select a producer NF to provide the service that is not local to the consumer NF or of a lower priority than another producer in NF that could provide the service. 
     If the consumer NF obtains a set of NF profiles from the NRF that does not contain any usable producer NF profiles (either an empty set or a set of NF profiles of producer NFs that cannot provide the requested service, for example, due to loading), the consumer NF may be forced to query the NRF multiple times with different query parameters. Requiring the consumer NF to query the NRF multiple times can cause end user latency and consume network resources in the 5G network. 
     Cloud-based 5G solutions are becoming more automated and dynamic. Accordingly, it is desirable to provide a consumer NF that is capable of performing dynamic optimized NF discovery. 
       FIG.  2    is a message flow diagram illustrating exemplary messages exchanged in the NF discovery service operation. Referring to  FIG.  2   , in line 1A, consumer NF  200  formulates and sends an NF discovery request message to NRF  100 . The NF discovery request message includes a hypertext transfer protocol (HTTP) GET method and query parameters used by the NRF to search its NF profiles database and locate NF profiles that match the query parameters in the NF discovery request. If the NF discovery request service operation is successful, NRF  100  responds as indicated in line 2a with a 200 OK message including a set of NF profiles that match the query parameters in the NF discovery request. If the NF discovery service operation is unsuccessful, NRF  100  responds as indicated as in line 2b with a 4XX or 5XX message specifying problem details. If the NF discovery request message is redirected, NRF  100  responds with a 3XX message indicating redirection. 
     The subject matter described herein includes an NF that optimizes the NF discovery request operation to include query parameters that are likely to result in an optimal set of NF profiles. In  FIG.  2   , the NF that formulates the discovery request is a consumer NF located in the same PLMN, which is the PLMN serving an end user. However, the subject matter described herein is not limited to this case. For example, the subject matter described herein can be used to optimize NF discovery requests between a consumer NF located in a different PLMN from the NRF. In a scenario in which the end user is roaming, the consumer NF that formulates an NF discovery request may be located in the PLMN serving the end user, and the NRF may be located in a home PLMN of the end user. In another example, the subject matter described herein may be utilized to optimize NF discovery service operations between NRFs located in different PLMNs. In yet another example, the subject matter described herein may be used to optimize NF discovery service operations from an SCP to an NRF located in the same or a different PLMN. 
     An NF (e.g., a consumer NF, an NRF, or an SCP), as described herein, can perform dynamic optimized service discovery in an automated way by formulating an efficient query to obtain specific producer NF profiles from the NRF. The subject matter described herein proactively creates (i.e., independently from a need of a consumer NF or a query from the consumer NF for a service provided by producer NFs) an NF discovery data digest including query parameters that can be used in an NF discovery request sent in response to a need of a consumer NF or request from the consumer NF to access a service provided by producer NFs. The NF discovery data digest may include a subset of attributes or parameters and the corresponding attribute or parameter values contained in NF profiles of producer NFs that are registered with the NRF. The NF discovery data digest may include mappings between attributes so that the querying NF can form intelligent NF discovery queries. For example, the digest may include mappings between subscription permanent identifiers (SUPIs), localities, PLMNs, and other attributes that the querying NF can use to formulate a query that will result in discovery of a producer NF profile of a producer NF that serves the PLMN in which a subscriber is currently located. Examples of attributes and mappings between attributes that can be included in the NF discovery data digest will be described in further detail below. 
     Different operator defined rules can be applied automatically using the digest, which can help consumer NFs to include specific search attributes and attribute values when sending an NF discovery request to obtain specific producer NF profiles. The NRF will return a discovery response including producer NF profiles based on the search query as per 3GPP-defined procedures. As indicated above, the subject matter described herein can be implemented by consumer NFs, SCPs, or NRFs to optimize their NF discovery requests. The solution described herein is backward compatible with 3GPP-defined procedures on consumer NFs, SCPs, and NRFs. There is no change required in any interface defined by 3GPP. The algorithm is optimized based on rules and applied to data. The subject matter described herein helps to formulate NF discovery queries towards the NRF to access service in an optimized way with reduced latency. 
     As stated above, the subject matter described herein includes creating an NF discovery data digest containing NF profile attributes, their attribute values, and mappings between attribute values that are used in formulating and if discovery requests. The NF discovery data digest may be formulated by a discovery data digest module, which will be described in detail below. Table 1 shown below is an example of attributes and mappings between attributes that may be present in an NF discovery data digest. 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Example NF Discovery Data Digest Attributes 
               
               
                 Common NF Attributes 
               
               
                 PLMN 
               
               
                 nsi-list 
               
               
                 snssai 
               
               
                 service name 
               
               
                 locality 
               
            
           
           
               
               
               
            
               
                 Mobility Management 
                 Session Management 
                 Subscriber Database 
               
            
           
           
               
               
               
               
               
               
            
               
                 Attribute 
                 NF Type 
                 Attribute 
                 NF Type 
                 Attribute 
                 NF Type 
               
               
                   
               
               
                 amf-set-id 
                 AMF 
                 tai 
                 SMF, 
                 supi 
                 UDM, 
               
               
                   
                   
                   
                 AMF, 
                   
                 unified data 
               
               
                   
                   
                   
                 UPF 
                   
                 repository 
               
               
                   
                   
                   
                   
                   
                 (UDR), 
               
               
                   
                   
                   
                   
                   
                 AUSF,  
               
               
                   
                   
                   
                   
                   
                 PCF, 
               
               
                   
                   
                   
                   
                   
                 Un- 
               
               
                   
                   
                   
                   
                   
                 structured 
               
               
                   
                   
                   
                   
                   
                 data storage 
               
               
                   
                   
                   
                   
                   
                 function 
               
               
                   
                   
                   
                   
                   
                 (UDSF) 
               
               
                 amf- 
                 AMF 
                 dnn 
                 PCF, 
                 General 
                 UDM,  
               
               
                 region-id 
                   
                   
                 BSF, 
                 public 
                 UDR,  
               
               
                   
                   
                   
                 UPF 
                 subscription 
                 AUSF, 
               
               
                   
                   
                   
                   
                 identifier 
                 PCF, 
               
               
                   
                   
                   
                   
                 (gpsi) 
                 NEF 
               
               
                 guami 
                 AMF 
                 ue-ipv4- 
                 BSF 
                 routing- 
                 UDM,  
               
               
                   
                   
                 address 
                   
                 indicators 
                 AUSF 
               
               
                 smf- 
                 UPF 
                 ue-ipv6- 
                 BSF 
                 external- 
                 UDM, 
               
               
                 serving- 
                   
                 prefix 
                   
                 group- 
                 UDR 
               
               
                 area 
                   
                   
                   
                 identity 
                   
               
            
           
           
               
               
               
               
            
               
                   
                 ip domain 
                 BSF 
                   
               
               
                   
               
            
           
         
       
     
     As indicated in Table 1, the example NF discovery data digest includes NF profile attributes and mappings between the attributes. It is also understood that the NF discovery data digest would include values for the attributes. The values for the NF profile attributes in the NF discovery data digest are usable as query parameters in targeted NF discovery requests. An NF discovery data digest such as that illustrated in Table 1 may be replicated for each set of common NF profile attribute values. For example, in Table 1, the common attribute values are PLMN, network slice instance (NSI) list, single network slice selection assistance information (SNSSAI), service name, and locality. Taking the PLMN attribute as an example, an NF discovery data digest, such as that illustrated in Table 1, may be constructed for each PLMN so that a consumer NF that knows the PLMN that the consumer NF wants to access can query the digest using the PLMN ID and other attributes to obtain NF type specific attributes to formulate an optimized NF discovery query to the NRF. 
     In Table 1, the NF specific attributes that are mapped to the set of common attributes are divided into categories of mobility management, session management, and subscriber database. Under the mobility management category, NF profile attributes of mobility management NFs, such as AMFs and UPFs, may be included. Under the session management category, NF profile attributes of NFs that perform session management, such as SMFs, AMFs, PCFs, UPFs, and BSFs, may be included. Under the subscriber database category, attributes associated with subscriber database NFs, such as UDMs, UDRs, AUSFs, PCFs, NEFs, and UDSFs, may be included. Using the SUPI parameter as an example, if a consumer NF knows the SUPI of a subscriber but does not know in which PLMN the UDM serving the SUPI resides, the consumer NF may access the NF discovery data digest using the SUPI, obtain the PLMN ID that is mapped to the SUPI, and formulate an NF discovery request including the PLMN ID and the SUPI. 
     As illustrated in the example in Table 1, data is classified according to PLMN, locality, and network slice, to facilitate discovery of a producer NF that is co-located with or nearest to a consumer NF. Data classification is performed on the basis of NF data shared by network functions in NF profiles that are registered with the NRF. Classified data acts as input to the consumer NFs to use NF type specific attributes and attribute values to query and obtain the specific NF profile, which is for a producer NF in the same PLMN and network slice, providing a specific service, and belonging to specific locality. Subscriber and session management specific services can be accessed on a specific range of different attributes, such as SUPI, GPSI, DNN, and TAI supported by a specific NF instance. This can help the consumer NF to access the service in the most optimal way. The classification or mapping of data in the NF discovery data digest in Table 1 indicates to which PLMN, locality, and SNSSAI different data attributes, such as SUPI, GPSI, external group identity, DNN, belong. These mappings between:
         (SUPI, GPSI, external group identity, and DNN) and (PLMN, locality and SNSSAI)
 
allow a consumer NF to formulate an optimized NF discovery request, which can result in specific producer NF profiles being returned. Data classification can also be based on NF set ID and NF service set ID. Data can be classified based on load, capacity, and priority so that the NF does not get results with producer NFs that are more loaded or of lower priority than other available NFs.
       

     A consumer NF or SCP may formulate an NF discovery request message using the NF discovery data digest by accessing the NF discovery data digest using a first NF profile attribute value, using one of the mappings to determine a second NF profile attribute value mapped to the first NF profile attribute value, and including the second NF profile attribute value in the NF discovery request. In one example, the first NF profile attribute value includes an attribute value associated with a subscriber (such as SUPI) and the second NF profile attribute value includes an attribute value associated with a producer NF (such as PLMN and/or locality). 
       FIG.  3    is a network diagram illustrating an exemplary implementation of a discovery data digest module and an NRF interaction module that cooperate to perform dynamic optimized NF discovery. Referring to  FIG.  3   , discovery data digest module  300  and NRF interaction module  302  may be implemented on/in a computing platform or environment  304  that includes at least one processor  306  and memory  308 . In one example, computing platform/environment  304  may be a cloud computing environment in which discovery data digest module  300  and NRF interaction module  302  are implemented using computer executable instructions stored in memory  308  and executed by processor  306 . In a cloud-based environment, discovery data digest module  300  and NRF interaction module  302  may be implemented as microservices. In another example, computing platform/environment  304  may be an on premises computing platform located in an operator&#39;s network and discovery data digest module  300  and NRF interaction module  302  may be implemented using computer executable instructions stored in memory  308  and executed by processor  306  on the on-premises computing platform. 
     Discovery data digest module  300  is responsible for querying in NRF  100  periodically or a periodically for data based on operator input, obtaining the NF profile attribute values usable in NF discovery requests and classifying and storing the NF profile attribute values in the discovery data digest format described above with regard to Table 1. Discovery data digest module  300  may query NRF  100  for the NF data to be included in the NF discovery data digest independently from a need or query from NRF interaction module  302 . NRF interaction module  302 , which may reside on a consumer NF, an SCP, or another NRF separate from NRF  100  illustrated in  FIG.  3   , is responsible for creating optimized NF discovery request messages by obtaining query parameters to be included in the discovery request messages from NF profile attribute values stored the NF discovery data digest created by NF discovery data digest module  300 . 
     Although in the example illustrated in  FIG.  3   , NRF interaction module  302  is shown as being implemented on a consumer NF or SCP, the subject matter described herein is not limited to such an implementation. In an alternate implementation, NRF interaction module  302  may be implemented on a computing platform separate from an NF or SCP, such as a standalone computing platform that receives messages from a consumer NF or SCP indicating the need for NF discovery and provides, in response to the messages, the query parameters from the NF discovery data digest to NRF interaction module  302  so that NRF interaction module  302  can formulate an optimized NF discovery request. 
     Discovery data digest module  300  can be implemented on the same computing platform or on a different computing platform from NRF interaction module  302 . For example, if NRF interaction module  302  is implemented on a consumer NF or SCP, discovery data digest module  300  may be implemented on the consumer NF or SCP computing platform or on a computing platform separate from the consumer NF or SCP. 
       FIG.  4    is a message flow diagram illustrating exemplary messages exchanged in implementing dynamic optimized NF discovery. Referring to  FIG.  4   , in line 1, a producer NF  400  registers or updates its NF profile with NRF  100 . The registration or updating of the NF profile may be achieved using the NF register or NF update service operation as defined in 3GPP TS 29.510. NRF  100  stores or updates the NF profile of producer NF  400  in the NF profile database maintained by NRF  100 . 
     In line 2, discovery data digest module  300  obtains NF profile data usable as query parameters in NF discovery requests from NRF  100 . The obtaining of the NF profile data may be performed using the NF discovery service operation or using a proprietary API between discovery data digest module  300  and NRF  100  through which discovery data digest module  300  can obtain some or all of the NF profile information maintained by NRF  100  in its NF profiles database. It should be noted that the obtaining of the NF profile data by discovery data digest module  300  may be implemented or performed independently of a request or need from a consumer NF, SCP, or NRF interaction module  302 . The obtaining or updating of the NF profile data by discovery data digest module  300  may be performed periodically or aperiodically to obtain/update NF profile data digests. Discovery data digest module  300  obtains the NF profile data and classifies the data to create the NF discovery data digest including attributes from the NF profile that are usable as query parameters in NF discovery request messages. Classifying the data also includes storing the data and maintaining mappings between the data, for example, between subscriber identifying parameters, such as the SUPI and network identifying parameters, such as the PLMN or NSSAI. 
     In line 3 of the message flow diagram, consumer NF/SCP  402  indicates to NRF interaction module  302  a need to discover a producer NF to provide a given service. If consumer NF/SCP  402  is implemented on the same computing platform as NRF interaction module  302 , step 3 may be performed using internal messaging on the computing platform where the consumer NF or SCP module notifies the NRF interaction module of the service parameters associated with the needed service. If consumer NF/SCP  402  is implemented on a separate computing platform from NRF interaction module  302 , step 3 may be implemented using the NF discovery service operation or a proprietary interface between consumer NF/SCP  402  and NRF interaction module  302 . 
     In line 4 of the message flow diagram, NRF interaction module  302  uses the NF discovery data digest obtained and stored by discovery data digest module  300  to formulate an optimized NF discovery request message. For example, NRF interaction module  302  may query the NF discovery data digest using the service parameters received from consumer NF/SCP  402  and formulate an NF discovery request message that is optimized for the particular service type, location, load, etc. In line 5, NRF interaction module  302  transmits the NF discovery request with the discovery data digest module optimized query parameters to NRF  100 . In line 6, NRF  100  sends an NF discovery response to NRF interaction module  302  with the producer NF profiles that were obtained using the optimized query parameters in line 7. NRF interaction module  302  provides the NF profiles obtained from NRF  100  to consumer NF/SCP  402 . In the illustrated example, NRF interaction module  302  sends the NF profiles to consumer NF/SCP  402  in an NF discovery response message. 
     The following examples illustrate the NF discovery service operation with and without dynamic optimized NF discovery as described herein. In the first example, dynamic optimized NF discovery is not implemented for the case where an AMF needs to obtain NF profiles of UDMs serving a SUPI and belongs to the same or a nearest locality to the AMF. In such a case, the AMF may formulate an NF discovery request message of the following format:
         /nnrf-disc/v1/nf-instances?requester-nf-type=AMF&amp;target-nf-type=UDM&amp;supi=imsi-7890123&amp;preferred-locality=??
 
In the example, the locality attribute is listed as “??” because the AMF does not know the locality to include in the discovery request message after an initial discovery request fails to locate useful NF profiles. The AMF or other consumer NF may first query for the UDMs for a first preferred locality (most probably its own) for the required SUPI. In this example, it is assumed that the NRF returns an NF discovery response with no results or results which contain UDMs that are above acceptable load conditions. The consumer NF repeats the query for another locality (based on its configuration/implementation in a sequential manner). The consumer NF performs multiple round(s) of discovery queries until the consumer NF receives producer NF profiles that matches its requirements.
       

     Issues with this approach include:
         The consumer NF obtains NF profiles of producer NFs which are non-localized or not nearest to the consumer NF.   The search query may result in no producer NF profiles which can serve the required identifier (supi, service-names in the above example).   Receiving a no result set or a set of non-localized NF profiles increases business logic required to be implemented by the consumer NF to manipulate query parameters for successive retry attempts.   Requiring the consumer NF to implement multiple NF discovery queries to locate an NF profile that matches the need for a given service increases the latency in providing services and consumes resources in the 5G cover network.       

     In the following example, dynamic optimized NF discovery is implemented for the same case where the AMF wants to get profiles of UDMs serving s SUPI and belongs to a specific locality (i.e., the same locality as the AMF or a nearest locality to the AMF). In this example, the AMF or other consumer NF may first query the NF discovery data digest using the SUPI=imsi-7890123 based on its load as well as the nearest locality to the consumer NF to obtain query parameters usable to query the NRF. The consumer NF then formulates an NF discovery request using the attributes obtained from the NF discovery data digest as query parameters in the NF discovery request. An example of such an NF discovery request is as follows:
         /nnrf-disc/v1/nf-instances?requester-nf-type=AMF&amp;target-nf-type=UDM&amp;supi=imsi-7890123&amp;preferred-locality=locality-x
 
In this example, the NF discovery request includes the nearest locality to the consumer NF of a UDM that can serve the identified SUPI. The nearest locality may be a locality other than the locality of the consumer NF, and the consumer NF would not have known about the nearest locality with UDMs that can serve the SUPI without the data obtained from the NF discovery data digest which mapped the locality, NF type, and SUPI attributes of the target UDMs to each other.
       

     Benefits of this approach include:
         an increased probability of getting NF profiles from the NRF that can be used by the consumer network function;   fewer queries to be made by the consumer NF to the NRF, hence reducing overall network traffic; and   helping consumer NFs to process SBI service requests more quickly and hence reduces control plane latency.       

       FIG.  5    is a flow chart illustrating an exemplary process for dynamic optimized NF discovery. Referring to  FIG.  5   , in step  500 , the process includes querying an NRF, receiving responses to the querying, and building, from the responses, an NF discovery data digest of NF profile attributes and corresponding attribute values usable as query parameters in NF discovery requests. For example, NF discovery data digest module  300  may periodically or aperiodically query NRF  100  to obtain a subset of NF profile parameters and mappings between the parameters that are usable by consumer NFs and SCPs to formulate targeted NF discovery request messages. 
     In step  502 , the process includes determining that a consumer NF has a need for a service, and, in response, formulating, using the NF discovery data digest, an NF discovery request including at least one of the NF profile attribute values as a query parameter. For example, NRF interaction module  302 , which may be co-located with or separate from a consumer NF or SCP, may determine that a user needs a service provided by one or more producer NFs based on receipt of a service based interface (SBI) request or NF discovery request from the consumer NF or SCP or based on receipt of internal consumer NF or SCP messaging indicating that a user needs a producer NF provided service. NRF interaction module  302  may utilize attributes associated with the consumer NF and requested service to query the NF discovery data digest, obtain NF profile attributes, and include the NF profile attributes as query parameters in an NF discovery request message. 
     In step  504 , the process includes transmitting the NF discovery request message to the NRF. For example, NRF interaction module  302  may transmit the optimized NF discovery request message to NRF  100 . 
     In step  506 , the process includes receiving an NF discovery response from the NRF including at least one NF profile. For example, NRF interaction module  302  may receive an NF discovery response from NRF  100  that includes NF profiles that match one or more of the attributes in the optimized NF discovery request message. 
     In step  508 , the process includes using the at least one NF profile to facilitate providing of the service to the consumer NF. For example, NRF interaction module  302  may forward the set of discovered NF profiles to the consumer NF or SCP. The consumer NF or SCP may select one of the NF profiles and transmit an SBI service request to the corresponding producer NF. 
     Overall benefits of dynamic optimized NF discovery include that it helps consumer NFs to more quickly discover co-located producer NFs and serving specific slices, which can serve the required use-case. Consumer NFs uses discovery query and the required data readily available, hence increases performance of consumer NFs. This may reduce hardware requirements. Control plane latency is reduced for use cases pertaining to attach procedures, packet data unit (PDU) connectivity and others. Dynamic optimized NF discovery is consistent with 5G technology latency requirements, especially for ultra low latency slices. Dynamic optimized NF discovery increases overall core-network performance with optimized data available. Dynamic optimized NF discovery facilitates network planning and bringing in new call flow changes for new use-cases. The recommended solution has no impact on existing 5GC call flows and is fully backward compatible with existing NF designs. 
     The disclosure of each of the following references is incorporated herein by reference in its entirety. 
     REFERENCES 
     
         
         1. 3 rd  Generation Partnership Project; Technical Specification Group Core Network and Terminals; 5G System; Network Function Repository Services; Stage 3 (Release 17) 3GPP TS 29.510 V17.3.0 (2021-09) 
       
    
     It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter.