Patent Description:
There exist various techniques for handling a request for a service in a network. A service request is generally from a consumer of the service ("service consumer") to a producer of the service ("service producer"). For example, a service request may be from a network function (NF) node of a service consumer to an NF node of a service producer. The NF node of the service consumer and the NF node of the service producer can communicate directly or indirectly. This is referred to as direct communication and indirect communication respectively. In the case of indirect communication, the NF node of the service consumer and the NF node of the service producer may communicate via a service communication proxy (SCP) node.

<FIG>illustrates different existing systems for handling service requests, as set out in 3GPP TS <NUM> v16. <NUM> (available at https://portal. org/ desktopmodules/Specifications/SpecificationDetails. aspx?specificationld=<NUM> as of <NUM> July <NUM>). In more detail, <FIG> illustrates a system that uses direct communication, while <FIG> illustrates a system that uses indirect communication.

In the systems illustrated in <FIG>, a service request is sent directly from the NF node of the service consumer to the NF node of the service producer. A response to the service request is sent directly from the NF node of the service producer to the NF node of the service consumer. Similarly, any subsequent service requests are sent directly from the NF node of the service consumer to the NF node of the service producer. The system illustrated in <FIG> also comprises a network repository function (NRF). Thus, in the system illustrated in <FIG>, the NF node of the consumer can query the NRF to discover suitable NF nodes of the service producer to which to send the service request. In response to such a query, the NF node of the consumer can receive an NF profile for one or more NF nodes of the service producer and, based on the received NF profile(s) can select an NF node of the service producer to which to send the service request. In the system illustrated in <FIG>, the NRF is not used and instead the NF node of the consumer may be configured with the NF profile(s) of the NF node(s) of the service producer.

In the systems illustrated in <FIG>, a service request is sent indirectly from the NF node of the service consumer to the NF node of the service producer via a service communication proxy (SCP) node. A response to the service request is sent indirectly from the NF node of the service producer to the NF node of the service consumer via the SCP. Similarly, any subsequent service requests are sent indirectly from the NF node of the service consumer to the NF node of the service producer via the SCP. The systems illustrated in <FIG> also comprise an NRF.

In the system illustrated in <FIG>, the NF node of the consumer can query the NRF to discover suitable NF nodes of the service producer to which to send the service request. In response to such a query, the NF node of the consumer can receive an NF profile for one or more NF nodes of the service producer and, based on the received NF profile(s) can select an NF node of the service producer to which to send the service request. In this case, the service request sent from the NF node of the service consumer to the SCP comprises the address of the selected NF node of the service producer. The NF node of the service consumer can forward the service request without performing any further discovery or selection. In case the selected NF node of the service producer is not accessible for any reason, it may be up to the NF node of the service consumer to find an alternative. In other cases, the SCP may communicate with the NRF to acquire selection parameters (e.g. location, capacity, etc.) and the SCP may select an NF node of the service producer to which to send the service request.

In the system illustrated in <FIG>, the NF node of the consumer does not carry out the discovery or selection process. Instead, the NF node of the consumer adds any necessary discovery and selection parameters (required to find a suitable NF node of the service producer) to the service request that it sends via the SCP. The SCP uses the request address and the discovery and selection parameters in the service request to route the service request to a suitable NF node of the service producer. The SCP can perform discovery with the NRF.

Typically, an NF consumer node (NFc) should supervise the NF producer node (NFp) health status by sending a Hypertext Transfer Protocol Version <NUM> PING (HTTP/<NUM> PING), as discussed in the 3GPP TS documents cited herein. An NF acting as an HTTP/<NUM> client may support testing whether a connection is still active by sending a PING frame. When and how often a PING frame may be sent can be implementation specific but may be configurable by operator policy. In case of indirect communication, that is, when an SCP node is an intermediary element between the NFc node and the NFp node, then the SCP node may supervise NFp node health by making use of the PING.

For the fifth generation core (5GC), from Release <NUM>, the SCP is included as a network element to allow indirect communication between an NF node of a service consumer and an NF node of a service producer. The indirect communication that is used can be either of the two indirect communications options described earlier with reference to <FIG>.

3GPP TS <NUM> V <NUM>. <NUM>, available at https://portal. org/desktopmodules/ Specifications/SpecificationDetails. aspx?specificationld=<NUM> as of <NUM> July <NUM>, provides a discussion of technical realization of the 5GC Service Based Architecture, protocols supported over the Service Based Interfaces, and the functionalities supported in the Service Based Architecture.

<FIG>is a signalling diagram illustrating an exchange of signals in an existing system, such as the system illustrated in <FIG> but it will be understood the issue described can also apply to the system illustrated in <FIG>. The system illustrated in <FIG> comprises a first SCP node <NUM>, an NF node <NUM> of a service consumer ("NFc"), a first NF node <NUM> of a service producer ("NFp1"), a second NF node <NUM> of a service producer ("NFp2") and a third NF node <NUM> of a service producer ("NFp3"). The first SCP node <NUM> is configured to operate as an SCP between the NFc node <NUM> and the first NF node <NUM>. The first NF node <NUM> can be configured to run a service <NUM>, the second NF node <NUM> can be configured to run a service <NUM> and the third NF node <NUM> can be configured to run a service <NUM>. The first NF node <NUM>, second NF node <NUM> and third NF node <NUM> can be configured to run the same service or a different service. The first NF node <NUM>, second NF node <NUM> and third NF node <NUM> can be part of a set <NUM> of NF nodes of a service producer. The system illustrated in <FIG> also comprises a network repository function <NUM>.

In <FIG>, steps <NUM>-<NUM> relate to a first request for a user equipment (UE)/session context. As illustrated by block <NUM> of <FIG>, the UE/session context may be stored. In more detail, as illustrated by block <NUM> of <FIG>, the NFc node <NUM> determines what discovery and selection parameters to use. The parameters can be associated with a certain service in a received request, which is not illustrated in <FIG>. As illustrated by blocks <NUM> and <NUM> of <FIG>, the NFc node <NUM> stores the UE/session context for the request received. This storage may be cached or externally stored.

As illustrated by arrow <NUM> of <FIG>, the NFc node <NUM> initiates transmission of a discovery request to the NRF <NUM> to obtain NF profile(s) of one or more NF nodes of the service producer for the service that needs to be executed. As illustrated by arrow <NUM> of <FIG>, the NFc node <NUM> receives a response from the NRF <NUM> comprising the NF profile(s) of one or more NF nodes of the service producer. As illustrated by blocks <NUM> and <NUM> of <FIG>, the NFc node <NUM> can store the discovered NF profile(s) in the corresponding UE/session context. As illustrated by block <NUM> of <FIG>, the NFc node <NUM> selects one NF node of the service producer from the one(s) discovered using, for example, functional criteria (e.g. subscription permanent identifier (SUPI), network slice selection assistance information (NSSAI), data network name (DNN), etc.) or non-functional criteria (e.g. load, capacity, etc.). For the purpose of the illustration, it is assumed that the NFc node <NUM> selects the first NF node <NUM>.

One of the selection criteria may be the NFp status that is updated in the NFp profile in the NRF <NUM>. This NFp status is mostly operative, and only three statuses are defined: REGISTERED, UNDISCOVERABLE, SUSPENDED. A SUSPENDED status may indicate that the respective NFp node is not operative, or that the connectivity from the NRF <NUM> to the respective NFp node has failed (the status can be based on heartbeat messages sent from the NRF node <NUM> to the respective NFp node). The supervision performed by the NRF <NUM> is not fully conclusive and also is performed with long time periods, in the order of minutes. Accordingly, a PING message may be used to check the status of the NFp nodes.

As illustrated by arrow <NUM> of <FIG>, the NFc node <NUM> initiates transmission of a service request towards the first SCP node <NUM>. The NFc node <NUM> may know via which SCP to route the service request by configuration or other means. The service request can comprise information identifying the selected first NF node <NUM>, such as a hypertext transfer protocol (HTTP) header that identifies the selected first NF node <NUM> (the target application programming interface (API) root). As illustrated by block <NUM> of <FIG>, the first SCP node <NUM> replaces its own address in the host part of the uniform resource identifier (URI) by the one included in service request (the target API root). As illustrated by block <NUM> of <FIG>, the first SCP node <NUM> may optionally perform any extra functionality, such as monitoring/tracing.

As illustrated by arrow <NUM> of <FIG>, the first SCP node <NUM> initiates transmission of the service request towards the selected first NF node <NUM>. As illustrated by arrow <NUM> of <FIG>, the first SCP node <NUM> receives a response comprising the result. The result may comprise some business logic (BL) information, e.g. as a result of the service execution. In the illustrated example, the result is a failure result (for example, the result is a 5xx error or a lack of a response to the service request from the selected first NF node <NUM>, as opposed to a success result). As the NFc node <NUM> does not have information on the actual status of the NFp nodes (it is unable to supervise the NFp nodes), the NFc node <NUM> is required to select an NFp node without this status information. In this example, the NFc node <NUM> has selected an instance (NFp1, the first NF node <NUM>) that is not currently working (indicated by a flash symbol in <FIG>). The request therefore fails.

As illustrated by arrow <NUM> of <FIG>, the first SCP node <NUM> initiates transmission of the response comprising the result (in this example a 5xx error) towards the NFc node <NUM>. In cases where there is a lack of response to the service request from the selected NFp node, the first SCP node <NUM> may convert this into an appropriate error to transmit to the NFc node <NUM>.

The NFc node <NUM> receives the result from the first SCP node <NUM>. As the result is a failure result, as illustrated by block <NUM> of <FIG>, the NFc node <NUM> determines that the selected NFp (the first NF node <NUM>) is not suitable, and therefore determines that a different NFp is to be selected (also referred to as a re-selection). As illustrated by block <NUM> of <FIG>, the NFc node <NUM> selects a further NFp node; this selection can be based on the same information as used at block <NUM> of <FIG>. In this example, the NFc node <NUM> selects the second NF node <NUM> as the further NFp node (NFp2).

Following the selection of the second NF node <NUM> as the further NFp node, the process continues with steps <NUM>-<NUM> of <FIG>. These steps are as described with reference to steps <NUM>-<NUM> of <FIG>, save that the first SCP node <NUM> sends the request to the second NF node <NUM> rather than the first NF node <NUM>. As illustrated by arrow <NUM> of <FIG>, the result of the request is again a failure; the second NF node <NUM> is also not working. As illustrated by arrow <NUM> of <FIG>, the first SCP node <NUM> initiates transmission of the response comprising the result towards the NFc node <NUM>.

After a number of retries and/or reselections (one retry/reselection in this example, so two NFp nodes in total contacted), the NFc node <NUM> considers the procedure to be a failure (as illustrated by block <NUM> of <FIG>).

The first NF node <NUM> and second NF node <NUM> are not working in this example, however the third NF node <NUM> (NFp3) is available. The NFc node <NUM> is not able to identify that the third NF node <NUM> is available, as it is not responsible for supervising the NFp nodes. The procedure is therefore considered to be a failure despite the fact that an NFp node is available, as the NFc node <NUM> is not aware of the status of the NFp nodes.

A similar situation to the example illustrated in <FIG> may arise in systems using multiple SCP nodes between an NFc node and NFp nodes. In systems using multiple SCP nodes, any of the SCP nodes between the NFc node and the NFp nodes may be responsible for performing selection/reselection of NFp nodes. However, as in the example illustrated in <FIG>, where the SCP node responsible for the selection/reselection of NFp nodes is not the "last hop" in the path, that is, is not in direct communication with the NFp nodes, the SCP node responsible for the selection/reselection is required to perform the selection/reselection without knowledge of the status of the NFp nodes (as in the case of the NFc node illustrated in <FIG>). It is therefore again possible for the procedure to be determined a failure despite an available NFp node being present due to a lack of knowledge of this availability on the part of the SCP node responsible for selection/reselection.

C4-<NUM>, Ericsson, discloses application errors bound to HTTP status code <NUM>. 3GPP TS <NUM> V16. <NUM> discloses a 5GC Service Based Architecture, protocols supported over the Service Based Interfaces, and the functionalities supported in the Service Based Architecture. <CIT> discloses systems and methods for dead NF Service Producer detection in a cellular communications system.

It is an object of the disclosure to obviate or eliminate at least some of the above-described disadvantages associated with existing techniques.

The invention is as defined in and by the appended claims.

Thus, an improved technique for handling service requests in a network is provided.

For a better understanding of the disclosure, and to show how it may be put into effect, reference will now be made, by way of example, to the accompanying drawings, in which:.

Herein, techniques for handling a service request in a network are described. A service request can also be referred to as a request for a service. Generally, a service is software intended to be managed for users. Herein, a service can be any type of service, such as a communication service (e.g. a notification service or a callback service), a context management (e.g. user equipment context management (UECM)) service, a data management (DM) service, or any other type of service. The techniques described herein can be used in respect of any network, such as any communications or telecommunications network, e.g. cellular network. The network may be a fifth generation (<NUM>) network or any other generation network. In some embodiments, the network may be a core network or a radio access network (RAN). The techniques described herein are implemented by a selection node. The selection node can, for example, be a service communication proxy (SCP) node or a network function (NF) node of a service consumer (NFc node). The SCP node can be configured to operate as an SCP between the NFc node and at least one NF node of a service producer (NFp node) in the network.

A NF is a third generation partnership project (3GPP) adopted or 3GPP defined processing function in a network, which has defined functional behaviour and 3GPP defined interfaces. A NF can be implemented either as a network element on a dedicated hardware, as a software instance running on a dedicated hardware, or as a virtualised function instantiated on an appropriate platform, e.g. on a cloud infrastructure. Herein, the term "node" in relation to an "NF node" will be understood to cover each of these scenarios.

<FIG> illustrates a selection node <NUM> in accordance with an embodiment. In the embodiment illustrated in <FIG>, the selection node <NUM> is an NFc node, however as discussed below the selection node may also or alternatively be (for example) an SCP node. The selection node <NUM> is for handling a service request in a network. The selection node <NUM> is configured to determine whether to initiate transmission of a first request to a first network function (NF) node of a service producer via at least a first SCP node in the network.

As illustrated in <FIG>, the selection node <NUM> comprises processing circuitry (or logic) <NUM>. The processing circuitry <NUM> controls the operation of the selection node <NUM> and can implement the method described herein in respect of the selection node <NUM>. The processing circuitry <NUM> can be configured or programmed to control the selection node <NUM> in the manner described herein. The processing circuitry <NUM> can comprise one or more hardware components, such as one or more processors, one or more processing units, one or more multi-core processors and/or one or more modules. In particular implementations, each of the one or more hardware components can be configured to perform, or is for performing, individual or multiple steps of the method described herein in respect of the selection node <NUM>. In some embodiments, the processing circuitry <NUM> can be configured to run software to perform the method described herein in respect of the selection node <NUM>. The software may be containerised according to some embodiments. Thus, in some embodiments, the processing circuitry <NUM> may be configured to run a container to perform the method described herein in respect of the selection node <NUM>.

Briefly, the processing circuitry <NUM> of the selection node <NUM> is configured to initiate transmission of a first message towards at least a first NF node via a first SCP node, the first message being a status request. The processing circuitry <NUM> is further configured to receive a second message, from the first SCP node, indicating the status of the first NF node. The processing circuitry <NUM> is further configured to determine whether or not to initiate transmission of a first request for a first service to be provided, via the first SCP node) to the first NF node, the determination of whether or not to initiate transmission of the first request to the first NF node being made based on the status of the first NF node indicated by the second message. The first NF node referred to herein can be a first NF node of a service producer.

