Method, system, and computer-readable medium for optimized network function (NF) discovery and routing using a service communication proxy (SCP) and a network function (NF) repository function (NRF) - Patents.com

The SCP maintains an unhealthy endpoint database to optimize NF discovery and routing in 5G networks by informing the NRF of unreachable instances, reducing latency and improving network efficiency by directing service requests to reachable NF instances.

JP7617249B2Active Publication Date: 2025-01-17ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2023513185
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-08-24
Filing Date
2021-02-26
Publication Date
2025-01-17
Estimated Expiration
2041-02-26

AI Technical Summary

Technical Problem

In 5G communication networks, the Network Function Repository Function (NRF) may indicate that a producer NF instance is available to provide a service, but the consumer NF may not be able to reach it due to network failures, leading to increased latency from reselection processes.

Method used

The Service Communication Proxy (SCP) maintains an unhealthy endpoint database to identify unreachable producer NF instances, adding custom headers to discovery requests to inform the NRF, which then filters out these instances from the response, optimizing routing by ensuring service requests are sent to reachable NF instances.

Benefits of technology

This approach reduces latency by avoiding unnecessary reselection processes and ensures service requests are directed to reachable producer NF instances, enhancing network efficiency and reducing processing delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007617249000002
    Figure 0007617249000002
  • Figure 0007617249000003
    Figure 0007617249000003
  • Figure 0007617249000004
    Figure 0007617249000004
Patent Text Reader

Abstract

A method for optimized NF discovery and routing includes, at an SCR, receiving a discovery request message or generating a discovery request message in response to a received service request message having a 3gpp-Sbi-Discovery header. The SCR modifies the discovery request message to identify as unhealthy at least one service endpoint and service name combination associated with at least one producer NF instance capable of providing the service identified in the discovery or service request message. The SCR forwards the discovery request message to an NRF. The NRF creates a list of service profiles of producer NF instances capable of providing the service identified in the discovery or service request message, and removes from the list at least one service profile of the at least one producer NF instance corresponding to the endpoint and service name combination identified in the discovery or service request message as unhealthy.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] Priority claim This application claims the benefit of priority to U.S. Patent Application Serial No. 17 / 001,599, filed August 24, 2020, the disclosure of which is incorporated herein by reference in its entirety.

[0002] The subject matter described herein relates to routing messages to producer network functions (NFs) in 5G communications networks. More particularly, the subject matter described herein relates to methods, systems, and computer-readable media for optimized NF discovery and routing using a service communications proxy (SCP) and an NF repository function (NRF). [Background technology]

[0003] background In 5G telecommunications networks, a network node that provides a service is called a producer Network Function (NF). A network node that consumes a service is called a consumer NF. A network function can be both a producer NF and a consumer NF depending on whether it consumes or provides a service.

[0004] A given producer NF may have many service endpoints. A service endpoint is a contact point for one or more NF instances hosted by the producer NF. A service endpoint is a combination of an Internet protocol (IP) address and a port number or a fully qualified domain name (that resolves into an IP address and a port number) on the network node hosting the producer NF. An NF instance is an instance of a producer NF that provides a service. A given producer NF may contain two or more NF instances. Note that multiple NF instances can share the same service endpoint.

[0005] Producer NFs register with a Network Function Repository Function (NRF). The NRF maintains service profiles of available NF instances that identify the services supported by each NF instance. Consumer NFs can subscribe to receive information about producer NF instances that have registered with the NRF.

[0006] In addition to consumer NFs, another type of network node that can subscribe to receive information about NF service instances is the service communication proxy (SCP). The SCP subscribes to the NRF and obtains reachability and service profile information about producer NF service instances. Consumer NFs connect to the service communication proxy, which load balances traffic between producer NF service instances offering the requested service or routes the traffic directly to the destination producer NF instance.

[0007] In addition to SCPs, other examples of intermediate proxy nodes or groups of network nodes that route traffic between producer and consumer NFs include security edge protection proxies (SEPPs), service gateways, and nodes in a 5G service mesh. A SEPP is a network node used to protect control plane traffic exchanged between different 5G public land mobile networks (PLMNs). As such, a SEPP performs message filtering, policing, and topology hiding for all API messages.

[0008] A Service Gateway is a node that sits in front of a group of producer NFs offering a given service. A Service Gateway may load balance incoming service requests among the producer NF instances offering the service in a manner similar to an SCP.

[0009] A service mesh is the name for a group of intermediate proxy nodes that enable communication between producer NFs and consumer NFs. A service mesh may include one or more SCPs, SEPPs, and service gateways. Summary of the Invention [Problem to be solved by the invention]

[0010] One problem that arises in 5G communication networks is that an NRF may indicate that a producer NF instance is available to provide a service, but that producer NF instance may not be reachable from a consumer NF. For example, one of the most critical tasks of an NRF is to receive a service discovery request from a consumer NF and return a matching response to the consumer NF that includes the service profiles of the producer NF instances that are available to provide the service. The NRF obtains this information through a registration message from the producer NF. Even if the network between the producer NF and the NRF is not congested, a network failure may occur between the consumer NF and the producer NF. Therefore, when a consumer NF requests from the NRF a list of service profiles of producer NF instances that can provide a service, the NRF may return a list of service profiles of producer NF instances, some of which may not be reachable from the consumer NF. As a result, when a consumer NF sends a service request message to a producer NF instance through the SCP, the SCP may determine that the service endpoint of the selected producer NF instance is not available and may perform a reselection process to select a different NF instance of the same or a different producer NF. Performing the reselection process at the SCP is undesirable because it increases the latency in providing the service to the consumer NF.

[0011] In view of these challenges, a need exists for a method, system, and computer-readable medium for optimized NF discovery and routing using an SCP and an NRF. [Means for solving the problem]

[0012] overview A method for optimized network function (NF) discovery and routing using a NF repository function (NRF) and a service communication proxy (SCP) includes receiving a discovery request message at an SCP or generating a discovery request message in response to a received service request message having a 3gpp-Sbi-Discovery header as defined in section 5.2.3.2.7 of Third Generation Partnership Project (3GPP) Technical Specification (TS) 29.500. According to section 5.2.3.2.7 of 3GPP TS 29.500, the 3gpp-Sbi-Discovery header is used to carry NF service discovery factors to the SCP in an indirect communication model. The 3gpp-Sbi-Discovery header includes discovery parameters to be carried by the NF consumer to the SCP, and is used to find a suitable NF producer instance, for example, by performing an NF service discovery procedure with the NRF on behalf of the NF consumer in case of indirect communication using a delegated discovery model.

