Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHODS AND APPARATUSES FOR NETWORK FUNCTION DISCOVERY WITH PREFERRED API VERSION
Document Type and Number:
WIPO Patent Application WO/2021/083926
Kind Code:
A1
Abstract:
A method of operating a network function repository entity, NRE (502), includes receiving (501, 602) a service discovery request from a network entity (504), wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. In response to the service discovery request, the NRE performs (604) a search of a network function repository (330) for service producers based on the set of query parameters to obtain a search result. The NRE generates (606) a service discovery response based on the search result and transmits (503, 608) the service discovery response toward the network entity.

Inventors:
YANG YONG (SE)
LU YUNJIE (CN)
DE GREGORIO RODRIGUEZ JESUS ANGEL (ES)
Application Number:
PCT/EP2020/080227
Publication Date:
May 06, 2021
Filing Date:
October 28, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
H04W48/18; H04L29/08
Domestic Patent References:
WO2018219343A12018-12-06
Other References:
ERICSSON: "Preferred API Version", vol. CT WG4, no. Reno, US; 20191111 - 20191115, 20 November 2019 (2019-11-20), XP051833406, Retrieved from the Internet [retrieved on 20191120]
"3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; 5G System; Network Function Repository Services; Stage 3 (Release 16)", vol. CT WG4, no. V16.1.1, 23 October 2019 (2019-10-23), pages 1 - 150, XP051840452, Retrieved from the Internet [retrieved on 20191023]
Attorney, Agent or Firm:
ERICSSON (SE)
Download PDF:
Claims:
CLAIMS