As illustrated in <FIG>, in some embodiments, the selection node <NUM> may optionally comprise a memory <NUM>. The memory <NUM> of the selection node <NUM> can comprise a volatile memory or a non-volatile memory. In some embodiments, the memory <NUM> of the selection node <NUM> may comprise a non-transitory media. Examples of the memory <NUM> of the selection node <NUM> include, but are not limited to, a random access memory (RAM), a read only memory (ROM), a mass storage media such as a hard disk, a removable storage media such as a compact disk (CD) or a digital video disk (DVD), and/or any other memory.

The processing circuitry <NUM> of the selection node <NUM> can be connected to the memory <NUM> of the selection node <NUM>. In some embodiments, the memory <NUM> of the selection node <NUM> may be for storing program code or instructions which, when executed by the processing circuitry <NUM> of the selection node <NUM>, cause the selection node <NUM> to operate in the manner described herein in respect of the selection node <NUM>. For example, in some embodiments, the memory <NUM> of the selection node <NUM> may be configured to store program code or instructions that can be executed by the processing circuitry <NUM> of the selection node <NUM> to cause the selection node <NUM> to operate in accordance with the method described herein in respect of the selection node <NUM>. Alternatively or in addition, the memory <NUM> of the selection node <NUM> can be configured to store any information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein. The processing circuitry <NUM> of the selection node <NUM> may be configured to control the memory <NUM> of the selection node <NUM> to store information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein.