[0013] The method further includes the SCP modifying the discovery request message to identify as unhealthy at least one endpoint and service name combination associated with a producer network function (NF) instance capable of providing the service identified in the discovery or service request message with the 3gpp-Sbi-Discovery header. The method further includes the SCP forwarding the discovery request message to the NRF. The method further includes creating, at the NRF, a list of service profiles of producer NF instances capable of providing the service identified in the discovery or service request message, the method further includes the NRF removing from the list at least one service profile of the at least one producer NF instance that corresponds to the at least one endpoint and service name combination identified in the discovery request message as unhealthy. The method further includes the NRF forwarding the discovery response message including the list of service profiles of the producer NF instances to the SCP.

[0014] According to another aspect of the subject matter described in this specification, a method for optimized NF discovery and routing includes maintaining, at an SCP, an unhealthy endpoint database, and modifying the discovery request message includes performing a lookup in the unhealthy endpoint database using a service name contained in or derived from the discovery request message or a service request message having a 3gpp-Sbi-Discovery header, locating a record in the unhealthy endpoint database that corresponds to the service name contained in or derived from the discovery or service request message, extracting the endpoint from the record, and inserting the endpoint and the service name into the discovery request message.

[0015] According to another aspect of the subject matter described herein, inserting the endpoint and the service name into the discovery request message includes inserting the endpoint and the service name into a custom header of the discovery request message.

[0016] According to another aspect of the subject matter described in this specification, maintaining the unhealthy endpoint database includes, in response to a determination that a producer NF instance associated with a combination of an endpoint and a service name is unhealthy, determining whether a record corresponding to the combination of the endpoint and the service name exists in the unhealthy endpoint database, and, in response to a determination that a record corresponding to the combination of the endpoint and the service name does not exist in the unhealthy endpoint database, adding a record corresponding to the combination of the endpoint and the service name to the unhealthy endpoint database, inserting a timestamp into the record, and starting a clean-up timer for the record.

[0017] According to another aspect of the subject matter described in this specification, a method for optimized NF discovery and routing includes detecting expiration of a clean-up timer and, in response, deleting a record corresponding to the combination of an endpoint and a service name from an unhealthy endpoint database.

[0018] According to another aspect of the subject matter described herein, the step of creating a list of service profiles of the producer NF instances includes: Request Message The method includes the steps of: extracting a service name parameter from the service profile; identifying a service profile of a producer NF instance that can provide the service identified by the service name parameter; and including in a list the service profiles of the producer NF instances that can provide the service identified by the service name parameter.

[0019] According to another aspect of the subject matter described in this specification, the step of deleting at least one service profile from the list includes removing from the list at least one service profile that corresponds to at least one endpoint and service name combination identified as unhealthy in the discovery request message received from the SCP.

[0020] According to another aspect of the subject matter described in this specification, the at least one service profile removed from the list includes at least one service profile of at least one producer NF instance that has connectivity with the NRF and is unreachable from the SCP.

[0021] According to another aspect of the subject matter described in this specification, receiving a discovery or service request message includes receiving a service request message indicating a delegated discovery, and the method further includes, at the SCP, after receiving the discovery response message, forwarding the service request message to one of the producer NF instances having the service profile in the list.

[0022] According to another aspect of the subject matter described herein, a system for optimized NF discovery and routing includes a service communication proxy (SCP) including at least one processor. The system includes an NF repository function (NRF) including at least one processor. The system further includes an SCP discovery / service request handler and database manager implemented by the at least one processor of the SCP to receive a discovery request message or generate a discovery request message in response to a received service request message, modify the discovery request message to identify as unhealthy at least one endpoint and service name combination associated with at least one producer NF instance capable of providing a service identified in the discovery or service request message, and forward the discovery request message to the NRF by the SCP. The system further includes an NRF discovery request handler, implemented by at least one processor of the NRF, for creating a list of service profiles of producer NF instances that can provide the service identified in the discovery request message, removing from the list at least one service profile of at least one producer NF instance that corresponds to the combination of at least one endpoint and service name identified in the discovery request message as unhealthy, and forwarding a discovery response message including the list of service profiles of the producer NF instances to the SCP.

[0023] According to another aspect of the subject matter described in this specification, a system for optimized NF discovery and routing includes an unhealthy endpoint database located at an SCP, and an SCP discovery / service request handler and database manager configured to perform a lookup in the unhealthy endpoint database using a service name included in or derived from the discovery or service request message, locate a record in the unhealthy endpoint database that corresponds to a service name identified in or derived from the discovery or service request message or a service request message having a 3gpp-Sbi-Discovery header, extract the endpoint from the record, and modify the discovery request message by inserting the endpoint and the service name into the discovery request message.

[0024] According to another aspect of the subject matter described herein, the SCP discovery / service request handler and database manager is configured to insert the endpoint and service name into a custom header of a discovery request message.

[0025] According to another aspect of the subject matter described herein, the SCP discovery request handler is configured to generate a discovery request message using discovery parameters received in a service request with a 3gpp-Sbi-Discovery header from a consumer NF in delegated discovery mode according to Model D in section E1 of 3GPP TS 23.501. The discovery request message is also generated by performing a lookup in an unhealthy endpoint database using the service identifier contained in or derived from the discovery parameters in the service request, locating a record in the unhealthy endpoint database that corresponds to the service identified in or derived from the service request message, extracting an identifier for the endpoint from the record, and inserting the identifier for the endpoint into the discovery request message.

[0026] According to another aspect of the subject matter described in this specification, the SCP discovery / service request handler and database manager is configured to, in response to a determination that a producer NF instance associated with an endpoint and service name combination is unhealthy, determine whether a record corresponding to the endpoint and service name combination exists in the unhealthy endpoint database, and, in response to a determination that a record corresponding to the endpoint and service name combination does not exist in the unhealthy endpoint database, add the record corresponding to the endpoint and service name combination to the unhealthy endpoint database, insert a timestamp into the record, and start a cleanup timer for the record.

[0027] According to another aspect of the subject matter described in this specification, the SCP Discovery / Service Request Handler and Database Manager is configured to detect expiration of a cleanup timer and, in response, delete a record corresponding to the combination of endpoint and service name from the unhealthy endpoint database.