1. A method of operating a network function repository entity, NRE (502), comprising: receiving (501, 602) a service discovery request from a network entity (504), wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; in response to the service discovery request, performing (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result; generating (606) a service discovery response based on the search result; and transmitting (503, 608) the service discovery response toward the network entity.

2. The method of Claim 1 , wherein the NRE comprises an instance of a network function repository function, NRF or comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

3. The method of Claim 1 , wherein the set of query parameters comprises an array of preferred API versions.

4. The method of Claim 3, wherein the array of preferred API versions is arranged in order of priority, and wherein performing the search comprises performing the search based on the order of priority of the preferred API versions.

5. The method of Claim 4, wherein the service discovery response comprises a list of matching service producers, wherein the list of matching service producers is ordered based on the order of priority of the preferred API versions.

6. The method of any previous Claim, wherein the preferred API version is specified using pattern matching methods, for example, using regular expressions.

7. The method of any previous Claim, further comprising: determining if the search identifies a service producer capable of providing a service having the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the preferred API version, returning an identifier of the service producer capable of providing a service having the preferred API version.

8. The method of Claim 7, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having the preferred API version, determining if the search identifies a service producer capable of providing a service having a same major API version as the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the same major API version as the preferred API version, returning an identifier of the service producer capable of providing a service having the same major API version as the preferred API version.

9. The method of Claim 8, further comprising: in response to determining that the search identifies multiple service producers capable of providing a service having a same major API version as the preferred API version, further determining if the search identifies a service producer capable of providing a service having a higher MINOR and/or PATCH API version than the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version, preferably returning an identifier of the service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version.

10. The method of Claim 8, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an identifier of the service producer capable of providing a service having another API version.

11. The method of Claim 8, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an indication that no Service producer with compatible version can be identified.

12. The method of any previous Claim, wherein the service discovery request identifies a plurality of services and identifies an associated preferred API version for each of the plurality of services.

13. The method of Claim 12, wherein the service discovery response identifies matching service producers for each of the plurality of services identified in the service discovery request.

14. The method of any previous Claim, wherein the network entity comprises an instance of a core network function of a wireless communication core network.

15. The method of any previous Claim, wherein the network entity comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

16. The method of any previous Claim, wherein the preferred API version comprises vendor- specific information specified in an optional field.

17. The method of any previous Claim, wherein the preferred API version comprises three or more fields.

18. The method of Claim 17, wherein a first field of the preferred API version corresponds to a major revision level of the API version (MAJOR), a second field of the preferred API version corresponds to a minor revision level of the preferred API version (MINOR), a third field of the preferred API version corresponds to a patch level of the preferred API version (PATCH).

19. The method of Claim 18, wherein the first, second and third fields contain unsigned integer numbers.

20. A computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any previous Claim.

21. A carrier containing the computer program of claim 20, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

22. An apparatus (700), the apparatus being adapted to: employ a receiver (747) to receive (602) a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; employ a processor (755), to, in response to the service discovery request, perform (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result and generate (606) a service discovery response based on the search result; and employ a transmitter (745) to transmit (608) the service discovery response toward the network entity.

23. A network function repository entity, NRE (700), comprising: a receiving unit (812) configured to employ a receiver to receive (602) a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; a processing circuit (755) configured, in response to the service discovery request, to perform (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result and to generate (606) a service discovery response based on the search result; and a transmitting unit (814) configured to employ a transmitter to transmit (608) the service discovery response toward the network entity.

24. A network function repository entity, NRE (700), comprising: a processing circuit (755); a network interface (748) coupled to the processing circuit; and a memory (742) coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the NRE to perform operations according to any of Claims 1 to 19.

25. A method of operating a network entity, comprising: transmitting (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; receiving (406) a service discovery response, the service discovery response identifying service producers based on the preferred API version identified in the service discovery request; selecting (408) a service producer from the service discovery response; and transmitting (410) a service request toward the selected service producer.

26. The method of Claim 25, wherein the NRE comprises an instance of a network function repository function, NRF, or comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

27. The method of Claim 25, wherein the set of query parameters comprises an array of preferred API versions.

28. The method of Claim 27, wherein the array of preferred API versions is arranged in order of priority.

29. The method of Claim 28, wherein the service discovery response comprises a list of matching service producers, wherein the list of matching service producers is ordered based on the order of priority of the preferred API versions.

30. The method of any of Claims 25 to 29, wherein the preferred API version is specified using using pattern matching methods, for example, using regular expressions.

31. The method of any of Claims 25to 30, wherein the service discovery request identifies a plurality of services and identifies an associated preferred API version for each of the plurality of services.

32. The method of Claim 31 , wherein the service discovery response identifies matching service producers for each of the plurality of services identified in the service discovery request.

33. The method of any of Claims 25to 32, wherein the network entity comprises an instance of a core network function of a wireless communication core network.

34. The method of any of Claims 25to 33, wherein transmitting the service discovery request toward the NRE comprises transmitting the service discovery request toward a service control point, SCP, and wherein receiving the service discovery response comprises receiving the service discovery response from the SCP.

35. The method of any of Claims 25 to 34, wherein the preferred API version comprises vendor-specific information in an optional field.

36. The method of any of Claims 25 to 35, wherein the preferred API version comprises three or more fields.

37. The method of Claim 36, wherein a first field of the preferred API version corresponds to a major revision level of the API version (MAJOR), a second field of the preferred API version corresponds to a minor revision level of the preferred API version (MINOR), a third field of the preferred API version corresponds to a patch level of the preferred API version (PATCH).

38. The method of Claim 37, wherein the first, second and third fields contain unsigned integer numbers.

39. A computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any of Claims 25 to 38.

40. A carrier containing the computer program of claim 39, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

41. An apparatus (700), the apparatus being adapted to: employ a transmitter (745) to transmit (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; employ a receiver (747) to receive (406) a service discovery response to the network entity, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request; employ a processor (755) to select (408) a service producer from the service discovery response; and employ the transmitter (745) to transmit (410) a service request toward the selected service producer.

42. A network entity, comprising: a transmitting unit (814) that transmits (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; a receiving unit (812) that receives (406) a service discovery response, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request; and a processor (755) that selects (408) a service producer from the service discovery response; wherein the transmitting unit transmits (410) a service request toward the selected service producer.

43. A network entity (700), comprising: a processing circuit (755); a network interface (748) coupled to the processing circuit; and a memory (742) coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the network entity to perform operations according to any of Claims 25 to 38.

Description:
METHODS AND APPARATUSES FOR NETWORK FUNCTION DISCOVERY WITH

PREFERRED API VERSION

TECHNICAL FIELD

[0001] The present disclosure relates to network function (NF) discovery.

BACKGROUND

Figure 1

[0002] FIG. 1 illustrates a reference point representation of an exemplifying wireless communication system 100 represented as a 5G network architecture comprising an Access Network (AN) (e.g., a Radio AN (R(AN)) and a Core network (CN) comprising network entities in the form of Network Functions (NFs). Typically, the AN comprises base stations, e.g. such as evolved Node Bs (eNBs) or 5G base stations (gNBs) or similar. As shown in FIG. 1, User Equipments (UEs) connect to an AN as well as an Access and Mobility Management Function (AMF). As further shown in FIG. 1, the 5G CN NFs include: a Network Slice Selection Function (NSSF), an Authentication Server Function (AUSF), a Unified Data Management (UDM), an Access and Mobility Management Function (AMF), a Session Management Function (SMF), a Policy Control Function (PCF), an Application Function (AF).

[0003] The reference point representations of the 5G network architecture are used to develop detailed call flows in the normative standardization. The N1 reference point is defined to carry signaling between UE and AMF. The N2 and N3 reference points are defined to carry signaling between R(AN) and AMF and between R(AN) and UPF respectively. The N11 reference point is defined to carry signaling between AMF and SMF. The N4 reference point is defined to carry signaling between SMF and UPF. The N9 reference point is defined to carry signaling between different UPFs and the N14 reference point is defined to carry signaling between different AMFs. The reference points N15 and N7 are defined to carry signaling between PCF and AMF and SMF respectively. The N12 reference point is defined to carry signaling between AMF and AUSF. The N8 and N10 reference points are defined to carry signaling between UDM and AMF and SMF respectively. The N13 reference point is defined to carry signaling between AUSF and UDM. The N22 reference point is defined to carry signaling between NSSF and AMF. [0004] The 5G core network aims at separating user plane and control plane. The user plane carries user traffic (e.g. user data) while the control plane carries signaling in the network. In FIG. 1, the UPF is in the user plane while the other NFs, i.e., AMF, SMF, PCF, AF, AUSF, and UDM, are in the control plane. Separating the user plane and the control plane allows the resources in each plane to be scaled independently. It also allows UPFs to be deployed separately from control plane functions in a distributed fashion. For example, an UPF may be deployed very close to UEs to shorten the Round Trip Time (RTT) between UEs and data network for some applications requiring low latency.

[0005] The NFs in the 5G core network architecture are independent modularized functions, which allows independent evolution and scaling. Modularized function design enables the 5G core network to support various services in a flexible manner.

[0006] Each NF in the core network interacts with another NF directly, but it is possible to use intermediate functions to route messages from one NF to another NF.

Figure 2

[0007] FIG. 2 illustrates an exemplifying wireless communication system 200 represented as a 5G network architecture that uses service-based interfaces (SBIs) between the NFs in the control plane, instead of the point-to-point reference points/interfaces used in the 5G network architecture of FIG. 1. The NFs described above with reference to FIG. 1 correspond to the NFs shown in FIG. 2. The service(s) etc. that an NF provides to other authorized NFs can be exposed to the authorized NFs through an SBI. In FIG. 2 the SBIs are indicated by the letter “N” followed by the name of the NF, e.g. Namf for the SBI of the AMF and Nsmf for the SBI of the SMF etc. The Network Exposure Function (NEF) and the NF Repository Function (NRF) in FIG. 2 are not shown in FIG. 1 discussed above. Flowever, it should be clarified that all NFs depicted in FIG. 1 can interact with the NEF and the NRF of FIG. 2 as required, though not explicitly indicated in FIG. 1. A main difference between the point-to-point architecture in FIG. 1 and the service- based architecture in FIG. 2 is that the service-based architecture doesn’t us predefined point to point interfaces between the NFs. Instead, an NF in the service-based architecture queries the NRF to discover and communicate with other NFs via the SBIs.

[0008] Some properties of the NFs shown in FIG.1 and FIG. 2 may be described in the following manner. The AMF provides UE-based authentication, authorization and mobility management, etc. A UE even if using multiple access technologies is basically connected to a single AMF, since the AMF is independent of the access technologies. The SMF is responsible for session management and allocates IP addresses to UEs and selects and controls the UPF for data transfer with respect to the UEs. If a UE has multiple sessions, different SMFs may be allocated to each session to manage them individually and possibly provide different functionalities per session. The AF provides information on the packet flow to PCF responsible for policy control in order to support Quality of Service (QoS). Based on the information, PCF determines policies about mobility and session management to make AMF and SMF operate properly. The AUSF supports authentication function for UEs and thus stores data for authentication of UEs or similar while UDM stores subscription data of UEs. The Data Network (DN), not part of the 5G core network, provides Internet access or operator services and similar.

[0009] The NRF supports the following functionality: 1) maintains the NF profile of available NF instances and their supported services; 2) allows other NF instances to subscribe to, and get notified about, the registration in NRF of new NF instances of a given type; and 3) supports a discovery function. It receives NF Discover requests from NF instances, and provides the information of the available NF instances fulfilling certain search criteria. Features of the NRF are specified in 3GPP Technical Specification (TS) 29.501 (see e.g. 3GPP TS 29.501 v16.0.0).

[0010] A number of 5G core network NFs of different types are always instantiated per default in the 5G core network, e.g. such as an AMF, a NRF, a PCF and a SMF etc. Other 5G core network NFs may be instantiated as needed and several NFs of the same type can also be instantiated if required, e.g. to distribute load to additional NF(s) of the same typ. Thus, an NF instance may be seen as an example or a specimen of a certain NF. Herein, the terms NF and NF instance are used interchangeably, unless otherwise expressly stated or is apparent from the context in which the terms are used. An NF instance exposes one or more NF Service Instances.

Figure 3

[0011] FIG. 3 is a message flow diagram illustrating an example of the network function service framework in the service based 5G core network. Among other things, the framework comprises: 1) an NF service registration procedure and 2) an NF discovery and authorization procedure.

[0012] Registration Procedure

[0013] A core network NF instance in the service based 5G core network registers its NF profile at the NRF. Thus, NF2 (e.g. a AMF) sends a Registration Request to the NRF in action 300a, which request comprises the NF profile of the registering NF2. The NF profile is typically included in the request as a JavaScript Object Notation (JSON) object or other similar data object. The NF profile indicates the one or more NF services that are supported by the registering NF instance. In this example it is assumed that the registering NF2 supports an NF service labeled NF service A. Generally, an NF profile may comprise one or more of the following items for the registering NF: NF type, Fully Qualified Domain Name (FQDN) or IP address, Name(s) of supported service(s), Endpoint information of instance(s) of each supported service and possibly other service parameter. In action 300b the NRF stores the NF profile of the registering NF and preferably marks the NF instance (i.e., NF2 in this example) as available. The NRF may then send a Registration Response to NF2 in action 300c, which response may include the registered NF profile as a confirmation of the registration made by the NRF.

[0014] The registration may take place when the NF instance becomes operative for the first time or upon an activation of an individual NF service within the NF instance, e.g. triggered after a scaling operation. The NF instance may register/expose one or more NF services. The information registered for an individual NF service may e.g. indicate security related information to be used for authorizing a discovering NF instance, e.g. security information that indicates the NFs that are allowed to discover the individual NF service, e.g. the type of NFs or the particular NFs of a certain type that are allowed to discover the NF service in question. Flowever, known art NFs that does not produce/support any NF service will not register any service at the NRF. Thus, an NF instance that only consumes one or more NF services will not register anything at the NRF.

[0015] Discovery and Authorization

[0016] When a first NF instance (e.g., NF1) in the service based 5G core network intends to utilize an NF service supported by a second NF instance (e.g., NF2) the first NF instance will initiate an NF discovery process (a.k.a., NF service discovery process) with the NRF for the NF service in question. Thus, NF2 (e.g., an SMF, an AMF, etc.) sends a Discover request to the NRF in action 302a, which request comprises discovery information. The discovery information may be included in the request as a JSON data object (e.g., file) or similar. The discovery information indicates the expected service to be consumed by the discovering NF (e.g. NF service A mentioned above). Preferably, the discovery information indicates the service name or similar of the expected NF service. Additionally or alternatively, the discovery information may indicate one or more of: the NF type of the expected NF (i.e. the type of NF that is expected to produce the expected NF service) and/or the NF type of the discovering NF. Generally, the NF type may e.g. be any of NSSF, NEF, AUSF, AMF, PCF, SMF, UDM or AF or similar, unless the context in which the NF type is mentioned indicates otherwise.

[0017] The NRF authorizes the discover request by determining - based on the discovery information provided in the discover request and preferably also based on the profile registered by relevant expected target NF instance(s) - whether the discovering NF (i.e. the potential service consumer) is authorized to discover the expected NF service and/or NF instance(s) expected to produce the expected service. The discovery and authorization by the NRF is exemplified by action 302b in FIG. 3, wherein the expected target NF instance is NF2 and the potential service consumer is NF1.

[0018] For example, if the expected NF instance(s) are deployed in a certain network slice, the

NRF may authorize the discover request according to the discovery configuration of the Network Slice, e.g. the expected NF instance(s) may only be discoverable by the NF in the same network slice etc.

[0019] When authorized, the NRF determines a set of one or more discovered NF instance(s) that supports the expected service and sends to the requester NF (a.k.a., “service consumer”) a response to the discovery request (a.k.a., “query response”). Thus, the NRF sends a response to NF1 in action 302c, which response comprises repository information indicating one or more discovered NF instance(s) that supports the expected service, i.e. that can produce the expected service. The repository information may e.g. indicate one or more of: FQDN, IP address and/or endpoint addresses (e.g. Uniform Resource Locators (URLs) or similar) for said one or more discovered NF instance(s).

SUMMARY

[0020] Some embodiments of the present disclosure are directed to a method of operating a network function repository entity, NRE. The method includes receiving a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters including a preferred application programming interface, API, version. In response to the service discovery request, the method performs a search of a network function repository for service producers based on the set of query parameters to obtain a search result. The method generates a service discovery response based on the search result. The method also transmits the service discovery response toward the network entity. [0021] In other embodiments, the method further includes determining if the search identifies a service producer capable of providing a service having the preferred API version. In response to determining that the search does not identify a service producer capable of providing a service having the preferred API version, the method determines if the search identifies a service producer capable of providing a service having an API version higher than the preferred API version. In response to determining that the search identifies a service producer capable of providing a service having an API version higher than the preferred API version, the method returns an identifier of the service producer capable of providing a service having an API version higher than the preferred API version.

[0022] In some of said embodiments, the method further includes determining if the search identifies a service producer capable of providing a service having a same major API version as the preferred API version in response to determining that the search does not identify a service producer capable of providing a service having a higher API version than the preferred API version. In response to determining that the search identifies a service producer capable of providing a service having the same major API version as the preferred API version, the method returns an identifier of the service producer capable of providing a service having the same major API version as the preferred API version.

[0023] In more of said embodiments, the method further includes determining if the search identifies a service producer capable of providing a service having a same major API version as the preferred API version in response to determining that the search does not identify a service producer capable of providing a service having the preferred API version. In response to determining that the search identifies a service producer capable of providing a service having the same major API version as the preferred API version, the method returns an identifier of the service producer capable of providing a service having the same major API version as the preferred API version.

[0024] Some embodiments of the present disclosure are directed to a computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any previous embodiments.

[0025] Some other embodiments of the present disclosure are directed to an apparatus being adapted to employ a receiver to receive a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. The apparatus is further adapted to perform a search of a network function repository for service producers based on the set of query parameters to obtain a search result in response to the service discovery request. The apparatus generates a service discovery response based on the search result. The apparatus employs a transmitter to transmit the service discovery response toward the network entity.

[0026] Some other embodiments of the present disclosure are directed to a network function repository entity, NRE. The NRE including a receiving unit configured to employ a receiver to receive a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. The NRE including a processing circuit configured, in response to the service discovery request, to perform a search of a network function repository for service producers based on the set of query parameters to obtain a search result and to generate a service discovery response based on the search result. The NRE also including a transmitting unit configured to employ a transmitter to transmit the service discovery response toward the network entity.

[0027] In some embodiments, an NRE includes a processing circuit, a transceiver coupled to the processing circuit, and a memory coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the NRE to perform operations according to any of said methods.

[0028] Some other embodiments are directed to a method of operating a network entity. The method includes transmitting a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. The method receives a service discovery response, the service discovery response identifying service producers based on the preferred API version identified in the service discovery request. The method selects a service producer from the service discovery response. The method transmits a service request toward the selected service producer.

[0029] Some embodiments are directed to a computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any of the above methods.

[0030] Some other embodiments of the present disclosure are directed to an apparatus being adapted to employ a transmitter to transmit a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. The apparatus employs a receiver to receive a service discovery response to the network entity, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request. The apparatus selects a service producer from the service discovery response. The apparatus employs a transmitter to transmit a service request toward the selected service producer.

[0031 ] Some other embodiments of the present disclosure are directed to a network entity including a transmitting unit that transmits a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version. The network entity includes a receiving unit that receives a service discovery response, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request. The network entity also includes a processor that selects a service producer from the service discovery response.

[0032] Some other embodiments of the present disclosure are directed to a network entity, including a processing circuit, a transceiver coupled to the processing circuit, and a memory coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the network entity to perform operations according to any of the above methods.

[0033] An advantage of the above described embodiments is that an NF service consumer may indicate a desired service API version in a Service Discovery query. In this manner, an NF service consumer can find a suitable candidate NF instance that supports the desired service API version more efficiently.

[0034] For indirect communication via SCP with delegated discovery in eSBA, some embodiments may enable an NF consumer to guide the SCP to find a correct NF producer candidate to relay the service request. This may service failure due to mis-selection of target NF instances. BRIEF DESCRIPTION OF THE DRAWINGS [0035] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.

FIG. 1 illustrates a wireless communication system represented as a 5G network architecture composed of NFs using point to point reference points or interfaces.

FIG. 2 illustrates a 5G network architecture using service-based interfaces (SBIs) between the NFs in the control plane, instead of the point-to-point reference points/interfaces used in the 5G network architecture of FIG. 1.

FIG. 3 is a message flow diagram illustrating an example of the network function service framework in the service based 5G core network.

FIG. 4 is a flowchart illustrating a process according to some embodiments.

FIG. 5 is a message flow diagram illustrating some embodiments.

FIG. 6 is a flowchart illustrating a process according to some embodiments.

FIG. 7 is a block diagram of an apparatus according to some embodiments.

DETAILED DESCRIPTION

[0036] 3GPP TS 29.510 specifies the Network Function Repository Function (NRF) services, which allows a network function (NF) instance, acting as an NF producer, to register its profile in the NRF, and allows an NF service consumer to discover the NF producer instance(s) that support the specific service(s).

[0037] An NF producer may support multiple application programming interface (API) versions of the same service. In that case, the NF producer may register all supported API versions in its NF Profile.

[0038] An NF consumer may discover NF producers supporting certain NF service by sending a service discovery query with query parameters to an NRF. If the NRF the can find registered NF producers matching the discovery conditions, it returns the NF instances in a service discovery response. The NF consumer selects an NF instance to send the service request to the service access point registered in the NF profile. [0039] A NF consumer may indicate a limited maximum number of NF profiles or maximum payload size of a service discovery response. If the number of NF instances matching the discovery conditions are large, the NRF may only return part of the matching NF instances according to the pre-set limits. In that case, the NF consumer may invoke subsequent discovery request to fetch the rest of the search results.

[0040] In Rel-16, with enhanced Service Based Architecture (eSBA), the NF consumer may use indirect communication via SCP with delegated discovery. That is, the NF consumer may not perform the above service discovery by itself. Instead, it may send the Service Request directly to SCP carrying the discovery conditions, and SCP will perform service discovery and locate a suitable NF instance to relay the service request.

[0041] Currently, there are no mechanisms to support discovery, by an NF service consumer, of whether an NF service producer is from a specified vendor, via a NRF and if the NRF is from a different vendor than the NF service consumer. In addition, an NF service consumer may need to invoke an NF service with a specific API version. For example, for API backward compatibility, an NF consumer may support version 1 of an API and may need to find a producer that also supports version 1 of the API.

[0042] In another example, an NF consumer may implement an operator-specific feature that is identified with an operator specific API version. Thus, the NF consumer may need to locate an NF service producer that supports the same operator-specific API version in order to realize operator- specific features. For example, an operator specific feature may be identified as API version "2.3.1.operator-featureset-01.”

[0043] In another example, the NF service consumer may prefer to select a service producer from a specific vendor.

[0044] In current 3GPP specifications, the NF consumer needs to go through all the NF instances in a search result to find an NF instance supporting a desired API version, which is not efficient.

[0045] If a number of NF instances fitting a discovery condition is large and the NF consumer has provided limits during discovery, the NRF only returns parts of the search result in the discovery response. In this case, if the NF instance supporting the desired version is not returned in the first response, the NF consumer may need to perform subsequent discovery request(s) until it can locate the one supporting the desired API version. This is even less efficient.

[0046] In eSBA, if indirect communication via SCP with delegated discovery is used, it is technically not possible for the NF consumer to use a desired API version. The SCP performs discovery to an NRF on behalf of the NF consumer and obtains the search result. The SCP may not have the knowledge which API version is preferred by the NF consumer to relay the service request.

[0047] Some embodiments provide a mechanism in a core network, such as 5GC, to enable a service consumer to request, in a service discovery query, that the NRF return a list of candidate NF service producers, of which the supported service API version(s) matches a predetermined criterion specified in the service discovery query.

[0048] The service discovery query may include a field and/or parameter specifying the preferred API version. For example, the API version may be specified by a string that follows regular expression rules, e.g. 2*ericsson010. In some embodiments, the query may specify logic that the NRF should apply when evaluating a candidate NF service producer. For example, the query may specify a hierarchy of criteria arranged in order of priority. For example, the query may specify a first preferred API version as corresponding to the string "2*ericsson010." If there is no match when looking for a NF producer that supports an API version that corresponds to the string "2*ericsson010", then the NRF may be requested to search for service producers that support an API version that corresponds to the string "2*verizon*" as a second priority.

[0049] Such additional criteria to select a desired API version(s) may be referred to as preferred API version(s).

[0050] The service consumer may derive the preferred API version in service discovery, based on, for example, the Service API version implemented by the NF consumer.

[0051] Accordingly, in some embodiments, for an NRF NF Discovery Service, the NF consumer may indicate a preferred API version as a query parameter of the service discovery query. The NRF will, if possible, return NF instances supporting the preferred API version. Otherwise, if no NF instance supporting the preferred API version is discovered, the NRF may return other NF instances supporting the desired NF services with other API versions. For example, in some embodiments, the NRF may derive the candidate NF instances in the search result according to the following procedure: [0052] (1) Return service producers matching the same API version as highest priority. If no such service producer is found, then:

[0053] (2) Return service providers matching a higher Server API version with the same major version as the preferred API version. If no such service is found, then:

[0054] (3) Return service providers matching a lower Server API version with the same major version as the preferred API version. If no such service is found, then:

[0055] (4) Return other API versions or return no result.

[0056] If multiple services are included in the discovery request, the preferred API version may be provided per service.

[0057] The NF consumer may provide multiple preferred API versions for one service, with priority order. The priority may be reflected as the position in the preferred API versions array.

[0058] The preferred API version specified in the query parameter may not be a complete API version. Rather, it may be partially specified and/or specified using wildcards, such as "x*abc", etc.

[0059] For delegated discovery by SCP, the NF consumer may indicate the preferred API version in a HTTP header, (e.g. "3gpp-Sbi-Discovery-preferred-api-version: <full API version>"). The SCP may select a target NF instance with the logic described above.

Figures 4 and 5

[0060] FIG. 4 is a flowchart illustrating a process 400 according to some embodiments.

Referring to FIG. 4, in block 402, a first network entity 504 (or “NE 504” for short) (e.g., an AMF) (see FIG. 5) generates a discovery request 501, wherein the discovery request includes a set of query parameters. The set of query parameters includes a preferred API version. In some embodiments, the set of query parameters includes an array of preferred API versions. In one embodiment, the set of query parameters further comprises filter criteria for use by a network repository entity 502 (or “NRE 502” for short) to determine network entities that satisfy the filter criteria. For example, the NRE may comprise a NRF or a similar repository entity, e.g. a database or similar. Preferably, the NRE comprises or stores or holds a number of network entity profiles (e.g. NF profiles or similar). Preferably, a network profile is associated with a network entity or similar (e.g. with a NF or similar). Preferably, a network entity profile indicates the API version(s) that is supported by the network entity in question (e.g. the NF in question). In some other embodiments the NRE comprises a service control point, SCP, preferably configured to perform a search of a NRF entity 330 on behalf of the NE 504, e.g. perform a discovery request with respect to said NRF on behalf of the NE 504, e.g. sending and/or forwarding a discovery request to the NRF entity 330 on behalf of the NE 504.

[0061] Unless it is otherwise clear from the context in which the term is used, a network entity

504 may, for example, be any of a NSSF, a NEF, a NRF, a PCF, an UDM, an AUSF, an AMF a SMF or an UPF as shown in FIG. 2, or any other similar network function or node. A network entity may be implemented either as a network element on a dedicated hardware, as a software instance running on a dedicated hardware, or as a virtualized function instantiated on an appropriate platform, e.g., a cloud infrastructure. A virtualized function may be a function in which at least a portion of the functionality of the function is implemented as a virtual component(s) (e.g., via a virtual machine(s) executing on one or more physical processing node(s) in a network).

[0062] In block 404, NE 504 transmits a service discovery request 501 to NRE 502. The discovery request 501 may be a Hypertext Transfer Protocol (HTTP) GET request that comprises the set of query parameters (the GET request may also include the string “nnrf-disc” or other value to indicate to the NRE that the requestor NE 504 is invoking the Discovery Service procedure). In one embodiment, in addition to the query parameter that contains the preferred API version, other query parameters may be included in the GET request, including the query parameters described in table 6.2.3.2.3.1-1 of 3GPP TS 29.510 V16.0.0 (“TS 29.510”).

[0063] Table 1 below provides descriptions for some query parameters that may be included in request 501. These various query parameters are URI query parameters supported by the GET method on this resource.

TABLE 1 - Partial List of the Possible Query Parameters included in a discovery request

[0064] Table 2 describes features supported by the NFDiscovery service.

TABLE 2 - Features of supportedFeatures attribute used by Nnrf_NFDiscovery service

[0065] As shown above, one of the potential query parameters is the “preferred-api-versions” query parameter, which is an array of data objects of type string.

[0066] Thus, in one use case, a target AMF may send to NRE 502 a discovery request 501 comprising a preferred-api-versions query parameter that contains one or more API versions preferred by the requesting network function.

[0067] The preferred API version parameter may include three or more fields. For example, a first field of the preferred API version may correspond to a major revision level of the API version (MAJOR), a second field of the preferred API version may correspond to a minor revision level of the preferred API version (MINOR), and a third field of the preferred API version may correspond to a patch level of the preferred API version (PATCFI). The first, second and third fields may contain unsigned integer numbers.

[0068] After receiving discovery request 501 , NRE 502 searches for network entity profiles that satisfy a search criteria. In one embodiment, the search criteria is the same as the filter criteria included in the discover request 501. Thus, in one embodiment, the profiles that match the search criteria will match the filter criteria included in discovery request 501

[0069] After performing the search, NRE 502 transmits a discovery response 503 (e.g., HTTP

GET response) responding to request 501, which response includes at least some of the profiles that match the search criteria.

[0070] Accordingly, in a block 406, NE 504 receives (directly or indirectly) from NRE 502 discovery response 503.

[0071] At block 408, the NE 504 selects a service producer from the discovery response. At block 410, the NE 504 transmits the service response to the selected service producer.

[0072] The NRE 502 may include an instance of a network function repository function, NRF.

The set of query parameters may include an array of preferred API versions. The array of preferred API versions may be arranged in order of priority.

[0073] The service discovery response may include a list of matching service producers, the list of matching service producers may be ordered based on the order of priority of the preferred API versions. The preferred API version may be specified using wildcards or pattern matching techniques, such as regular expressions.

[0074] The service discovery request may identify a plurality of services and identifies an associated preferred API version for each of the plurality of services.

[0075] The service discovery response may identify matching service producers for each of the plurality of services identified in the service discovery request.

[0076] The NE 504 may include an instance of a core network function of a wireless communication core network.

[0077] Transmitting the service discovery request toward the NRE may include transmitting the service discovery request toward a service control point, SCP, and receiving the service discovery response may include receiving the service discovery response from the SCP.

[0078] The preferred API version may include a vendor-specific API version. The preferred API version may be specified according to regular expression rules. The set of query parameters may include a preferred service producer. The preferred API version may include vendor-specific information. [0079] In a use case where NE 504 is a target AMF, the target AMF 504 may receive (directly or indirectly) from source AMF 506 user equipment, UE, a message 590 containing context information for a UE that has an established PDU session, wherein the UE context information comprises PDU context information associated with the PDU session, and the PDU context information comprises a first Session Management Function, SMF, ID identifying a current anchor SMF for the PDU session and a second SMF ID identifying a current intermediate SMF, l-SMF, for the PDU session.

[0080] As noted above, in this use particular case, the target AMF may send to NRE 502 a discovery request 501 comprising a Preferred-Candidates query parameter that contains the ID of the current l-SMF as obtained from the PduSessionContext data object (e.g., the ismfld) and/or the ID of the current SMF as obtained from the PduSessionContext data object (e.g., the hsmfld). In addition, the discovery request contains filter criteria, e.g. a value for the TAI query parameter and a value for the target- nf-type query parameter (in this case, target-nf-type = SMF).

[0081] In embodiments where the UE is in idle mode, the target AMF may receive a registration request transmitted by the UE, which may trigger the target AMF to send to the source AMF a request 589 for context information for the UE. In embodiments, where the UE is in connected mode, the source AMF may receive a handover required message from the base station serving the UE and, which may trigger the source AMF to send to the target AMF the message 590 containing the context information for the UE.

[0082] Additionally, in the use case where NE 504 is the target AMF, the target AMF may use information provided by the discovery response 503 to determine whether the AMF needs to select a new SMF. In response to determining that a new SMF needs to be selected, the AMF selects a new SMF, otherwise the AMF will use the current SMF. For example, the target AMF can use information provided by the discovery response 503 to determine that a current l-SMF should be removed or replaced.

[0083] For example, in the case where the PduSessionContext data object includes an ismfld and a hsmfld, the target AMF can use the information provided by the discovery response 503 to determine whether the SMF identified by the hsmfld and/or the SMF identified by the ismfld serves the Tracking Area in which the UE is current located (assuming the filter criteria comprises: tai=target Tracking Area and target-nf-type=SMF and the set of entity IDs included in the discovery requests includes ismfld and hsmfld). As noted above, if the SMF identified by hsmfld serves the target Tracking Area then the SMF identified by ismfld can be removed (i.e., an intermediate SMF is not needed). And if the SMF identified by hsmfld does not serve the target Tracking Area but the SMF identified by ismfld does serve the target Tracking Area, then no new SMF needs to be selected, otherwise a new intermediate SMF will need to be selected to replace the SMF identified by ismfld.

Figure 6

[0084] FIG. 6 is a flowchart illustrating a process 600 according to some embodiments that is performed by NRE 502. Referring to FIG. 6, in block 602, NRE 502 receives a discovery request 501 transmitted by NE 504, wherein the received discovery request comprises a set of query parameters, the set of query parameters including one or more preferred API versions. In some embodiments, the set of query parameters further comprises filter criteria for use by NRE 502 to determine network entities that satisfy the filter criteria.

[0085] In block 604, the NRE 502 performs a search of a network function repository for service producers that support API versions matching (or nearly matching) the preferred API version specified in the query parameters, and in block 606, the NRE 502 generates a service discovery response based on the search results.

[0086] In block 608, NRE 502 transmits to the NE 504 the discovery response 503, which is responsive to discovery request 501 (i.e., discovery response 503 includes an array of profiles that match the preferred API version and/or otherwise satisfy the filter criteria included in request 501).

[0087] The NRE 502 may include an instance of a network function repository function, NRF.

The set of query parameters may include an array of preferred API versions. The array of preferred API versions may be arranged in order of priority, and performing the search may include performing the search based on the order of priority of the preferred API versions.

[0088] The service discovery response may include a list of matching service producers, the list of matching service producers may be ordered based on the order of priority of the preferred API versions. The preferred API version may be specified using wildcards or other pattern matching techniques, such as regular expressions.

[0089] The method may further include determining if the search identifies a service producer capable of providing a service having the preferred API version, and in response to determining that the search identifies a service producer capable of providing a service having the preferred API version, returning an identifier of the service producer capable of providing a service having the preferred API version.

[0090] The method may further include, in response to determining that the search identifies multiple service producers capable of providing a service having a same major API version as the preferred API version, further determining if the search identifies a service producer capable of providing a service having a higher MINOR and/or PATCH API version than the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version, preferably returning an identifier of the service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version.

[0091] The method may further include, in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an identifier of the service producer capable of providing a service having another API version.

[0092] The method may further include, in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an indication that no Service producer with compatible version can be identified.

[0093] The service discovery request may identify a plurality of services and may identify an associated preferred API version for each of the plurality of services. The service discovery response may identify matching service producers for each of the plurality of services identified in the service discovery request. The network entity may include an instance of a core network function of a wireless communication core network. The network entity may include a service control point, SCP, preferably performing the service discovery on behalf of an instance of a core network function of the wireless communication core network.

[0094] The preferred API version may include vendor-specific information. In particular, the preferred API version may include a vendor-specific API version. The preferred API version may be specified according to regular expression rules. The set of query parameters may include a preferred service producer. Figure 7

[0095] In embodiments in which NE 504 or NRE 502 are implemented in software, FIG.

7 is a block diagram of a phyiscal machine (or “apparatus”) 700, according to some embodiments, which can be used to run NE 504 and/or NRE 502. For instance, apparatus 700 may run a virtual machine that runs NE 504 or NRE 502. As shown in FIG. 7, apparatus 700 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 700 may be a distributed computing apparatus); a network interface 748 comprising a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling apparatus 700 to transmit data to and receive data from other machines connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 748 is connected (directly or indirectly) (e.g., network interface 748 may be wirelessly connected to the network 110, in which case network interface 748 is connected to an antenna arrangement); and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 702 includes a programmable processor, a computer program product (CPP) 741 may be provided. CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP)