In some embodiments, as illustrated in <FIG>, the selection node <NUM> may optionally comprise a communications interface <NUM>. The communications interface <NUM> of the selection node <NUM> can be connected to the processing circuitry <NUM> of the selection node <NUM> and/or the memory <NUM> of the selection node <NUM>. The communications interface <NUM> of the selection node <NUM> may be operable to allow the processing circuitry <NUM> of the selection node <NUM> to communicate with the memory <NUM> of the selection node <NUM> and/or vice versa. Similarly, the communications interface <NUM> of the selection node <NUM> may be operable to allow the processing circuitry <NUM> of the selection node <NUM> to communicate with the first NF node and/or any other node. The communications interface <NUM> of the selection node <NUM> can be configured to transmit and/or receive information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein. In some embodiments, the processing circuitry <NUM> of the selection node <NUM> may be configured to control the communications interface <NUM> of the selection node <NUM> to transmit and/or receive information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein.

Although the selection node <NUM> is illustrated in <FIG> as comprising a single memory <NUM>, it will be appreciated that the selection node <NUM> may comprise at least one memory (i.e. a single memory or a plurality of memories) <NUM> that operate in the manner described herein. Similarly, although the selection node <NUM> is illustrated in <FIG> as comprising a single communications interface <NUM>, it will be appreciated that the selection node <NUM> may comprise at least one communications interface (i.e. a single communications interface or a plurality of communications interface) <NUM> that operate in the manner described herein. It will also be appreciated that <FIG> only shows the components required to illustrate an embodiment of the selection node <NUM> and, in practical implementations, the selection node <NUM> may comprise additional or alternative components to those shown.