[0028] According to another aspect of the subject matter described in this specification, the NRF discovery request handler is configured to extract a service name parameter from the discovery request message, identify service profiles of service endpoints on the producer NFs that can provide the service identified by the service name parameter, and include in a list the service profiles of service endpoints on the producer NFs that can provide the service identified by the service name parameter.

[0029] According to another aspect of the subject matter described in this specification, the service profiles excluded from the list include service profiles or NF profiles of service endpoints on producer NFs that have connectivity with the NRF but are not reachable from the SCP.

[0030] According to another aspect of the subject matter described in this specification, the SCP discovery / service request handler and database manager is configured to receive discovery response messages and forward the discovery response messages to consumer NFs, and to receive service request messages from consumer NFs addressed to one of the service endpoints in the list and forward the service request messages to the service endpoints.

[0031] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium is provided having executable instructions stored thereon that, when executed by a processor of the computer, control the computer to perform a number of steps. The number of steps includes, at a service communication proxy (SCP), receiving a discovery request message or generating a discovery request message in response to a received service request message having a 3gpp-Sbi-Discovery header. The number of steps further includes, at the service communication proxy (SCP), modifying the discovery request message to identify as unhealthy at least one endpoint and service name combination corresponding to at least one producer NF instance capable of providing the service identified in the discovery or service request message. The number of steps further includes, at the NRF, the SCP forwarding the discovery request message to an NF repository function (NRF). The number of steps further includes, at the NRF, creating a list of service profiles of service endpoints on producer NFs capable of providing the service identified in the discovery or service request message. The steps further include the NRF removing from the list at least one service profile of the at least one producer NF instance associated with the endpoint and service name combination identified in the discovery request message as being unhealthy, The steps further include the NRF forwarding to the SCP a discovery response message including the list of service profiles of the producer NF instance.

[0032] The subject matter described herein may be implemented in hardware, software, firmware, or any combination thereof. Thus, the terms "function," "node," or "module" as used herein refer to hardware that may also include software and / or firmware components to implement the described features. In one exemplary implementation, the subject matter described herein may be implemented using a computer-readable medium having stored thereon computer-executable instructions that, when executed by a processor of a computer, control a computer to perform a number of 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, computer-readable media implementing the subject matter described herein may be located on a single device or computing platform, or may be distributed among multiple devices or computing platforms.

[0033] BRIEF DESCRIPTION OF THE DRAWINGS The subject matter described herein will now be described with reference to the accompanying drawings. [Brief description of the drawings]

[0034] [Figure 1] FIG. 1 is a network diagram illustrating an example 5G network architecture. [Diagram 2] FIG. 1 is a network diagram illustrating a problem that occurs when a producer NF has connectivity with an NRF, but connectivity between the producer NF and a consumer NF may be down or unavailable. [Diagram 3] FIG. 13 is a message flow diagram illustrating example messaging between a consumer NF, an SCP, and an NRF for optimized routing using an SCP and an NRF. [Figure 4A]4 is a flowchart illustrating an example SCP algorithm for marking service endpoints as unhealthy and utilizing service endpoint health information in making routing decisions. [Figure 4B] 1 is a flowchart illustrating an example SCP algorithm for maintaining a list of unhealthy service endpoints. [Diagram 5] 13 is a flowchart illustrating an example SCP process for adding a custom header carrying health information to a discovery request. [Figure 6] 13 is a flowchart illustrating an example NRF algorithm for processing a discovery request received from an SCP. [Figure 7] FIG. 2 is a block diagram illustrating an SCP and an NRF including components for optimized routing as described herein. [Figure 8] 1 is a flowchart illustrating an example process for optimized routing using NRF and SCP. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035] Detailed Description The subject matter described herein relates to a method, system, and computer-readable medium for optimized service discovery and routing using an SCP and an NRF. The subject matter may be implemented in a 5G system network architecture or a network architecture including both 5G and non-5G network elements. FIG. 1 is a block diagram illustrating an example 5G system network architecture. The architecture of FIG. 1 includes an NRF 100 and an SCP 101, which may be located in the same home public land mobile network (HPLMN). As described above, the NRF 100 may maintain a profile of available producer NF service instances and their supported services, and may enable consumer NFs or SCPs to subscribe to new / updated producer NF service instances and be notified of their registration. The SCP 101 may also support service discovery and selection of producer NF instances. The SCP 101 may perform load balancing of connections between consumer NFs and producer NFs. In addition, using the methodology described herein, the SCP 101 may perform preferred NF location-based selection and routing.