743 comprising computer readable instructions (CRI) 744. CRM 742 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes apparatus 700 to perform operations described herein (e.g., operations described herein with reference to the flow charts). In other embodiments, apparatus 700 may be configured to perform operations described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software. SOME EMBODIMENTS

[0096] Some embodiments described above may be summarized in the following manner:

1. A method of operating a network function repository entity, NRE (502), comprising: receiving (501, 602) a service discovery request from a network entity (504), wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; in response to the service discovery request, performing (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result; generating (606) a service discovery response based on the search result; and transmitting (503, 608) the service discovery response toward the network entity.

2. The method of embodiment 1 , wherein the NRE comprises an instance of a network function repository function, NRF or comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

3. The method of embodiment 1 , wherein the set of query parameters comprises an array of preferred API versions.

4. The method of embodiment 3, wherein the array of preferred API versions is arranged in order of priority, and wherein performing the search comprises performing the search based on the order of priority of the preferred API versions.

5. The method of embodiment 4, wherein the service discovery response comprises a list of matching service producers, wherein the list of matching service producers is ordered based on the order of priority of the preferred API versions.

6. The method of any previous embodiment, wherein the preferred API version is specified using pattern matching methods, for example, using regular expressions.

7. The method of any previous embodiment, further comprising: determining if the search identifies a service producer capable of providing a service having the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the preferred API version, returning an identifier of the service producer capable of providing a service having the preferred API version.

8. The method of embodiment 7, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having the preferred API version, determining if the search identifies a service producer capable of providing a service having a same major API version as the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the same major API version as the preferred API version, returning an identifier of the service producer capable of providing a service having the same major API version as the preferred API version.

9. The method of embodiment 8, further comprising: in response to determining that the search identifies multiple service producers capable of providing a service having a same major API version as the preferred API version, further determining if the search identifies a service producer capable of providing a service having a higher MINOR and/or PATCH API version than the preferred API version; and in response to determining that the search identifies a service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version, preferably returning an identifier of the service producer capable of providing a service having the same MAJOR version and a higher MINOR and/or PATCH API version than the preferred API version.

10. The method of embodiment 8, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an identifier of the service producer capable of providing a service having another API version.

11. The method of embodiment 8, further comprising: in response to determining that the search does not identify a service producer capable of providing a service having a same major API version as the preferred API version, returning an indication that no Service producer with compatible version can be identified.

12. The method of any previous embodiment, wherein the service discovery request identifies a plurality of services and identifies an associated preferred API version for each of the plurality of services.

13. The method of embodiment 12, wherein the service discovery response identifies matching service producers for each of the plurality of services identified in the service discovery request.

14. The method of any previous embodiment, wherein the network entity comprises an instance of a core network function of a wireless communication core network.

15. The method of any previous embodiment, wherein the network entity comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

16. The method of any previous embodiment, wherein the preferred API version comprises vendor-specific information specified in an optional field.

17. The method of any previous embodiment, wherein the preferred API version comprises three or more fields.

18. The method of embodiment 17, wherein a first field of the preferred API version corresponds to a major revision level of the API version (MAJOR), a second field of the preferred API version corresponds to a minor revision level of the preferred API version (MINOR), a third field of the preferred API version corresponds to a patch level of the preferred API version (PATCH).

19. The method of embodiment 18, wherein the first, second and third fields contain unsigned integer numbers.

20. A computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any previous embodiment.

21. A carrier containing the computer program of embodiment 20, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

22. An apparatus (700), the apparatus being adapted to: employ a receiver (747) to receive (602) a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; employ a processor (755), to, in response to the service discovery request, perform (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result and generate (606) a service discovery response based on the search result; and employ a transmitter (745) to transmit (608) the service discovery response toward the network entity.

23. A network function repository entity, NRE (700), comprising: a receiving unit (812) configured to employ a receiver to receive (602) a service discovery request from a network entity, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; a processing circuit (755) configured, in response to the service discovery request, to perform (604) a search of a network function repository (330) for service producers based on the set of query parameters including the preferred API version to obtain a search result and to generate (606) a service discovery response based on the search result; and a transmitting unit (814) configured to employ a transmitter to transmit (608) the service discovery response toward the network entity.

24. A network function repository entity, NRE (700), comprising: a processing circuit (755); a network interface (748) coupled to the processing circuit; and a memory (742) coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the NRE to perform operations according to any of embodiment 1 to 19.

25. A method of operating a network entity, comprising: transmitting (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; receiving (406) a service discovery response, the service discovery response identifying service producers based on the preferred API version identified in the service discovery request; selecting (408) a service producer from the service discovery response; and transmitting (410) a service request toward the selected service producer.

26. The method of embodiment 25, wherein the NRE comprises an instance of a network function repository function, NRF, or comprises a service control point, SCP, preferably performing the search of the network repository network function repository, NRF, entity (330) on behalf of the network entity (504), e.g. perform a discovery request with respect to the NRF entity (330) on behalf of the network entity (504), e.g. sending or forwarding a discovery request to the NRF entity (330).

27. The method of embodiment 25, wherein the set of query parameters comprises an array of preferred API versions.

28. The method of embodiment 27, wherein the array of preferred API versions is arranged in order of priority. 29. The method of embodiment 28, wherein the service discovery response comprises a list of matching service producers, wherein the list of matching service producers is ordered based on the order of priority of the preferred API versions.

30. The method of any of embodiment 25 to 29, wherein the preferred API version is specified using using pattern matching methods, for example, using regular expressions.

31. The method of any of embodiment 25 to 30, wherein the service discovery request identifies a plurality of services and identifies an associated preferred API version for each of the plurality of services.

32. The method of embodiment 31 , wherein the service discovery response identifies matching service producers for each of the plurality of services identified in the service discovery request.

33. The method of any of embodiment 25 to 32, wherein the network entity comprises an instance of a core network function of a wireless communication core network.

34. The method of any of embodiment 25 to 33, wherein transmitting the service discovery request toward the NRE comprises transmitting the service discovery request toward a service control point, SCP, and wherein receiving the service discovery response comprises receiving the service discovery response from the SCP.

35. The method of any of embodiment 25 to 34, wherein the preferred API version comprises vendor-specific information in an optional field.

36. The method of any of embodiment 25 to 35, wherein the preferred API version comprises three or more fields.

37. The method of embodiment 36, wherein a first field of the preferred API version corresponds to a major revision level of the API version (MAJOR), a second field of the preferred API version corresponds to a minor revision level of the preferred API version (MINOR), a third field of the preferred API version corresponds to a patch level of the preferred API version (PATCH).

38. The method of embodiment 37, wherein the first, second and third fields contain unsigned integer numbers.

39. A computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method of any of embodiment 25 to 38.

40. A carrier containing the computer program of embodiment 39, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

41. An apparatus (700), the apparatus being adapted to: employ a transmitter (745) to transmit (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; employ a receiver (747) to receive (406) a service discovery response to the network entity, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request; employ a processor (755) to select (408) a service producer from the service discovery response; and employ the transmitter (745) to transmit (410) a service request toward the selected service producer.

42. A network entity, comprising: a transmitting unit (814) that transmits (404) a service discovery request toward a network function repository entity, NRE, wherein the service discovery request comprises a set of query parameters, the set of query parameters comprising a preferred application programming interface, API, version; a receiving unit (812) that receives (406) a service discovery response, the service discovery response identifying matching service producers based on the preferred API version identified in the service discovery request; and a processor (755) that selects (408) a service producer from the service discovery response; wherein the transmitting unit transmits (410) a service request toward the selected service producer.

43. A network entity (700), comprising: a processing circuit (755); a network interface (748) coupled to the processing circuit; and a memory (742) coupled to the processing circuit, wherein the memory comprises computer readable program instructions that, when executed by the processing circuit, cause the network entity to perform operations according to any of embodiment 25 to 38.

[0097] While various embodiments of the present disclosure are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments. Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and/or is implied from the context in which it is used. The indefinite article “a” should be interpreted openly as meaning “at least one” unless explicitly stated otherwise. Any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.

[0098] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of operations, this was done solely for the sake of illustration. Accordingly, it is contemplated that some operations may be added, some operations may be omitted, the order of the operations may be re-arranged, and some operations may be performed in parallel. That is, the operations of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a operation is explicitly described as following or preceding another operation and/or where it is inherent that a operation must follow or precede another operation.