<FIG> is a flowchart illustrating a method performed by a selection node <NUM> in accordance with an embodiment. The selection node <NUM> may be an NFc node, or may be an SCP node. The method is for handling a service request in the network. The selection node <NUM> described earlier with referenced to <FIG> can be configured to operate in accordance with the method of <FIG>. The method can be performed by or under the control of the processing circuitry <NUM> of the selection node <NUM>.

The method of <FIG> is performed when the selection node <NUM> is selecting an NFp node to provide (e.g. execute or run) a first service, that is, is selecting an NFp to which a service request will be sent. Where the selection node <NUM> is an NFc node, the request may be a request for a service for that NFc node. Where the selection node <NUM> is an SCP node, the service request may be for a service for (e.g. requested by) an NFc node, e.g. that is in direct or indirect communication with the SCP node. As illustrated at block <NUM> of <FIG>, transmission of a first message (e.g. that is a service request) is initiated towards (at least) the first NF node. As previously mentioned, the first NF node referred to herein can be a first NF node of a service producer. The first message is transmitted via a first SCP node (where the selection node <NUM> is a SCP node, the first SCP node is a different node to the selection node, and in particular the selection node is not in direct communication with the NFp nodes).

Herein, the term "initiate" can mean, for example, cause or establish. Thus, the processing circuitry <NUM> of the selection node <NUM> can be configured to itself transmit the first message (e.g. via a communications interface <NUM> of the selection node <NUM>) or can be configured to cause another node to transmit the first message.