[0036] The NRF 100 is a repository for NF profiles or service profiles of producer NF instances. To communicate with a producer NF instance, a consumer NF or SCP must obtain the NF profile or service profile of the producer NF instance from the NRF 100. The NF profile or service profile is a JavaScript object notation (JSON) data structure defined in 3rd Generation Partnership Project (3GPP) Technical Specification (TS) 29.510. The definition of an NF profile or service profile includes at least one of a fully qualified domain name (FQDN), an Internet Protocol (IP) version 4 (IPv4) address, or an IP version 6 (IPv6) address. In FIG. 1, any node (other than the NRF 100) can be a consumer NF or a producer NF depending on whether they are requesting or providing a service. In the illustrated example, the nodes include a policy control function (PCF) 102 that performs policy-related operations in the network, and a policy control function (PCF) 103 that manages user data. unification Data Management ( unifiedThe node shown in Figure 1 includes a user data management (UDM) function 104 and an application function (AF) 106 that provides application services. The node shown in Figure 1 further includes a session management function (SMF) 108 that manages sessions between an access management function (AMF) 110 and the PCF 102. The 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 (UE), such as User Equipment (UE) 114, seeking access to the network.

[0037] The network slice selection function (NSSF) 116 provides network slicing services for devices that want to access specific network capabilities and characteristics associated with a network slice. The network exposure function (NEF) 118 provides application programming interfaces (APIs) for application functions that want to obtain information about Internet of Things (IoT) devices and other UEs connected to the network. The NEF 118 performs a function similar to the service capability exposure function (SCEF) in 4G networks.

[0038] The radio access network (RAN) 120 connects the user equipment (UE) 114 to the network via wireless links. The radio access network 120 may be accessed using a gNodeB (gNB) (not shown in FIG. 1 ) or other wireless access points. The user plane function (UPF) 122 may support various proxy functionalities for user plane services. One example of such a proxy functionality is a multipath transmission control protocol (MPTCP) proxy functionality. The UPF 122 may also support performance measurement functionality, which may be used by the UE 114 to obtain network performance measurements. Also shown in FIG. 1 is a data network (DN) 124, through which the UE accesses data network services, such as Internet services.

[0039] The SEPP 126 filters incoming traffic from another PLMN and provides topology hiding for traffic leaving the home PLMN. The SEPP 126 may communicate with a SEPP in a foreign PLMN that manages security for that foreign PLMN. Thus, traffic between NFs in different PLMNs may traverse two SEPP functions: a SEPP function for the home PLMN and a SEPP function for the foreign PLMN.

[0040] As mentioned above, one problem that arises in 5G networks is that the NRF will report a discovery response message that a producer NF instance is available to provide service if the network between the NRF and the producer NF instance is not congested. However, the consumer NF may not be able to reach the producer NF instance because the network between the consumer NF and the producer NF instance is congested or unavailable. Figure 2 illustrates this problem in more detail. In Figure 2, SCP 101A serves location 1, SCP 101B serves location 2, and SCP 101C serves location 3. The NRF 100 responds to discovery requests at each of locations 1, 2, and 3. In this example, consumer NFs 200 and 202 reside in location 1. Producer NF 204 resides in location 2, and producer NFs 206 and 208 reside in location 3. In the illustrated example, the producer NF 204 at location 2 registers with the NRF 100, and the NRF 100 marks the producer NF 204 as registered (which indicates that the producer NF 204 is available). This is possible because the producer NF 204 has good connectivity with the NRF 100.

[0041] However, consumer NFs 200 and 202 residing in location 1 may not have good connectivity with location 2, as indicated by the cross marks on the line between SCP 101A and producer NF 204 and on the line between SCP 101A and SCP 101B. Thus, when consumer NF 200 or 202 sends a discovery request to NRF 100 requesting a service provided by producer NF 204, NRF 100 will return a list including the service profiles of producer NF instances on producer NF 204 to the requesting consumer NF 200 or 202. When consumer NF 200 or 202 receives a response to the discovery request, it will send the service request to their local SCP 101A. SCP 101A may determine that the producer NF instance on producer NF 204 is unreachable and may perform a reselection process to select an alternative producer NF instance to handle the service request. For example, SCP 101A may select an alternative producer NF instance in location 2, or may select one of the producer NF instances on producer NFs 206 and 208 in location 3. Such reselection is undesirable because it adds latency in processing a service request. Currently, in 3GPP, there is no mechanism to provide feedback to the NRF if the availability of a producer NF may be limited to a set of consumer NFs. 3GPP allows producers to limit discovery based on domain, network slice selection assistance identifier (NSSAI), NF type, etc. However, this does not solve the problem of limiting the set of producer NF instances based on connectivity or producer NF instance health.

[0042] Figure 3 is a message flow diagram illustrating example messaging for optimized routing using SCP and NRF. With reference to Figure 3, at line 1, one of the consumer NFs 200 sends a discovery request for service X to the NRF 100. The NRF 100 responds to the discovery request with a list of service profiles of producer NF instances from location 2 and location 3 that can provide the service. The consumer NF 200 selects a service endpoint from one producer NF in location 2 to provide the service.

[0043] At line 2 of the message flow diagram, the consumer NF that sent the discovery request sends a service request to SCP101A requesting a service from a producer NF at location 2. SCP101A determines that the selected service endpoint of the producer NF at location 2 is unavailable, e.g., due to lack of connectivity, and determines that there is a producer NF instance at location 3 that can provide the service. Thus, at line 3 of the message flow diagram, SCP101A forwards the service request to one of the producer NF instances on producer NF 208 at location 3 that can provide the service.

[0044] SCP101A internally maintains a service context that service X of producer NF204 is not reachable from location 1. As described in more detail below, SCP101A may maintain an unhealthy endpoint database that contains a list of service endpoints that are not reachable from SCP101A's location.

[0045] At line 4 of the message flow diagram, the producer NF instance on the producer NF 208 at location 3 that received the service request message responds to the service request. For example, if the producer NF 208 is a PCF and the service request is a request for a policy service, the producer NF instance on the producer NF 208 may respond to the service request by providing policy instructions to the requesting consumer NF 200.

[0046] At line 5 in the message flow diagram, the SCP 101A receives the service response and forwards the response to the consumer NF 200 that originated the request.

[0047] Because SCP101A maintains context about the health or reachability of producer NF instances on producer NF204, SCP101A can utilize this context and facilitate optimized routing by communicating the context to NRF100. Such utilization is illustrated by line 6 of the message flow diagram, where when SCP101A receives a further discovery request for service X, SCP101A adds a custom header that informs or indicates to NRF100 that service X from a given producer NF at location 2 is not reachable from SCP101A's location. SCP101A forwards this discovery request to NRF100. NRF100 processes the discovery request and filters the service profiles in the list of service profiles returned in response to the discovery request based on the custom header. The discovery response from NRF100 will include profiles of producer NF instances on producer NFs that are reachable from location 1. In the example shown in Figure 3, the discovery response would include the service profile of the producer NF instance on the producer NF from location 3, rather than the service profile of the producer NF instance of the producer NF from location 2. Using such a system, a consumer NF could send a service request to a producer NF instance on a producer NF that the consumer NF is reachable from, and the SCP did not have to provide a reselection service that could result in processing delays for the service request.

[0048] One issue to be considered is whether the NRF should blacklist all producer NFs at a given location when the SCP informs the NRF that a service endpoint at that location is not reachable. In an exemplary implementation, the NRF would not blacklist all service endpoints when it receives an indication that an endpoint at a given location is unavailable. The problem an SCP instance is facing may be only for a specific service instance. For this reason, restricting traffic from that location to all producer NFs is not an ideal choice. If the SCP detects that a given endpoint is down, the NRF may exclude the service profile of the producer NF instance associated with that endpoint from discovery response messages to SCPs in the area from which the endpoint is not reachable but from other areas.

[0049] In some implementations, two or more services may share a given endpoint (i.e., NF services have a common Application Programming Interface (API) gateway as their exposure point). If an SCP determines that one service sharing or exposing a given endpoint is down, should the NRF restrict discovery of all service instances sharing the given endpoint? In an ideal implementation, the answer is "no" because some of the other services sharing or exposing the same endpoint may be available (assuming the problem is with that one service and not with the network between the endpoint and the consumer NF). If the SCP detects that a given service sharing an endpoint with other services is down, the SCP should notify the NRF about the affected service instances on that endpoint. The NRF will avoid discovery of that service instance from consumer NFs whose locations are served by the SCP that notified the NRF about the unavailability of the service instance.

[0050] The two main components of the subject matter described herein are the SCP and the NRF. Their functions in providing optimized routing as described herein are as follows:

[0051] SCP For a given service name (the service name is identified from a registered uniform resource indicator (RURI)), the SCP maintains a list of endpoints that have an unhealthy network status. An endpoint may be unhealthy due to reachability, or congestion, or other criteria monitored by the SCP. Endpoints may be identified by fully qualified domain name (FQDN), Internet Protocol (IP) address, or both.

[0052] The SCP starts a cleanup timer for each service endpoint marked as unhealthy. When the cleanup timer expires, the SCP remarks the service instance as healthy by removing the record for the endpoint from the unhealthy endpoint database. For network unreachability cases, "ping" or other network tools can be used to track endpoint reachability. For a simplified implementation, the subject matter described herein uses a timer-based option to determine when an endpoint identified as unhealthy should be remarked as healthy.

[0053] The SCP adds a custom header to discovery request messages that identifies endpoints that have been marked as unhealthy by the SCP in order to provide guidance to the NRF as to which service profiles should be excluded from discovery responses.

[0054] NRF Based on the parameters in the received discovery request message, the NRF generates a list of viable service profiles of producer NF instances that can provide each service identified in the discovery request message. The NRF removes or excludes from the list the profiles of service instances that match endpoints indicated as unhealthy by the SCP in the custom header. The NRF returns the service profiles in the discovery response.

[0055] SCP algorithm FIG. 4A illustrates an exemplary behavior of the SCP for an endpoint whose network status has been determined to be unhealthy. With reference to FIG. 4A, in step 400, the SCP 101 determines that a given service endpoint is unhealthy. This determination may be made in any suitable manner, such as not receiving a response from the endpoint to a service request or an http heartbeat message. The service endpoint may be identified by a service name and an endpoint identifier. If in step 402 the service endpoint is already marked as unhealthy, control proceeds to step 404, where the service name and timestamp for the endpoint are updated in an unhealthy endpoint database maintained by the SCP 101. Table 1, shown below, illustrates an example of an unhealthy endpoint database that may be maintained by the SCP 101.

[0056] [Table 1]

[0057] In Table 1, the combination of endpoint and service name determined to be unhealthy is identified by the service name and the endpoint identifier. The service name identifies the 3GPP service provided by the endpoint. In Table 1, the identified services are the nudm-sdm service used by the consumer NF to look up subscription information for the UE and the nudm-uecm service used by the consumer NF to obtain context information about a transaction being performed by the UE. The endpoint providing the service is identified by a fully qualified domain name (FQDN) or an IP address. Each entry in Table 1 further includes a timestamp, which is the time the entry was added to the unhealthy endpoint database. Note that the endpoint, not the entire service, is marked as unhealthy. Marking the endpoint, rather than the service, as unhealthy allows the consumer NF to obtain the service from a healthy endpoint that provides the service, even if other endpoints that provide the same service are unhealthy or not reachable.

[0058] Note that if the SCP 101 is unable to obtain the identified service from the producer NF instance that exposes the endpoint, the SCP 101 marks the endpoint and service name combination as unhealthy. The unhealthy status recorded for an endpoint and service name combination in the unhealthy endpoint database may be caused by the producer NF instance being unreachable by the SCP even though the producer NF instance is able to register with the NRF, as in the case of the producer NF instance located on the producer NF 204 shown in Figure 2. Note that the unhealthy endpoint databases maintained by the SCPs in different domains, such as SCPs 101A, 101B, and 101C in Figure 2, may be different, since the SCP maintains health status information regarding the producer NFs that the SCP is reachable from. Each SCP maintains its own region or location specific unhealthy endpoint database of service instances on producer NFs that are unreachable from that SCP, and the NRF returns service profiles of producer NF instances that are reachable by that SCP, thus increasing network efficiency compared to solutions where the unhealthy producer NF instance status is not SCP specific. Stated another way, the subject matter described herein enables the NRF to formulate and return SCP and region specific lists of service profiles of producer NF instances that are reachable from each SCP.

[0059] Returning to Figure 4A, after updating the timestamp for the service name and endpoint pair in step 404, control proceeds to step 406 where the SCP restarts the clean-up timer for the service name and endpoint pair. The clean-up timer is a timer maintained by the SCP for each entry in the unhealthy endpoint database. The SCP starts the clean-up timer when an entry is added to the unhealthy endpoint database. When the timer reaches a predetermined value, the SCP removes the entry from the unhealthy endpoint database.

[0060] In step 408, the SCP performs alternative routing to select a different service endpoint or producer NF in response to receiving a service request for an endpoint marked as unhealthy.

[0061] Returning to step 402, if the endpoint is not already marked as unhealthy, control proceeds to step 410 where the service name and endpoint identifier are added to the unhealthy endpoint database. In step 412, a cleanup timer is started for the service name and endpoint identifier pair. Control then proceeds to step 413 where the service name and endpoint identifier are added to the unhealthy endpoint database. 408 where alternative routing is used to route the service request to a producer NF instance on a producer NF that is not listed in the unhealthy endpoint database.

[0062] FIG. 4B illustrates an exemplary process performed by the SCP 101 to clean up entries in the unhealthy endpoint database. The purpose of the cleanup process is to mark producer NF instances as healthy by default, and only mark them as unhealthy if and for a short period of time after they are detected as unhealthy. With reference to FIG. 4B, in step 414, a cleanup timer for a service name and endpoint pair expires. In step 416, the SCP determines whether the endpoint and service name combination is still present in the unhealthy list or database. If the endpoint and service name combination is still present in the unhealthy list or database, control proceeds to 418, where the service name and endpoint are removed from the unhealthy endpoint database. If the service name and endpoint combination is not still present in the unhealthy list or database, the process ends. Note that a single timer or individual timers can be used to manage unhealthy service instances. Using individual timers for each service name and endpoint pair is merely an exemplary implementation of the subject matter described herein. This implementation can be changed to a single timer for all endpoint and service name pairs without departing from the scope of the subject matter described herein.

[0063] FIG. 5 is a flow chart illustrating an exemplary process performed by the SCP 101 in response to receiving a discovery request or a service request with a 3gpp-Sbi-Discovery header from a consumer NF. For example, the SCP 101 may receive a discovery request from a consumer NF when the consumer NF is performing service discovery. If the consumer NF implements delegated discovery and the SCP 101 supports delegated discovery, as indicated by Model D in Section E1 of 3GPP TS 23.501, the SCP 101 may receive a service request from the consumer NF. FIG. 5 also illustrates the same unhealthy endpoint database 500 as shown in Table 1. Referring to FIG. 5, in step 502, the SCP 101 receives a discovery request or a service request with a 3gpp-Sbi-Discovery header (indicating delegated discovery) from the consumer NF. In step 504, the SCP 101 determines whether the discovery or service request includes a service name parameter. If the discovery parameters include a service name parameter, control proceeds to step 506 where SCP 101 begins iterating over each service name in the service name parameter. In step 508, SCP 101 determines whether the iterations are complete for the service name currently being checked. In step 510, SCP 101 performs a lookup in the unhealthy endpoint database 500 for the service name. In step 512, it is determined whether the service name is found. If the service name is found, control proceeds to step 514 where SCP 101 adds unhealthy endpoint information to the discovery request for the endpoint that corresponds to the entry in the unhealthy endpoint database 500. In one implementation, SCP 101 may insert unhealthy endpoint information into the discovery request by adding a custom header to the discovery request. The custom header indicates the service names and endpoints that are marked as unhealthy in the unhealthy endpoint database 500. In the example shown in FIG. 5, the custom header is "X-SCP-UH-<service name> : <endpoint>" where X-SCP-UH is the prefix for the header,<service name> is the name of the service provided by the endpoint that is marked as unhealthy, <endpoint>is the identifier of the service endpoint that is marked as unhealthy.

[0064] Returning to step 504, if the service request does not include a service name parameter, control proceeds to step 516, where the SCP 101 creates a list of service names as defined by 3GPP TS 23.501 section 7.2. Creating a list of service names is also described in 3GPP TS 29.510, table 6.1.6.3.11. After the list is created, control proceeds to step 518, where the SCP 101 repeats the process of determining whether each service name is located in the unhealthy endpoint database, and if so, adds a custom header to the discovery request that identifies the endpoint as unhealthy.

[0065] Returning to step 508, once the SCP 101 has completed iterating through the service names in the service name parameter list, or the list of service names generated by the SCP 101, control proceeds to step 520, where the SCP 101 forwards the discovery request to the NRF 100. In the example shown in Figure 5, if the consumer NF is requesting the nudm-sdm service, the SCP 101 will add the following custom header value to the discovery request message: X-SCP-UH-nudm-sdm: sdm1.udm1.com X-SCP-UH-nudm-sdm: sdm2.oracle.com X-SCP-UH-nudm-sdm: 100.10.2.4 In the above example, each of the custom header values ​​added to the discovery request is for an endpoint that provides the nudm-sdm service and is identified as unhealthy in the unhealthy endpoint database 500. As described in more detail below, the NRF 100 uses the endpoints identified in the custom header to filter the list of service profiles returned in the discovery response to exclude from the list the service profiles of endpoints marked as unhealthy in the unhealthy endpoint database 500.

[0066] FIG. 6 is a flow chart illustrating an exemplary algorithm performed by the NRF 100 when processing a discovery request. With reference to FIG. 6, in step 600, the NRF 100 receives a discovery request. The discovery request may be from the SCP 101 or directly from a consumer NF. If the NRF receives the discovery request directly from a consumer NF, there may be no custom header. However, the consumer NF may implement the application logic described herein for the SCP and add a custom header to the discovery request that identifies the unhealthy endpoint.

[0067] In step 602, the NRF 100 creates a list of potential service profiles with service instance information that may be provided in the discovery response based on the discovery request parameters. A service profile or NF profile is a data structure defined in 3GPP TS 29.510 and maintained by the NRF for each producer NF instance that has registered with the NRF. A service profile includes parameters such as nfInstanceID, which uniquely identifies an NF instance, NF type, which identifies the type of network function, etc. A consumer NF that receives the list of service profiles will utilize the information in the service profile to select a producer NF instance to provide a given service and send a service request to the producer NF instance.

[0068] In step 604, the NRF 100 determines whether a custom header is present in the discovery request that indicates an unhealthy endpoint and service name combination. If a custom header is present that indicates an unhealthy endpoint and service name combination, control proceeds to step 606, where the NRF 100 iterates through all headers with the prefix "X-SCP-UH", indicating that the header contains information identifying an unhealthy endpoint and service name combination. The information contained in the custom header may include the service name and endpoint for each combination determined to be unhealthy by the SCP that sent the discovery request.

[0069] If in step 608 the NRF has not finished all iterations of the custom header, control proceeds to step 610 where the NRF 100 determines whether there is a service profile in the service profile list created in step 602 that matches the current endpoint being examined in the custom header. If a matching endpoint is located, control proceeds to step 612 where the NRF 100 removes the service instance from the service profile list. Removing a service profile from the list includes deleting the service profile for the producer NF instance from the list of service profiles that will be provided to an SCP or consumer NF in a discovery response.

[0070] Returning to step 604, if no custom header is present in the discovery request message, control proceeds to step 614, where the NRF 100 applies its local policies to order or sort the list of service profiles, update priorities or other parameters, and apply scoping to limit the number of service profiles returned in the discovery response. In step 616, the discovery response is sent to the consumer NF or SCP.

[0071] Returning to step 608, if the NRF 100 determines that it has iterated through all of the custom headers in the discovery request message, control proceeds to step 618, where the NRF 100 determines whether the discovery request includes a service name parameter. If the discovery request does not include a service name parameter, control proceeds back or forwards to step 614, where the NRF 100 applies local NRF policies to sort the list of possible service profiles, apply scoping parameters, etc., and to step 616, where the NRF 100 sends a discovery response to the requestor.

[0072] Returning to step 618, if a service name parameter is present in the discovery request message, control proceeds to step 620 where the NRF 100 removes empty service profiles from the potential list of profiles that will be returned to the requestor. Control then proceeds to steps 614 and 616 where the list of profiles is sorted and a discovery response is sent to the requestor.

[0073] Once the NRF 100 has completed iterating through the list of service profiles in step 608, control proceeds to steps 614, 616, 618, and 620, where the NRF 100 sorts the list of service profiles of producer NF instances that can provide the service identified in the discovery request with unhealthy service profiles removed from the list, and sends a discovery response to the requesting SCP or consumer NF.

[0074] FIG. 7 is a block diagram illustrating an example SCP and NRF that can perform the steps described herein for optimized NF discovery and routing. With reference to FIG. 7, the SCP 101 and the NRF 100 each include at least one processor 700 and a memory 702. The SCP 101 further includes an unhealthy endpoint database 500 that stores a list of endpoints marked as unhealthy by the SCP 101. The unhealthy endpoint database 500 may reside in the memory 702 of the SCP 101. The SCP 101 further includes an SCP discovery / service request handler and database manager 704 that processes discovery requests from consumer NFs and service requests with 3gpp-Sbi-Discovery headers. For discovery requests received from consumer NFs, the SCP discovery / service request handler and database manager 704 may modify the discovery request to include information of the unhealthy endpoint and service name. In the case of delegated discovery, where the SCP 101 formulates a discovery request on behalf of the consumer NF, the SCP discovery / service request handler and database manager 704 may receive a service request with a 3gpp-Sbi-Discovery header, formulate a discovery request on behalf of the consumer NF, and modify the discovery request to include unhealthy endpoint and service name information. The SCP discovery / service request handler and database manager 704 also maintains a list of unhealthy service name and endpoint combinations in the database 500. The SCP discovery / service request handler and database manager 704 may be realized by computer-executable instructions stored in the memory 702 of the SCP 101 and executed by the processor 700 of the SCP 101.

[0075] As mentioned above, the SCP 101 maintains a local list of unhealthy endpoint and service name combinations, and different SCPs may maintain different lists of unhealthy endpoint and service name combinations. As a result, the problem described above with respect to FIG. 2, where a producer NF registers with the NRF as available but is not reachable by a particular consumer NF, is avoided. In addition, a producer NF instance that appears unhealthy to some SCPs may appear healthy to other SCPs. An endpoint and service name combination is marked as unhealthy only by the SCP for which the endpoint and service name combination appears unhealthy. Other SCPs that do not see the producer NF instance as unhealthy can still reach the producer NF instance. As a result, utilization of the producer NF is improved compared to an implementation in which the producer NF instance is marked as unhealthy globally.

[0076] The NRF 100 includes an NRF discovery request handler 706, which receives discovery requests, parses the discovery request for unhealthy endpoint and service name combinations, and formulates a discovery response message to exclude service profiles of producer NF instances corresponding to endpoint and service name combinations marked as unhealthy by the SCP 101. To this end, the NRF discovery request handler 706 generates a list of service profiles that are specific to the SCP and the domain with respect to reachability of the producer NF instance corresponding to the service profile. The NRF discovery request handler 706 may be realized by computer-executable instructions stored in the memory 702 of the NRF 100 and executed by the processor 700 of the NRF 100.

[0077] Figure 8 is a flow chart illustrating an example process performed by the SCP 101 and NRF 100 in performing optimized routing as described herein. With reference to Figure 8, in step 800, a discovery request or service request with a 3gpp-Sbi-Discovery header is received from a consumer NF. The discovery or service request may identify at least one service for which NF discovery is requested (either directly by the consumer NF or indirectly in the case of delegated discovery).

[0078] A lookup is performed in the unhealthy endpoint database at step 802. For example, the SCP 101 may perform a lookup in the database 500 for each service identified in a discovery or service request or created based on a discovery or service request.

[0079] The unhealthy endpoint and service name combinations resulting from the lookup are added to an existing or new discovery request in step 804. For example, the SCP 101 may add a custom header to the discovery request that identifies each endpoint and service name combination that was identified as unhealthy based on a lookup in the unhealthy endpoint database 500.

[0080] The discovery request with the identity of the unhealthy endpoint and service name is forwarded to the NRF in step 806. For example, the SCP 101 may forward the modified discovery request to the NRF 100.

[0081] In step 808, a list of service profiles is created in the NRF using the identification information of the unhealthy endpoint and service name provided in the discovery request. For example, the NRF 100 generates an initial list of service profiles for the endpoint based on the service identifier (outside the custom header in the discovery request message) and excludes or removes the service profiles of the endpoint from the list of service profiles that have a service name and endpoint combination indicated by the SCP 101 as unhealthy.

[0082] A discovery response with the list of service profiles is sent to the SCP in step 810. For example, the NRF 100 may send to the SCP 101 a list of service profiles that has been filtered to remove service profiles of producer NF instances that correspond to the endpoint and service name combinations identified as unhealthy.

[0083] In step 812, the process includes providing the list to the consumer NF. Step 812 will only occur in the case of non-delegated discovery, where the SCP receives a discovery request from the consumer NF and forwards the discovery request to the NRF. In the case of delegated discovery, where the SCP does not receive a discovery request from the consumer NF but instead receives a service request, step 812 is not performed. In step 812, for the case of non-delegated discovery, the SCP 101 may forward a discovery response containing the list of service profiles of the producer NF instances to the consumer NF that sent the initial discovery request to the SCP 101.

[0084] In step 814, the process includes forwarding the service request to the producer NF instance. In the case of delegated discovery, the service request may be the same service request received in step 800. In the case of non-delegated discovery, the service request may be a new service request received from the consumer NF. In either case, the SCP 101 forwards the request to one of the producer NF instances that has the service profiles in its filtered list of service profiles, reducing the likelihood that the SCP will have to perform producer NF reselection.

[0085] The disclosure of each of the following references is incorporated herein by reference in its entirety: References 1.3GPP TS 23.501; 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; System Architecture for 5G System (5G System: 5GS); Stage 2 (Release 16) V16.4.0 (2020-03) 2.3GPP TS 23.502; 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Procedures for 5G Systems (5GS); Stage 2 (Release 16) (2020-03) V16.4.0 (2020-03) 3.3GPP TS 29.510; 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminal; 5G System; Network Function Repository Service; Stage 3 (Release 16), V16.4.0 (2020-07) 4.3GPP TS 29.500; 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminal; 5G System; Technical Realization of Service-Based Architecture; Stage 3 (Release 16), V16.4.0 (2020-06) It will be understood that various details of the presently disclosed subject matter can be changed without departing from the scope of the presently disclosed subject matter. Further, the above description is merely illustrative and not limiting.< / endpoint> < / endpoint>

Claims

1. A method for optimized Network Function (NF) discovery and routing using a Network Function (NF) Repository Function (NRF) and a Service Communication Proxy (SCP), the method comprising: receiving, at the SCP, a discovery request message or generating a discovery request message based on a received service request message having a 3gpp-Sbi-Discovery header; modifying said discovery or service request message by said SCP to identify as unhealthy at least one endpoint and service name combination associated with a producer NF instance capable of providing the service identified in said discovery or service request message; the SCP forwarding the discovery request message to the NRF; creating, in the NRF, a list of service profiles of producer NF instances that can provide the service identified in the discovery or service request message; the NRF removing from the list at least one service profile of at least one producer NF instance corresponding to the at least one endpoint and service name combination identified in the discovery request message as being unhealthy; and the NRF forwarding a discovery response message including the list of service profiles of producer NF instances to the SCP.

2. maintaining, at the SCP, an unhealthy endpoint database; The step of modifying the discovery request message includes: performing a lookup in the unhealthy endpoint database using the service name contained in or derived from the service or discovery request message; locating a record in the unhealthy endpoint database that corresponds to the service name identified in or derived from the service or discovery request message; extracting the endpoints from the records; and inserting the endpoint and the service name into the discovery request message.

3. The method of claim 2 , wherein inserting the endpoint and service name into the discovery request message comprises inserting the endpoint and service name into a custom header of the discovery request message.

4. The step of maintaining the unhealthy endpoint database comprises, in response to determining that a producer NF instance associated with a combination of an endpoint and a service name is unhealthy, determining whether a record corresponding to the service name and endpoint combination exists in the unhealthy endpoint database; in response to determining that a record corresponding to the combination of the endpoint and service name does not exist in the unhealthy endpoint database, adding a record corresponding to the combination of the endpoint and service name to the unhealthy endpoint database; inserting a timestamp into said record; and starting a clean-up timer for said recording.

5. 5. The method of claim 4, further comprising detecting expiration of the cleanup timer and, in response thereto, deleting the record corresponding to the endpoint and service name combination from the unhealthy endpoint database.

6. The method of any one of claims 1 to 5, wherein the step of creating the list of service profiles of producer NF instances includes the steps of: the NRF extracting a service name parameter from the discovery request message; identifying service profiles of producer NF instances that can provide the service identified by the service name parameter; and including in the list the service profiles of the producer NF instances that can provide the service identified by the service name parameter.

7. 7. The method of claim 6, wherein excluding the at least one service profile of the at least one producer NF instance from the list comprises removing from the list at least one service profile that corresponds to the at least one service name and endpoint combination identified as unhealthy in the discovery request message received from the SCP.

8. The method of any one of claims 1 to 7, wherein the at least one service profile excluded from the list includes at least one service profile of at least one producer NF instance that has connectivity with the NRF and is unreachable from the SCP.

9. The method according to any one of claims 1 to 8, further comprising, at the SCP, in response to the discovery response message, forwarding the discovery response message to a consumer NF.

10. The method according to any one of claims 1 to 8, wherein the step of receiving a discovery or service request message includes a step of receiving a service request message indicating a delegated discovery, and the method further comprises a step of forwarding, at the SCP, after receiving the discovery response message, the service request message to one of the producer NF instances having a service profile in the list.

11. 1. A system for optimized network function (NF) discovery and routing, the system comprising: a service communication proxy (SCP) including at least one processor; a NF Repository Function (NRF) including at least one processor; an SCP discovery / service request handler and database manager implemented by the at least one processor of the SCP for receiving a discovery request message or generating a discovery request message based on a received service request message having a 3gpp-Sbi-Discovery header, modifying the discovery request message to identify as unhealthy at least one endpoint and service name combination associated with at least one producer NF capable of providing the service identified in the discovery or service request message, and for the SCP to forward the discovery request message to the NRF; an NRF discovery request handler implemented by the at least one processor of the NRF to receive the discovery request message, create a list of service profiles of producer NF instances that can provide the service identified in the discovery request message, remove from the list at least one service profile of at least one producer NF instance that corresponds to the combination of the at least one endpoint and service name identified in the discovery request message as unhealthy, and forward a discovery response message including the list of service profiles of producer NF instances to the SCP.

12. an unhealthy endpoint database located at the SCP; The SCP Discovery / Service Request Handler and Database Manager: performing a lookup in the unhealthy endpoint database using a service name contained in or derived from the discovery request message or the service request message having the 3gpp-Sbi-Discovery header; locating a record in the unhealthy endpoint database that corresponds to the service identified in or originating from the discovery request message or the service request message having the 3gpp-Sbi-Discovery header; extracting said endpoints from said records; The system of claim 11 , configured to modify the discovery request message by inserting the service name and the endpoint into the discovery request message.

13. 13. The system of claim 12, wherein the SCP discovery / service request handler and database manager is configured to insert the endpoint and the service name into a custom header of the discovery request message.

14. In response to determining that a producer NF instance associated with an endpoint and service name combination is unhealthy, the SCP discovery / service request handler and database manager: determining whether a record corresponding to the combination of the endpoint and service name exists in the unhealthy endpoint database; in response to determining that a record corresponding to the service name and endpoint combination does not exist in the unhealthy endpoint database, adding a record corresponding to the service name and endpoint combination to the unhealthy endpoint database; Inserting a timestamp into said record; The system of claim 12 or claim 13, configured to start a clean-up timer for the recording.

15. 15. The system of claim 14, wherein the SCP discovery / service request handler and database manager is configured to detect expiration of the cleanup timer and, in response, delete the record corresponding to the service name and endpoint combination from the unhealthy endpoint database.

16. The system of any one of claims 11 to 15, wherein the NRF discovery request handler is configured to extract a service name parameter from the discovery request message, identify service profiles of producer NF instances that can provide the service identified by the service name parameter, and include the service profiles of the producer NF instances that can provide the service identified by the service name parameter in the list.

17. 17. The system of claim 16, wherein excluding the at least one service profile from the list that corresponds to the at least one endpoint and service name combination identified as unhealthy comprises removing the at least one service profile from the list.

18. The system of any one of claims 11 to 17, wherein the at least one service profile removed from the list includes at least one service profile of at least one producer NF instance that has connectivity with the NRF but is unreachable from the SCP.

19. The system of any one of claims 11 to 18, wherein the SCP discovery / service request handler and database manager is configured to receive the discovery response message and forward the discovery response message to a consumer NF, or in response to receiving the service request message indicating a delegated discovery, the SCP discovery / service request handler is configured to forward the service request message to one of the producer NF instances having a service profile identified in the list.