In some embodiments, the first message may be a hypertext transfer protocol (HTTP) operation, such as a HTTP HEAD operation or a HTTP OPTIONS operation. The HTTP OPTIONS operation and HTTP HEAD operation are well-recognised operations in the art. However, for completeness, some examples of these operations are provided. The HTTP HEAD operation can, for example, be a request for one or more HTTP headers from the first NF node. In response to such a request, the selection node <NUM> can receive the one or more HTTP headers from the first NF node without a message body. The HTTP OPTIONS operation can, for example, be a request for information about communication options supported by the first NF node, e.g. information indicative of the parameters and requirements for specific resources or server capabilities. In response to such a request, the selection node <NUM> can receive the information about the communication options supported by the first NF node. The HTTP operation may include a header comprising an address of the first NF node, which may be an application programming interface (API) root of a uniform resource identifier (URI) used to reach of the first NF node (i.e. the sbi-target-apiroot or 3gpp-sbi-target-apiroot). This header can be referred to in the art as a 3gpp-Sbi-Target-apiRoot header and it may be said to contain the apiRoot of the first NF node.

Alternatively, the first message may be a specific service operation (which may also include the 3gpp-Sbi-Target-apiRoot header). Where a plurality of NFp nodes are present, the first message may be transmitted via the first SCP node to more than one of the plurality of NFp nodes, for example the first message may be transmitted to all of the plurality of NFp nodes (e.g. simultaneously or consecutively) that may be selected by the selection node <NUM> to provide (e.g. execute or run) a first service. As an example of this, the selection node <NUM> may initiate transmission of the first message towards a second NF node and/or third NF node via the first SCP node, and receive, from the first SCP node, a third message indicating the status of the second NF node and/or a fourth message indicating the status of the third NF node. The second NF node referred to herein can be a second NF node of a service producer. The third NF node referred to herein can be a third NF node of a service producer.

When the first SCP node receives the first message, the first SCP node modifies the destination of the message (for example, by modifying a 3gpp-Sbi-Target-apiRoot of the message) and forwards the message to the destination (for example, the first NF node).

As illustrated at block <NUM>, the selection node <NUM> then receives (from the first SCP node) a second message that indicates the status of the first NF node (and potentially also a third message, fourth message, and so on). The second message may be generated by the first NF node, or may be generated by the first SCP node (for example, when the first SCP node sends the first message to the first NF node and receives no response). Where the first SCP node receives a response from the first NF node, it may simply modify the destination of the response (to the selection node <NUM>) and forward the response on as the second message. The second message indicates the status of the first NF node, for example whether the first NF node is available or not available. Where the first message has been transmitted to a plurality of NFp nodes as discussed above, responses (second message, third message, etc.) may be received in respect of each of the NFp nodes for which a first message is sent. The selection node <NUM> then determines whether or not to initiate transmission of the first request for the provision of a first service to the first NF node (via the first SCP node), as illustrated in block <NUM>. The determination is based on at least the status of the first NF node indicated by the second message. Where applicable, the determination may also be based on the status of the second NF node <NUM> and/or the status of the third NF node, as indicted by third and fourth messages respectively. Where more than three NFp nodes are sent first messages, the determination may also be based on responses from the other NFp nodes. The NFp nodes may all be from an NFp set, and may provide (e.g. execute or run) respective services. As a practical example, if the second message indicates that the first NF node is not available and the third message indicates that the second NF node is available, the selection node <NUM> may determine not to send the first request to the first NF node and to send the first request to the second NF node.

<FIG> illustrates a first NF node <NUM> in accordance with an embodiment. The first NF node <NUM> is for handling a service request in a network. The first NF node <NUM> is configured to operate as a second NF node of a service producer in the network. In some embodiments, the first NF node <NUM> can be, for example, be a physical machine (e.g. a server) or a virtual machine (VM). The first NF node <NUM> can be, for example, a user equipment (UE).

As illustrated in <FIG>, the first NF node <NUM> comprises processing circuitry (or logic) <NUM>. The processing circuitry <NUM> controls the operation of the first NF node <NUM> and can implement the method described herein in respect of the first NF node <NUM>. The processing circuitry <NUM> can be configured or programmed to control the first NF node <NUM> in the manner described herein. The processing circuitry <NUM> can comprise one or more hardware components, such as one or more processors, one or more processing units, one or more multi-core processors and/or one or more modules. In particular implementations, each of the one or more hardware components can be configured to perform, or is for performing, individual or multiple steps of the method described herein in respect of the first NF node <NUM>. In some embodiments, the processing circuitry <NUM> can be configured to run software to perform the method described herein in respect of the first NF node <NUM>. The software may be containerised according to some embodiments. Thus, in some embodiments, the processing circuitry <NUM> may be configured to run a container to perform the method described herein in respect of the first NF node <NUM>.

Briefly, the processing circuitry <NUM> of the first NF node <NUM> is configured to, in response to receiving the first message from the first SCP node <NUM>, check a status of the first NF node. The processing circuitry <NUM> is further configured to initiate transmission of a response indicating the status of the first NF node <NUM> to the first SCP node <NUM>. As discussed above, the response may be forwarded to the selection node <NUM> by the first SCP node <NUM> as the second message. Where plural NFp nodes are present, each NFp node which receives the first message may be configured to check its status and initiate transmission of a response.

As illustrated in <FIG>, in some embodiments, the first NF node <NUM> may optionally comprise a memory <NUM>. The memory <NUM> of the first NF node <NUM> can comprise a volatile memory or a non-volatile memory. In some embodiments, the memory <NUM> of the first NF node <NUM> may comprise a non-transitory media. Examples of the memory <NUM> of the first NF node <NUM> include, but are not limited to, a random access memory (RAM), a read only memory (ROM), a mass storage media such as a hard disk, a removable storage media such as a compact disk (CD) or a digital video disk (DVD), and/or any other memory.

The processing circuitry <NUM> of the first NF node <NUM> can be connected to the memory <NUM> of the first NF node <NUM>. In some embodiments, the memory <NUM> of the first NF node <NUM> may be for storing program code or instructions which, when executed by the processing circuitry <NUM> of the first NF node <NUM>, cause the first NF node <NUM> to operate in the manner described herein in respect of the first NF node <NUM>. For example, in some embodiments, the memory <NUM> of the first NF node <NUM> may be configured to store program code or instructions that can be executed by the processing circuitry <NUM> of the first NF node <NUM> to cause the first NF node <NUM> to operate in accordance with the method described herein in respect of the first NF node <NUM>. Alternatively or in addition, the memory <NUM> of the first NF node <NUM> can be configured to store any information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein. The processing circuitry <NUM> of the first NF node <NUM> may be configured to control the memory <NUM> of the first NF node <NUM> to store information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein.

In some embodiments, as illustrated in <FIG>, the first NF node <NUM> may optionally comprise a communications interface <NUM>. The communications interface <NUM> of the first NF node <NUM> can be connected to the processing circuitry <NUM> of the first NF node <NUM> and/or the memory <NUM> of first NF node <NUM>. The communications interface <NUM> of the first NF node <NUM> may be operable to allow the processing circuitry <NUM> of the first NF node <NUM> to communicate with the memory <NUM> of the first NF node <NUM> and/or vice versa. Similarly, the communications interface <NUM> of the first NF node <NUM> may be operable to allow the processing circuitry <NUM> of the first NF node <NUM> to communicate with the first SCP node <NUM> and/or any other node. The communications interface <NUM> of the first NF node <NUM> can be configured to transmit and/or receive information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein. In some embodiments, the processing circuitry <NUM> of the first NF node <NUM> may be configured to control the communications interface <NUM> of the first NF node <NUM> to transmit and/or receive information, data, messages, requests, responses, indications, notifications, signals, or similar, that are described herein.

Although the first NF node <NUM> is illustrated in <FIG> as comprising a single memory <NUM>, it will be appreciated that the first NF node <NUM> may comprise at least one memory (i.e. a single memory or a plurality of memories) <NUM> that operate in the manner described herein. Similarly, although the first NF node <NUM> is illustrated in <FIG> as comprising a single communications interface <NUM>, it will be appreciated that the first NF node <NUM> may comprise at least one communications interface (i.e. a single communications interface or a plurality of communications interface) <NUM> that operate in the manner described herein. It will also be appreciated that <FIG> only shows the components required to illustrate an embodiment of the first NF node <NUM> and, in practical implementations, the first NF node <NUM> may comprise additional or alternative components to those shown.

<FIG> is a flowchart illustrating a method performed by a first NF node <NUM> in accordance with an embodiment. The method of <FIG> is for handling a service request in the network. The first NF node <NUM> described earlier with reference to <FIG> is configured to operate in accordance with the method of <FIG>. The method can be performed by or under the control of the processing circuitry <NUM> of the first NF node <NUM>. A first SCP node <NUM> is configured to operate as an SCP between the first NF node <NUM> and selection node <NUM> in the network.

The method of <FIG> is performed in response to receiving the first message. As discussed above, the status of the first NF node <NUM> is checked in response to receiving the first message (see block <NUM> of <FIG>). Then, transmission of a response is initiated towards the first SCP node <NUM>, where the response indicates the status of the first NF node <NUM> (see block <NUM> of <FIG>). As explained above, the first NF node <NUM> may not receive the first message (for example, because it is inactive), in which case the response is not sent.

There is also provided a system. The system can comprise at least one selection node <NUM> as described herein (which may be an NFc node or SCP node), at least one first SCP node <NUM> as described herein and/or at least one first NF node <NUM> as described herein. The system may also comprise any one or more of the other nodes mentioned herein.

<FIG>is a signalling diagram illustrating an exchange of signals in a system according to an embodiment. The system illustrated in <FIG> comprises a selection node <NUM> (in this instance an NFc node, although the method is equally applicable to an SCP node as discussed above), a first SCP node <NUM> and a first NF node <NUM>. The first SCP node <NUM> can be configured to operate as an SCP between the selection node <NUM> and the first NF node <NUM>.

Also shown in <FIG> are a second NF node <NUM>, third NF node <NUM> and an NRF node <NUM>. The first SCP node <NUM> can be configured to operate as an SCP between the selection node <NUM> and the second NF node <NUM>. The first SCP node <NUM> can be configured to operate as an SCP between the selection node <NUM> and the third NF node <NUM>. The first, second and third NF nodes form part of a set <NUM> of NFps. The first, second and third NF nodes all provide (e.g. are configured to execute or run) a service A <NUM>, <NUM>, <NUM>. In some embodiments, an entity may comprise the first SCP node <NUM> and the NRF node <NUM>. That is, in some embodiments, the first SCP node <NUM> can be merged with the NRF node <NUM> in a combined entity.

In some embodiments, the first SCP node <NUM> and the selection node <NUM> may be deployed in independent deployment units and/or the first SCP node <NUM> and the first NF node <NUM> may be deployed in independent deployment units. Thus, an SCP node based on independent deployment units is possible, as described in 3GPP TS <NUM> V16. In other embodiments, the first SCP node <NUM> may be deployed as a distributed network element. For example, in some embodiments, part (e.g. a service agent) of the first SCP node <NUM> may be deployed in the same deployment unit as a further node, such as the first NF node <NUM>. Thus, an SCP node based on service mesh is possible, as described in 3GPP TS <NUM> V16.

In some embodiments, at least one second SCP node may be configured to operate as an SCP between the selection node <NUM> and the first SCP node <NUM> and/or at least one third SCP node may be configured to operate as an SCP between the first SCP node <NUM> and the first NF node <NUM>. Thus, a multipath of SCP nodes is possible. In some of these embodiments, the first SCP node <NUM> and one or both of the at least one second SCP node and the at least one third SCP node may be deployed in independent deployment units. In some embodiments, the at least one second SCP node and/or the at least one third SCP node may be deployed as distributed network elements.

Steps <NUM>-<NUM> and <NUM>-<NUM> of <FIG> are as described earlier with reference to <FIG>. As illustrated by arrow <NUM> of <FIG>, e.g. following the storage of the discovered NFps at step <NUM> of <FIG>, the first message is sent to the first SCP node <NUM>. More specifically, the selection node <NUM> initiates transmission of the first message towards the first SCP node <NUM>. The first SCP node <NUM> thus receives the first message. The first SCP node <NUM> modifies the destination of the first message (as illustrated by block <NUM> of <FIG>). The first SCP node <NUM> forwards the message to the first NF node <NUM> (as illustrated by arrow <NUM> of <FIG>). In the example shown in <FIG>, the first NF node <NUM> then responds to the first message (as illustrated by arrow <NUM> of <FIG>, as discussed above the first NF node <NUM> may not respond in some situations). The first SCP node <NUM> modifies the destination of the response. The first SCP node <NUM> forwards the response to the selection node <NUM> as the second message (as illustrated by arrow <NUM> of <FIG>).

The selection node <NUM> then determines whether or not to initiate transmission of a first request, for the provision of a first service, to the first NF node <NUM>. The determination of whether or not to initiate transmission of the first request to the first NF node <NUM> is made based on the status of the first NF node <NUM> indicated by the second message. Essentially, the selection node <NUM> selects an NFp node to which the first request is to be sent, based on the responses received by the selection node <NUM> to the status requests sent to the various NFps (as illustrated by block <NUM> of <FIG>). For the purpose of the illustration, the selection node <NUM> selects the third NF node <NUM> as this is the NFp node that is available.

The sending of the first request (see steps <NUM>-<NUM> of <FIG>) then proceeds similarly to <FIG>. However, as the selection node <NUM> has selected the available NFp node (the third NF node <NUM>) based on the responses to the status requests, a successful response is received at arrow <NUM> of <FIG> by the first SCP node <NUM>. This successful response is sent to the selection node <NUM> at arrow <NUM> of <FIG>. More specifically, the first SCP node <NUM> initiates transmission of the successful response towards the selection node <NUM>. The selection node <NUM> thus receives the successful response. The selection node <NUM> in this instance is an NFc node, so the selection node <NUM> stores the information in the UE/session context at block <NUM> of <FIG> and continues with the procedure at block <NUM> of <FIG>. If the selection node <NUM> were a further SCP node, then this further SCP node can pass the relevant information to the NFc node that requests a service be provided to continue the procedure.

Using the above method, for indirect communication with mode C (target), the NFc which is the selection node is able to directly supervise the NFp status, thereby allowing the NFc to select available NFp(s) and reducing instances of the procedure failing. For indirect communication with mode C (Set) or D (that is, with delegated discovery and selection), with a multi-SCP path where the selection node is not the last SCP in the path, then the SCP that is responsible for selection and re-selection (the selection node) is able to directly supervise the NFp status, thereby allowing the selection SCP node to select available NFp(s) and reducing instances of the procedure failing.

<FIG> is a block diagram illustrating a selection node <NUM> in accordance with an embodiment. The selection node <NUM> can handle a service request in a network. The selection node <NUM> can be an NFc node or an SCP node, as discussed above. The selection node <NUM> comprises a transmission module <NUM> configured to initiate transmission of a first message (that is a status request) towards at least a first NF node <NUM> via a first SCP node <NUM>. The selection node <NUM> further comprises a receiving module <NUM> configured to receive from the first SCP node <NUM>, a second message indicating the status of the first NF node <NUM>. The selection node <NUM> also comprises a determining module <NUM> configured to determine whether or not to initiate transmission of a first request, for the provision of a first service, via the first SCP node <NUM> to the first NF node <NUM>, the determination of whether or not to initiate transmission of the first request to the first NF node <NUM> being made based on the status of the first NF node <NUM> indicated by the second message.

<FIG> is a block diagram illustrating a first NF node <NUM> of a service producer in accordance with an embodiment. The first NF node <NUM> can handle a service request in a network. The first NF node <NUM> comprises a receiving module <NUM> configured to receive the first message (which is a status check message) from the first SCP node <NUM>. The first NF node <NUM> further comprises a status check module <NUM> configured, in response to receiving the first message from the first SCP node <NUM>, to check a status of the first NF node <NUM>. The first NF node also comprises a transmission module <NUM> configured to initiate transmission of a response indicating the status of the first NF node <NUM> to the first SCP node <NUM>.

There is also provided a computer program comprising instructions which, when executed by processing circuitry (such as the processing circuitry <NUM> of the selection node <NUM> described earlier and/or the processing circuitry <NUM> of the first NF node <NUM> described earlier), cause the processing circuitry to perform at least part of a method described herein. There is provided a computer program product, embodied on a non-transitory machine-readable medium, comprising instructions which are executable by processing circuitry (such as the processing circuitry <NUM> of the selection node <NUM> described earlier and/or the processing circuitry <NUM> of the first NF node <NUM> described earlier) to cause the processing circuitry to perform at least part of the method described herein. There is provided a computer program product comprising a carrier containing instructions for causing processing circuitry (such as the processing circuitry <NUM> of the selection node <NUM> described earlier and/or the processing circuitry <NUM> of the first NF node <NUM> described earlier) to perform at least part of the method described herein. In some embodiments, the carrier can be any one of an electronic signal, an optical signal, an electromagnetic signal, an electrical signal, a radio signal, a microwave signal, or a computer-readable storage medium.

In some embodiments, the selection node functionality and/or the first NF node functionality described herein can be performed by hardware. Thus, in some embodiments, any one or more of the selection node <NUM> and the first NF node <NUM> described herein can be a hardware node. However, it will also be understood that optionally at least part or all of the selection node functionality and/or the first NF node functionality described herein can be virtualized. For example, the functions performed by any one or more of the selection node <NUM> and the first NF node <NUM> described herein can be implemented in software running on generic hardware that is configured to orchestrate the node functionality. Thus, in some embodiments, any one or more of the selection node <NUM> and the first NF node <NUM> described herein can be a virtual node. In some embodiments, at least part or all of the selection node functionality and/or the first NF node functionality described herein may be performed in a network enabled cloud. The selection node functionality and/or the first NF node functionality described herein may all be at the same location or at least some of the node functionality may be distributed.

It will be understood that at least some or all of the method steps described herein can be automated in some embodiments. That is, in some embodiments, at least some or all of the method steps described herein can be performed automatically. The method described herein can be a computer-implemented method.

Thus, in the manner described herein, there is advantageously provided an improved technique for handling service requests in a network. The selection node <NUM> can be provided with status information to allow a selection/re-selection of an available NFp node to provide a service for a consumer node (which may be the selecting node where the selecting node is a consumer node, or may be another node where the selecting node is a SCP node), thereby reducing instances of procedure failures.

Claim 1:
A method for handling a service request in a third generation partnership project, 3GPP, network, wherein the method is performed by a selection node (<NUM>), the method comprising:
initiating transmission (<NUM>) of a first message towards at least a first Network Function, NF, node (<NUM>) via a first Service Communication Proxy, SCP, node (<NUM>), wherein the first message is a status request;
receiving (<NUM>), from the first SCP node (<NUM>), a second message indicating the status of the first NF node (<NUM>); and
determining (<NUM>) whether or not to initiate transmission of a first request, for the provision of a first service, via the first SCP node (<NUM>) to the first NF node (<NUM>), the determination of whether or not to initiate transmission of the first request to the first NF node (<NUM>) being made based on the status of the first NF node (<NUM>) indicated by the second message.