System, replica unit, database unit and methods performed therein
By employing replica units with distributed load balancing mechanisms in wireless communication networks, the system addresses the inefficiencies in cloud environments, enhancing the availability and scalability of gNB-CU-CP interfaces through efficient load distribution across multiple machines.
Patent Information
- Application Number
- PCT/SE2024/050385
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-19
- Publication Date
- 2025-10-23
AI Technical Summary
Current wireless communication network architectures, particularly in cloud environments, lack efficient mechanisms for load distribution and balancing across multiple replica units, leading to suboptimal availability and scalability of gNB-CU-CP interfaces, which are typically designed for reliable hardware platforms and do not leverage cloud deployment benefits.
Implementing a system with replica units that perform distributed load balancing by selecting candidate units based on criteria stored in a database unit, allowing multiple copies of microservices to run on different machines, thereby handling connection establishments efficiently and enhancing availability and scalability.
This approach increases the availability and scalability of radio network node interfaces by distributing load across multiple machines, ensuring high availability and flexible capacity scaling without a central function, thus overcoming limitations of existing cloud deployment methods.
Smart Images

Figure SE2024050385_23102025_PF_FP_ABST
Abstract
Description
[0001] SYSTEM, REPLICA UNIT, DATABASE UNIT AND METHODS PERFORMED THEREIN
[0002] TECHNICAL FIELD
[0003] Embodiments herein relate to a system, a replica unit, a database unit, and methods performed therein. Furthermore, a computer program product and a computer- readable storage medium are also provided herein. In particular, embodiments herein relate to handling connection services in a wireless communication network.
[0004] BACKGROUND
[0005] In a typical wireless communication network, user equipments (UE), also known as wireless communication devices, mobile stations, stations (STA) and / or wireless devices, communicate via a Radio Access Network (RAN) with one or more core networks (CN). The RAN covers a geographical area which is divided into service areas or cells, with each service area or cell being served by a radio network node such as an access node e.g. a Wi-Fi access point or a radio base station (RBS), which in some networks may also be called, for example, a NodeB, a gNodeB, or an eNodeB. The service area or cell is a geographical area where radio coverage is provided by the radio network node. The radio network node operates on radio frequencies to communicate over an air interface with the UEs within range of the radio network node. The radio network node communicates over a downlink (DL) to the UE and the UE communicates over an uplink (UL) to the radio network node.
[0006] A Universal Mobile Telecommunications System (UMTS) is a third generation (3G) telecommunication network, which evolved from the second generation (2G) Global System for Mobile Communications (GSM). The UMTS terrestrial radio access network (UTRAN) is essentially a RAN using wideband code division multiple access (WCDMA) and / or High-Speed Packet Access (HSPA) for communication with user equipment. In a forum known as the Third Generation Partnership Project (3GPP), telecommunications suppliers propose and agree upon standards for present and future generation networks and investigate e.g. enhanced data rate and radio capacity. In some RANs, e.g. as in UMTS, several radio network nodes may be connected, e.g., by landlines or microwave, to a controller node, such as a radio network controller (RNC) or a base station controller (BSC), which supervises and coordinates various activities of the plural radio network nodes connected thereto. The RNCs are typically connected to one or more core networks.
[0007] Specifications for the Evolved Packet System (EPS) have been completed within the 3GPP and coming 3GPP releases, such as New Radio (NR), are worked on. The EPS comprises the Evolved Universal Terrestrial Radio Access Network (E-UTRAN), also known as the Long-Term Evolution (LTE) radio access network, and the Evolved Packet Core (EPC), also known as System Architecture Evolution (SAE) core network. E- UTRAN / LTE is a 3GPP radio access technology wherein the radio network nodes are directly connected to the EPC core network. As such, the Radio Access Network (RAN) of an EPS comprises radio network nodes connected directly to one or more core networks.
[0008] With the emerging 5G technologies such as NR, the use of very many transmit- and receive-antenna elements may be of great interest as it makes it possible to utilize beamforming, such as transmit-side and receive-side beamforming. Transmit-side beamforming means that the transmitter can amplify the transmitted signals in a selected direction or directions, while suppressing the transmitted signals in other directions. Similarly, on the receive-side, a receiver can amplify signals from a selected direction or directions, while suppressing unwanted signals from other directions. NR is connected to the 5G Core Network (5GC) which comprises a number of Network Functions (NF) such as Session Management Function (SMF), Access Management Function (AMF) being an NR function corresponding to mobility management entity (MME) in LTE, Authentication Service Function (AUSF), Policy Control Function (PCF), Unified Data Manager (UDM), Network Repository Function (NRF), Network Exposure Function (NEF), just to mention some. In the 5GC, NFs can discover other NFs by using a discovery service provided by the NRF.
[0009] In today’s networks Kubernetes deployment may be used, which is an open- source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. According to Kubernetes the terms microservices and containers are used.
[0010] Micro-Service is a cloud application, which is in fact a computer program or set of programs running in a container hosted on a computer in cloud environment. A microservice may often consist of multiple programs, such as a program set. A micro-service uses one or multiple network interfaces provided by container to communicate with other micro-services, services, users or operators.
[0011] A container is a standard unit of software that packages up code and all its dependencies. It is a lightweight, standalone, executable package of software that includes everything needed to run a program: code, runtime, system tools, system libraries and settings. Containers with applications in it, can be deployed on a worker with help of orchestration systems, e.g. Kubernetes.
[0012] Kubernetes runs a workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node is managed by the control plane and contains the services necessary to run Pods. Typically, there are several nodes in a cluster; in a learning or resource-limited environment, there might be only one node, but this is not the case for clusters providing a service to end users.
[0013] One can deploy pods independently or deploy pods as replica set or stateful set, which may comprise multiple instances of the same pod as well as replica units will share some common deployment parameters and use same software image. There is also a special type of set called a DaemonSet, which ensures that all (or some) Nodes run a copy of a Pod. As nodes are added to the cluster, Pods are added to them. As nodes are removed from the cluster, those Pods are garbage collected. Deleting a DaemonSet will clean up the Pods it created, see Fig. 1. Fig. 1 shows methods to deploy applications in containers or Pods in Kubernetes
[0014] In case of a replica set, a user may simply specify how many instances, i.e. , replica units, are needed and orchestrator will make sure that needed replica units are deployed and running.
[0015] Stateful set is a special case of a replica set where orchestrator provides guarantees about the ordering and uniqueness of pods. Stateful set maintains a sticky identity for each of its pods. These pods are created from the same specification but are not interchangeable: each pod has a persistent identifier that it maintains across any rescheduling.
[0016] With rolling updates in Kubernetes, an orchestrator may incrementally update pods instances with new pods instances. The new pods instances will be scheduled on hardware nodes with available resources. However, an application must be deployed with multiple instances, so the availability of application is not sacrificed during update. By default, the maximum number of Pods that can be unavailable during the update and the maximum number of new Pods that can be created, is one. Both options can be configured to either numbers or percentages (of Pods). In Kubernetes, updates are versioned and any Deployment update can be reverted to a previous (stable) version. Similar to application scaling, if a Deployment is exposed publicly, the Service may load-balance the traffic only to available Pods during the update. An available Pod is an instance that is available to the users of the application.
[0017] In a microservices architecture, it is common to deploy microservices in different and not fixed locations and instantiate microservices in several copies for various reasons such as resilience or capacity. To fulfill the total application’s purpose, several microservices need to communicate with each other and exchange messages. For this, they need to easily find each other, despite the flexible location and number of microservice instances. A common solution to the problem of finding given microservices for purposes of message exchange, is the use of a Service Discovery service.
[0018] In principle, the Service Discovery service is like a “phone book” where the name of a (micro)service is registered (e.g. “NrlleHandler”) and possibly a multitude of (IP) addresses (and port(s)) is provided for connection purposes. The Service Discovery service can contain, besides the address and port, other properties needed for the communication with the given (micro)service to happen smoothly.
[0019] The Service Discovery service offers itself well-defined services for interested service consumers and providers. For example, different service or microservice- “clients” / consumers can subscribe for notifications on when a needed service or microservice-instance is registered or deregistered from Service Discovery.
[0020] Fig. 2 shows a Service Discovery process.
[0021] The steps illustrated in the diagram are:
[0022] 1. The location of the Service Provider is sent to the Service Registry, i.e. , a database containing the locations of all available service instances.
[0023] 2. The Service Consumer asks the Service Discovery Server for the location of the Service Provider.
[0024] 3. The location of the Service Provider is searched by the Service Registry in its internal database and returned to the Service Consumer.
[0025] 4. The Service Consumer can now make direct requests to the Service Provider.
[0026] Starting with 2G wireless networks, RAN architectures were based on several building blocks, such as radio controller centralizing some radio functions, transport network, base station system module responsible for operations and maintenance (O&M) functions, baseband module terminating interfaces and performing signal processing, band-specific radio modules transferring signal to / from radio carrier and finally antennas. In 4G and 5G, control functionality was de-centralized and placed closer to signal processing in baseband modules. Moreover, manufacturers often place O&M functions in a baseband module as well to simplify base station installation. As a result of this evolution, a modern base station integrates all digital signal processing, user plane, control plane protocols and O&M functions in proprietary boxes called baseband units (BBU) at the base of radio towers. At the same time, analogue to digital signal conversion may be performed in band-specific Radio Units (RU).
[0027] Since the earliest phases of 5G NR, there’s been a push to disaggregate the BBU by breaking off or splitting functions into Distributed Units (DU) and Centralized Units (CU). The argument for disaggregation was flexibility, letting network operators decide where to locate these functions, such as centrally in data center or locally at base station, thus, optimizing network performance at different scenarios. For disaggregation to happen, hardware and software components must be interoperable, letting network engineers mix and match these units from different vendors. Disaggregation also brings tradeoffs in deciding which unit should control certain operations leading to a functional split.
[0028] 3GPP considered a split concept, such a gNB split comprising one or more gNB- DUs and one or more gNB-CUs, for 5G from the beginning of writing its specifications. A gNB-DU is responsible for real time layer 1 (L1) being the physical layer (PHY) and lower layer 2 (L2), which contains the data link layer and scheduling functions. The CU is responsible for non-real time, higher L2 and L3, i.e. , network layer, functions. See Fig. 3, which shows a 5G NR architecture with focus on gNB functional split.
[0029] As described in TS38.401 v.18.0.0, NG-RAN consists of a set of gNBs connected to the 5G Core network (5GC) through the NG-C interface. The gNB may comprise one gNB-CU-control plane (CP), one or multiple gNB-CU-user planes (UP) and one or multiple gNB-DUs as shown in Fig. 3. This way of splitting gNB is often called Higher Layer Split (HLS) gNB architecture because high layers of radio protocol stack, in gNB-CU, are separated from low layers in gNB-DU, and gNB-CU is split onto two parts - control plane, i.e., gNB-CU-CP, and user plane, i.e., gNB-CU-UP.
[0030] In program realization of gNB-CU-CP for embedded gNB hardware deployments, where gNB-CU-CP, gNB-CU-UP and gNB-DU are running on one hardware platform, as well as for Cloud deployments, there are separate program entities or microservices handling the different 3GPP interfaces, such as F1-C, E1, NG-C, Xn-C, X2-C, towards the different external remote peer nodes, such as gNB-DUs, gNB-CU-UPs, AMFs, other gNBs / gNB-CU-CPs, and eNBs, respectively.
[0031] Fig. 4 shows respective network interface (Nwlf) entities:
[0032] Nwlf-Ng for handling NG-C connections towards AMFs;
[0033] Nwlf-X2 for handling X2-C connections towards eNBs;
[0034] Nwlf-Xn for handling Xn-C connections towards peer gNBs;
[0035] Nwlf-E1 for handling E1 connections towards gNB-CU-UPs;
[0036] Nwlf-F1 for handling F1-C connections towards gNB-DUs.
[0037] For convenience, any interface handler is denoted as Nwlf-Z, which stands for “Network Interface Z” and Z denotes an actual name of network interface as defined in 3GPP. In order to avoid confusion, it is important to clarify that interface handler Nwlf-Z is a program realization of an interface termination.
[0038] As Fig. 4 illustrates, in general, there is one microservice Nwlf-Z entity for handling of one corresponding interface. All external peer nodes connected to the gNB-CU-CP - AMFs (via NG-C) in case of Nwlf-Ng, eNBs (via X2-C) in case of Nwlf-X2, gNBs (via Xn- C) in case of Nwlf-Xn, gNB-CU-UPs (via E1) in case of Nwlf-E1 and gNB-DUs (via F1-C) in case of Nwlf-F1 - are connected to the one endpoint associated with the singleton Nwlf-Z handling the corresponding interface, see thick lines in Fig. 4.
[0039] There are several reasons why a single instance of program responsible for one interface is enough as of today:
[0040] • This setup is sufficient in a deployment where all components fail together, i.e., either the hardware fails with all programs, or all programs need to be restarted if one program fails.
[0041] • The gNB-CU-CP is running on one server with limited number of processors and capacity is bounded by other factors rather than the Nwlf processing, i.e., most of the CPU utilization is caused by number of connected UEs.
[0042] The entity initiating the connection between the CU-CP and the external peer, such as AMF, eNB, gNB, gNB-CU-UP, and / or gNB-DU, can be different for different interfaces:
[0043] For NG-C, link to AMFs: the gNB-CU-CP is the one initiating the setup of a NG-C connection, according to 3GPP TS 38.413 v.18.0.0. o The trigger for initiating a connection setup is a notification about an O&M operation of unlocking the term point to the given AMF. The Nwlf-Ng entity subscribes for the respective notification. For X2-C, link to eNBs: the connection setup can be initiated from any side, depending on the use case. For example, for the purpose of NR-leg setups for LTE-NR dual connectivity (EN-DC), it is always the eNB that initiates the X2-C connection setup.
[0044] For Xn-C, link to other gNBs: it can be any of the gNBs initiating the connection o The trigger for initiating an outgoing connection setup is a notification about an O&M operation of unlocking the term point to the given gNB. The Nwlf- Xn entity subscribes for the respective notification o For an incoming connection setup, the initiator gNB usually fetches the IP address of the other gNB via the AMF by contacting the target gNB itself For E1, link to gNB-CU-UPs: the connection setup can be initiated from any side, depending on the use case. Typically, it is the gNB-CU-CP that initiates the connection setup towards a gNB-CU-UP, triggered by the addition of a new gNB- CU-UP to the gNB-CU-UP pool used by the gNB-CU-CP. o The trigger for initiating a connection setup is a notification about the registration of a CU-UP service in Service Discovery. The Nwlf-E1 entity subscribes to the respective notification.
[0045] For F1-C, link to gNB-DUs: the gNB-DU is the one initiating the setup of the F1-C connection, according to 3GPP TS 38.473 v.18.0.0.
[0046] SUMMARY
[0047] As part of developing embodiments herein one or more problems have been identified.
[0048] The cloud platform and hardware underneath are quite unreliable, such as about 99.9% availability. Cloud platform software and cloud hardware may often fail or be disrupted due to, e.g., maintenance or upgrades, which leads to microservice restart or automated move of a microservice to another machine and starting it there, such as rescheduling of a Pod to another worker in Kubernetes. On the other hand, cloud deployments offer almost limitless scalability since hundreds of machines are available for running microservices.
[0049] As of today, gNB or functional unit of gNB, like a gNB-CU-CP, software is designed for very reliable hardware (HW) platform and achieve design target of five nines (99.999%) availability. If one simply takes modern gNB SW and runs it in a cloud environment, the base station availability will be bounded by availability of the cloud software and hardware, which is 99.9%. This is well below a design target. To achieve the availability design target for the gNB, one need to change its software architecture such that strong side of cloud deployment is utilized, i.e. , multiple copies of software can be run in parallel onto multiple machines increasing availability of a service. This also introduces a possibility for flexible capacity scaling but requires support for load distribution and balancing mechanisms. Nothing of that is currently supported by state-of-the-art base station software.
[0050] Moreover, there is no load distrbution solution that is generic enough to fit all needs in terms of outgoing as well as incoming connection distribution among replica units.
[0051] As explained in background section, current software architecture does not support distributed deployment of multiple connection interface units over multiple machines nor load distribution.
[0052] A load balancer offered by Kubernetes can balance incoming connections from peer nodes on a Transmission Control Protocol / lnternet Protocol (TCP / IP) stack level but does not have balancing based on network entity-specific metrics, e.g., number of AMFs, gNB-CU-UPs, gNBs, eNBs and gNB-DUs connected. Kubernetes also doesn’t support load balancing of outgoing connections.
[0053] An object of embodiments herein is to provide a mechanism that handles communication, such as connection establishments, in an efficient manner.
[0054] According to an aspect the object is achieved, according to some embodiments herein, by providing a method performed by a replica unit for handling communication in a wireless communication network. The replica unit obtains an indication of triggering a load distribution between replica units. The replica unit selects a candidate replica unit from a database unit, based on one or more criteria. The replica unit transmits a response indication to a network entity, wherein the response indication is based on the selection.
[0055] According to another aspect the object is achieved, according to some embodiments herein, by providing a method performed by a database unit for handling communication in a wireless communication network. The database unit stores data related to one or more replica units in the wireless communication network, wherein the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units.
[0056] According to yet another aspect the object is achieved, according to some embodiments herein, by providing a system comprising a database unit and one or more replica units for handling communication in a wireless communication network. The database unit comprises stored data related to the one or more replica units in the wireless communication network, and the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units. One (or more) replica unit out of the one or more replica units is configured to obtain an indication of triggering a load distribution between the one or more replica units. The one replica unit is configured to select the candidate replica unit from the database unit; and to transmit a response indication to a network entity, wherein the response indication is based on the selection.
[0057] According to still another aspect the object is achieved, according to some embodiments herein, by providing a replica unit for handling communication in a wireless communication network. The replica unit is configured to obtain an indication of triggering a load distribution between replica units. The replica unit is configured to select a candidate replica unit from a database unit, based on one or more criteria. The replica unit is configured to transmit a response indication to a network entity, wherein the response indication is based on the selection.
[0058] According to yet still another aspect the object is achieved, according to some embodiments herein, by providing a database unit for handling communication in a wireless communication network. The database unit is configured to store data related to one or more replica units in the wireless communication network, wherein the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units.
[0059] It is furthermore provided herein a computer program product comprising instructions, which, when executed on at least one processor, cause the at least one processor to carry out the methods herein, as performed by the replica unit or the database unit, respectively. It is additionally provided herein a computer-readable storage medium, having stored thereon a computer program product comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the methods herein, as performed by the replica unit or the database unit, respectively.
[0060] Embodiments herein disclose replica units, also referred to as replicas, e.g., microservices responsible for radio network node interface termination such as gNB-Cll- CP interfaces termination, which are copies of a microservice responsible, for example, for one gNB-CU-CP interface handling, wherein a replica unit executes a distributed load balancing algorithm.
[0061] One or more replica units may read the database unit to find the data about, for example, the load of the other replica units, and may execute a load balancing algorithm - whereby it either “assigns” itself as the handler of a network entity, such as a peer node, and establishes corresponding interface connection or it decides to let other replica units handle the available network entity - and may update the database according to the outcome of the distributed load balancing algorithm.
[0062] The solution allows multiple copies of a microservice, i.e. , replica units, responsible, for example, for one radio network node interface to run onto multiple machines and to perform load balancing without one central function. This increases availability of radio network node interfaces, such as gNB-CU-CP interfaces, and enable their scalability, such that more interface capacity can be added by introducing more copies of the same program running on different machines in a cloud environment. This will thus provide a mechanism that handles communication, such as handle connection establishments, in an efficient manner.
[0063] BRIEF DESCRIPTION OF THE DRAWINGS
[0064] Examples of embodiments herein are described in more detail with reference to the attached drawings in which:
[0065] Fig. 1 shows methods to deploy applications in containers or pods in Kubernetes according to prior art;
[0066] Fig. 2 shows a Service Discovery process according to prior art;
[0067] Fig. 3 shows a 5G NR architecture with focus on gNB functional split according to prior art;
[0068] Fig. 4 shows respective network interface entities in a network node;
[0069] Fig. 5 shows a schematic overview depicting a wireless communication network according to embodiments herein;
[0070] Fig. 6a is a combined flowchart and signalling scheme according to some embodiments herein;
[0071] Fig. 6b is a combined flowchart and signalling scheme according to some embodiments herein;
[0072] Fig. 7 shows a flowchart illustrating a method performed by a replica unit according to embodiments herein;
[0073] Fig. 8 shows a flowchart illustrating a method performed by a database unit according to embodiments herein;
[0074] Fig. 9 shows an overview depicting a method according to some embodiments herein; Fig. 10 shows an overview depicting a method according to some embodiments herein; Fig. 11 shows an overview depicting a method according to some embodiments herein; Fig. 12 shows an overview depicting a method according to some embodiments herein;
[0075] Fig. 13 shows an overview depicting a method according to some embodiments herein;
[0076] Fig. 14 shows an overview depicting a method according to some embodiments herein;
[0077] Fig. 15 shows an overview depicting a method according to some embodiments herein;
[0078] Fig. 16 shows a block diagram depicting embodiments of a system according to embodiments herein;
[0079] Fig. 17 shows a block diagram depicting embodiments of a replica unit according to embodiments herein;
[0080] Fig. 18 shows a block diagram depicting embodiments of a database unit according to embodiments herein;
[0081] Fig. 19 schematically illustrates embodiments of a communication system, Fig. 20 is a generalized block diagram of embodiments of a UE, Fig. 21 is a generalized block diagram of embodiments of a network node, and Fig. 22 is a generalized block diagram of embodiments of a virtualization environment.
[0082] DETAILED DESCRIPTION
[0083] Embodiments herein relate to communication networks in general. Fig. 5 is a schematic overview depicting a wireless communication network 1. The wireless communication network 1 may comprise, e.g., an access network (AN) and a core network (CN). The wireless communication network may comprise logical processing units such as servers or server farms providing computing capacity and may comprise a cloud environment comprising computing capacity in one or more clouds. The wireless communication network may use one or a number of different technologies, such as packet communication, Wi-Fi, Long Term Evolution (LTE), LTE-Advanced, Sixth Generation (6G), NR, Wideband Code Division Multiple Access (WCDMA), Global System for Mobile communications / enhanced Data rate for GSM Evolution (GSM / EDGE), Worldwide Interoperability for Microwave Access (WiMax), or Ultra Mobile Broadband (UMB), just to mention a few possible implementations.
[0084] The wireless communication network 1 may comprise a system 100 such as a CU-CP comprising one or more replica units, such as a replica unit 10 e.g., an interface unit such as a microservice for handling connectivity in the wireless communication network, e.g., an interface unit that communicates via or within one or more Access Networks (AN), e.g., RAN, and / or one or more core networks (CN) with a network entity 11. The network entity 11 may comprise an eNB, a gNB, a gNB-DU, a gNB-CU-UP, a core network node such as a NF node, a peer node or similar. The system 100 further comprises a database unit 12 for storing data of different replica units such as a shared database storage.
[0085] The wireless communication network 1 may further comprise a service discovery node or an O&M node configured to manage and / or control communication in the wireless communication network.
[0086] The network entity 11 and the system 100 may comprise standalone entities or collocated entities but logically separated within a computer server, such as a network node, a server, a function, a distributed function or similar.
[0087] As stated above, the system 100 may comprise or be a part of a radio network node or similar. The system 100 may provide, e.g., radio coverage over a geographical area, a service area, or a cell, of a radio access technology (RAT), such as NR, LTE, WiFi, WiMAX or similar. The system 100 may thus be a transmission and reception point, a computational server, a base station e.g. a network node such as a satellite, a Wireless Local Area Network (WLAN) access point or an Access Point Station (AP STA), an access node, an access controller, a radio base station such as a NodeB, an evolved Node B (eNB, eNodeB), a gNodeB (gNB), a base transceiver station, a baseband unit, an Access Point Base Station, a base station router, a transmission arrangement of a radio base station, a stand-alone access point or any other network unit or node depending e.g. on the radio access technology and terminology used.
[0088] According to embodiments herein the replica unit 10 obtains an indication of triggering a load distribution between replica units. The replica unit 10 selects a candidate replica unit from the database unit 12, based on one or more criteria. For example, the replica unit 10 may read the data related to the one or more criteria from the database unit 12. The replica unit 10 further transmits a response indication to the network entity 11, wherein the response indication is based on the selection. The response indication may indicate the selected candidate replica unit.
[0089] Embodiments herein relate to interface handling and load balancing of connections from the system 100, such as a gNB-CU-CP, towards the respective external network entity 11 also referred to as peer, peer node, remote peer such as gNB-DU, gNB-CU-UP, AMF, gNB, eNB, among multiple gNB-CU-CP endpoints for the respective interface. One or more interfaces towards the different network entities may be used such as F1-C, E1, NG-C, Xn-C, and / or X2-C.
[0090] Embodiments herein provide multiple replica units of a microservice responsible for one gNB-CU-CP interface handling, where connections may be distributed among the replica units by use of one or more criteria. The selection of replica units may be executed periodically by every replica unit individually to achieve a target distribution of the connections to the different network entities. Moreover, until a certain load level or other defined criterion, a replica unit may stay idle and may not take a load. To exchange the data of the different replica units the database unit 12 is used.
[0091] Embodiments herein provide one or more replica units of a microservice responsible for one or more connection interfaces to run, e.g., onto multiple machines, for performing load balancing without one central function. This increase availability of interfaces and enable their scalability, such that more interface capacity can be added by introducing more copies of the same program running on different machines in a cloud environment.
[0092] Fig. 6a is combined flowchart and signalling scheme according to some embodiment herein.
[0093] Action 601. The replica unit 10 may obtain a trigger to initiate a load distribution between replica units according to embodiments herein. The replica unit 10 may perform the load distribution in a periodical fashion, or this may be triggered by a request for a gNB IP address from the network entity 11.
[0094] Action 602. The replica unit 10 may check data in the database (DB) unit 12. The replica unit 10 may read the data related to the one or more criteria in the database unit 12. The one or more criteria may comprise or may be associated with a load, a time stamp, a configuration, and / or network identity. For example, a criterion may comprise a load threshold, an expired time stamp value or time stamp value older than a threshold, a preferred or allowed network identity, a preferred or allowed range of IP addresses, replica configuration related properties, connection related properties or similar.
[0095] Action 603. The replica unit 10 may select a candidate replica unit from the database unit 12, based on the one or more criteria. The replica unit 10 may select itself as the candidate replica unit. The replica unit 10 may implicitly select another replica unit as the candidate replica unit by not selecting itself as the candidate replica unit.
[0096] Action 604. The replica unit 10 may then update the data in the database unit 12 taking the selection into account. The replica unit 10 may add a time stamp for the replica unit in the database unit 12. The time stamp may indicate the present time stamp.
[0097] Action 605. The replica unit 10 may transmit a response indication to the network entity 11, wherein the response indication is based on the selection. The response indication may indicate selected candidate replica unit. Action 606. The network entity 11 may then use the indicated selected candidate replica unit when communicating, such as use the selected candidate replica unit for connection establishment.
[0098] Fig. 6b is combined flowchart and signalling scheme according to some embodiment herein.
[0099] Action 611. The replica unit 10 may receive a trigger to initiate the load balancing procedure by receiving a trigger from a service discovery and / or a O&M action related to the link to the network entity such as a remote peer, for example, a link for creation or unlock.
[0100] Action 612. The replica unit 10 may check the data in the database unit 12. The replica unit 10 may read the data related to the one or more criteria in the database unit 12. The one or more criteria may comprise or may be associated with a load, a time stamp, a configuration, and / or network identity, as exemplified in action 602.
[0101] Action 613. The replica unit 10 may select a candidate replica unit from the database unit 12, based on the one or more criteria. The replica unit 10 may select another replica unit as the candidate replica unit. As an example, if the current replica unit finds itself to not be, for example, the "least loaded" then the replica unit 10 may simply not initiate a new connection towards an available peer. The next replica unit (waiting on release of access to the DB) that would access the database unit 12 after the lock is released, may find itself as the least loaded and may initiate itself a connection towards an available peer. It could be also that a replica unit is found to have crashed (since its timestamp has not been updated in a while), and then the current replica unit 10 may mark the network entities handled by the crashed replica unit as available and the replica unit 10 may initiate a connection to the network entity 11 but only in case the replica unit 10 finds itself as the least loaded.
[0102] Action 614. The replica unit 10 may then update the data in the database unit 12 taking the selection into account. The replica unit 10 may for example, update its time stamp value in the database unit 12.
[0103] Action 615. The replica unit 10 may transmit the response indication to the network entity 11, wherein the response indication is based on the selection. The response indication may indicate selected candidate replica unit.
[0104] Action 616. The network entity 11 may then use the indicated selected candidate replica unit when communicating. For example, the network entity 11 may use the selected candidate replica unit for connection establishment. The method actions performed by the replica unit 10 for handling communication in the wireless communication network 1 according to embodiments will now be described with reference to a flowchart depicted in Fig. 7. The actions do not have to be taken in the order stated below, but may be taken in any suitable order. Actions performed in some embodiments are marked with dashed boxes. The replica unit 10 may provide or comprise a microservice related to a connection service of a radio network node being an example of the system 100. The connection service may comprise a connection establishment.
[0105] Action 701. The replica unit 10 obtains the indication of triggering the load distribution between replica units. The replica unit 10 may obtain the indication by one or more of the following: receiving a connection indication of establishing a connection from the network entity 11 or from another network entity; periodically triggering obtaining the indication; obtaining a notification from a service discovery about an external peer node being registered and ready to accept one or more connections; and / or obtaining a notification about an O&M action related to a connection to a remote peer node.
[0106] Action 702. The replica unit 10 may read the data related to the one or more criteria in the database unit 12.
[0107] In settings where multiple network entities need to access shared data, one may use the database unit 12 for storing the shared data. The replica unit 10 may need to read and write the data in a mutually exclusive way. This means that each replica unit of a microservice may need to somehow acquire a lock on the database unit 12 before performing its actions on the relevant data. The lock may extend to the whole or parts of the database content, depending on how the database unit 12 is organized and what data needs to be written and read in a serialized fashion by the involved units. When the replica unit 10 is finished with its actions in the database unit 12, the lock may be released, so that other replica units can safely acquire it and access the database unit 12.
[0108] In connection with database units, one often uses the term Atomicity, Consistency, Isolation, Durability (ACID) properties:
[0109] Atomicity guarantees that each transaction is treated as a single "unit", which either succeeds completely or fails completely: if any of the statements constituting a transaction fails to complete, the entire transaction fails, and the database unit is left unchanged.
[0110] Consistency ensures that a transaction can only bring the database unit from one consistent state to another, preserving database invariants. Isolation ensures that concurrent execution of transactions leaves the database unit in the same state that would have been obtained if the transactions were executed sequentially. Isolation is the main goal of concurrency control.
[0111] Durability guarantees that once a transaction has been committed, it will remain committed even in the case of a system failure, e.g., power outage or crash. This usually means that completed transactions, or their effects, are recorded in nonvolatile memory.
[0112] In connection with embodiments herein also referred to as the “Replica coordination” concept, the relevant properties may be one or more of the following: Atomicity, Consistency and Isolation.
[0113] The involved replica units may need to atomically perform all or none of the steps of the database transaction - e.g., writing a (own) timestamp, reading timestamp of other replica units, changing “handled” status of network entities such as remote peers, etc.
[0114] In addition, replica units may need to perform their actions in Isolation from each other, thereby the need for locking and mutual exclusive access.
[0115] Also, the database content needs to be Consistent at all times, so that the results of one replica unit’s actions - if fully performed - are visible to the next replica unit which acts based on the seen information.
[0116] Embodiments herein may use distributed locking. Different locking algorithms may be used, e.g., One-Phase Locking, Two phase-locking, etc., as long as the properties Atomicity, Consistency and Isolation may be fulfilled.
[0117] One-phase Locking Protocol: In this method, each transaction locks an item before use and releases the lock as soon as it has finished using it. This locking method provides for maximum concurrency but does not always enforce serializability.
[0118] Two-phase Locking Protocol: In this method, all locking operations precede the first lock-release or unlock operation. The transaction comprises of two phases. In the first phase, a transaction only acquires all the locks it needs and do not release any lock. This is called the expanding or the growing phase. In the second phase, the transaction releases the locks and cannot request any new locks. This is called the shrinking phase. Every transaction that follows two-phase locking protocol is guaranteed to be serializable. However, this approach provides low parallelism between two conflicting transactions.
[0119] Action 703. The replica unit 10 selects the candidate replica unit from the database unit 12, based on the one or more criteria. The replica unit 10 may select the candidate replica unit based on data fetched from database unit 12. The one or more criteria may comprise one or more of: a load, a time stamp, a configuration, and / or network identity. As stated above, the criterion may comprise a load threshold, an expired time stamp value or time stamp value older than threshold, a preferred or allowed network identity, a preferred or allowed range of IP addresses, replica configuration related properties, connection related properties or similar.
[0120] Action 704. The replica unit 10 may update the database unit 12 with updated data based on the selection.
[0121] Action 705. The replica unit 10 transmits the response indication to the network entity 11, wherein the response indication is based on the selection. The response indication may indicate the selected candidate replica unit. The response indication may comprise an IP-address and / or a rejection of the trigger such as a request.
[0122] The method actions performed by the database unit 12 for handling communication in the wireless communication network 1 according to embodiments will now be described with reference to a flowchart depicted in Fig. 8. The actions do not have to be taken in the order stated below, but may be taken in any suitable order. Actions performed in some embodiments are marked with dashed boxes. The replica unit 10 may provide or comprise a microservice related to a connection service of a radio network node. The connection service may comprise a connection establishment.
[0123] Action 801. The database unit 12 stores the data related to the one or more replica units in the wireless communication network. The data is associated with the one or more criteria for selection of a candidate replica unit out of the one or more replica units. The one or more criteria may comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
[0124] Action 802. The database unit 12 may update or be updated with updated data from one replica unit.
[0125] Embodiments herein provide multiple replica units of, for example, Nwlf-Z microservice, wherein respective replica unit 10 may become a separate failure isolated entity which can fail separately from all other replica units, as well as from all other microservices realizing the system 100 such as a gNB-CU-CP.
[0126] In such a design, for resilience purposes, multiple (independently failing) replica units per service (Nwlf-Z) are provided, see Fig. 9. Fig. 9 shows a program realization of interface handling with multiple replica units.
[0127] As illustrated in Fig. 9, the respective network entities 11 , such as AMFs for Nwlf-Ng, gNB-CU-UPs for Nwlf-E1, eNBs for Nwlf-X2, gNBs for Nwlf-Xn, gNB-DUs for Nwlf-F1, are no longer connected to one microservice. Instead, the respective connections, such as NG-C, E1, X2-C, Xn-C, F1-C, are distributed among the replica units of the respective Nwlf-Z microservice.
[0128] For example, if at some point in time, there are six AMFs connected to the system 100 such as CLI-CP and there are two replica units of Nwlf-Ng, Replica 1 of Nwlf-Ng handles three of the AMFs and Replica 2 of Nwlf-Ng handles the other three of the AMFs.
[0129] There can be several approaches to distribute connections between replica units:
[0130] • An equal distribution: The assumption can be that all replica units are run on hardware (machines) with equal capabilities.
[0131] • A non-equal distribution: This may be applied if replica units are not run on same hardware, and a replica unit can get knowledge about underlying hardware capabilities it runs on. o Baseline load: when information about underlying hardware is not available or when hardware is considered to meet expectations. o Take more load: For example, faster central processing unit (CPU), faster or more memory, more reliable network interfacing and hardware components. In this case the replica unit may indicate its advantages to other replica units and take more load compared to others. o Take less load: opposite to previous example, when replica unit takes less load due to weak hardware it is deployed on, such as slow CPU, slow memory etc.
[0132] Note: if all replica units are deployed on same hardware, or when a replica unit cannot get hold of information on underlying hardware, this approach may work as an “equal distribution” case.
[0133] The distribution of connections among replica units may be maintained at all times, even when some replica units crash and may be absent for a while, as well as when a replica unit recovers after a crash or is simply added to the set of replica units.
[0134] There is a need for a load distribution such as a “load balancing” algorithm applicable for all replica units and may be executed independently by each replica unit of the microservice such as respective Nwlf-Z component.
[0135] Load may be expressed in number of connections, but load may also be number of public land mobile networks (PLMN), UEs, peak / average throughput, packets / frames per second, and / or other metrics of exchange intensity. An illustration of an architecture in Fig. 10, wherein an example of connection handling by multiple replica units 10’ is shown. According to some embodiments herein, the load distribution may be executed periodically by one or more replica units individually, in order to achieve an equal distribution of the connections to the different network entities 1 T.
[0136] For example, one or each replica unit of a microservice, executes the distributed load balancing algorithm:
[0137] In a periodical fashion, or
[0138] Triggered by a notification from service discovery about a new external network entity being registered and ready to accept connections, or
[0139] Triggered by a notification about some O&M action related to the link to a network entity, such as e.g. creation or unlock, or Triggered by a request for a gNB IP address.
[0140] In all the above cases, the database unit 12 such as a Replica coordination database 12’ may be used to know the load, in terms of handled connections / external network entites, for every replica unit.
[0141] Fig. 11 shows an example of a periodically triggered replica unit coordination and load balancing. In detail, these are the actions a replica unit of Nwlf-Z may execute when periodically checking the database unit 12 for any changes - e.g. crashed replica unit(s) for which some interface Z connections / peers become unhandled / available:
[0142] 1. Try to lock database unit 12 for exclusive access: If another replica unit is currently accessing the database unit 12, wait. When the other replica unit releases the lock on the database unit 12, acquire lock for exclusive access. See action 1101 using a periodic check timer.
[0143] 2. Check whether any replica unit is unavailable (removed / crashed / not responding etc.). For example, a second replica unit has not updated its timestamp in the database for a predetermined time or time interval, see action 1102. a. If any replica unit became unavailable since last time, move all connections / peers handled by the crashed replica to a list of unhandled peers, see action 1103.
[0144] 3. If there are peers in list of unhandled / available peers, run load balancing algorithm, see action 1104. a. if any peer is chosen for connection establishment, start connection establishment procedure and:
[0145] ■ Increment load value for current replica unit.
[0146] ■ Remove peer from list of unhandled / available peers. b. If no peer is chosen, do nothing, some other replica unit - the least loaded one - will pick up or serve some peer.
[0147] 4. If there was no replica unit that crashed since last time and there are no unhandled peers, then do nothing.
[0148] 5. Release database lock.
[0149] 6. If any peer has been selected for connecting, start connection establishment procedure, see action 1105.
[0150] Fig. 12 shows an example of a notification triggered replica coordination and load balancing.
[0151] In case the trigger is a Notification from Service Discovery or Unlock TermPointToPeer, see actions 1201 and 1202, the actions of the Nwlf-Z replica unit are very similar as in Fig. 11, with one exception: namely, the newly added / unlocked peer (Peer_X) is added to the list of Unhandled Peers, in case Peer_X is not already in the list. Note that all replica units receive notifications, since they may all subscribe, but only one replica unit acts on the respective notification by adding the new Peer. So, action 1 below will be true for only one of the replica units acting on the respective notification.
[0152] 1. Try to lock database for exclusive access: If another replica unit is currently accessing the database, wait. When the other replica unit releases the lock on the database, acquire lock for exclusive access.
[0153] 2. If Peer_X is not already in the list of Unhandled Peers and Peer_X is not handled by any other replica unit, add Peer_X in list of Unhandled Peers, see action 1205.
[0154] 3. Check whether any replica unit is unavailable (removed / crashed / not responding etc.). For example, it has not updated its timestamp in the database for a predetermined time, see action 1203. a. If any replica unit became unavailable since last time, move all connections / peers handled by the crashed replica unit to a list of unhandled peers, see action 1204. 4. If there are peers in list of unhandled / available peers, run load balancing algorithm, see action 1206 and description below. a. if any peer is chosen for connection establishment, start connection establishment procedure and:
[0155] ■ Increment load value for current replica unit.
[0156] ■ Remove peer from list of unhandled / available peers. b. If no peer is chosen, do nothing, some other replica unit - the least loaded one - will pick up some peer.
[0157] 7. If there was no replica unit that crashed since last time and there are no unhandled peers, then do nothing.
[0158] 8. Release database lock.
[0159] 9. If any peer has been selected for connecting, start connection establishment procedure, see action 1207.
[0160] Fig. 13 shows a load balancing algorithm. The load balancing algorithm may be executed periodically (as indicated in Fig. 11) or be triggered by some notification from Service Discovery or O&M (as indicated in Fig. 12 ), and receives as input the list of Unhandled network entities, exemplified as Peers, and the load (in terms of handled connections) of all replica units of Nwlf-Z. The output is Peer_Y (which can be any Peer from the list of Unhandled Peers) - if the current replica unit is (one of) the least loaded, or “No connection” if the replica unit is not (one of) the least loaded. See illustration in Fig. 13.
[0161] Fig. 14 shows a Load balancing based on property. A variation of the above load balancing algorithm see Fig. 13 where any Peer_Y was eligible to select as long as the given replica unit is the least loaded, there are cases where the load balancing of peers / connections among replica units aims to distributing peers with given properties equally between replica units. In other words, the balancing can be made for resilience purposes, in the sense that network entities, such as connections / peers, with the same property should not all be handled by the same replica unit. Network entities with same property also need to be balanced between the replica units.
[0162] For example, such a case is for AMFs and their equal distribution among Nwlf- Ng replica units. It could be so that not all AMFs handle the same PLMNs, and in such a case the idea is to not let one replica unit connect to all AMFs handling a given PLMN. In other words, connections associated with one PLMN must be equally distributed between replica units.
[0163] Other examples of property can be IP-address range, or network slices.
[0164] A sketch of the load balancing algorithm where the “Prop” (a generalization from PLMN and AMF) property is considered can be seen in Fig. 14.
[0165] The algorithm may take as input: the loads of all replica units, the loads of all replica units with regards to number of handled Peers with a given property Prop, the number of Peers with a given property Prop that are handled by any replica unit.
[0166] The algorithm exists without selecting any Peer_Y if the replica unit executing the algorithm is not among the least loaded.
[0167] If the replica unit is among the least loaded, the selected Peer_Y is one with a given property Prop for which the given replica unit does not have yet any Peer in its list. Otherwise, a Peer_Y with a property Prop handled by the least number of Peers is selected.
[0168] Endpoint address fetching triggered load balancing:
[0169] In cases where the Nwlf-Z replica unit is triggered to return an endpoint address to a source eNB (in case of X2-C / Nwlf-X2) or a source gNB (in case of Xn-C / Nwlf-Xn), the replica unit returns its own endpoint address if it is the lowest loaded replica, or the address of some other replica unit with lowest load, otherwise. The X2-C (source eNB) and Xn-C (source gNB) are the cases where it is the external Peer that initiates the connection (X2-C or Xn-C) setup towards the gNB (Nwlf component for X2-C is Nwlf- X2, and Nwlf component for Xn-C is Nwlf-Xn)
[0170] As an example, the 3GPP procedure used to fetch a gNB IP address by a source gNB in order to setup an Xn-C connection, is the RAN Uplink / Downlink Configuration Transfer NGAP procedure. See illustration in Fig. 15. Fig. 15 shows an endpoint address fetching sequence. Action 1501. The RAN Uplink / Downlink Configuration Transfer is transmitted to a first replica unit, ReplA. Action 1502. Lookup database for least loaded replica and return IP address of second replica unit, RepIB. Action 1503. The RAN Uplink / Downlink Configuration Transfer response is transmitted to the source gNB. Action 1504. The source gNB transmits a setup request to the second replica. Action 1505. The source gNB receives a setup response from the second replica. Action 1506. The second replica unit updates the load.
[0171] Replica unit recovery:
[0172] As mentioned in earlier sections when one or more replica units crashes, the network entities handled by that crashed replica unit are load may be balanced between the remaining replica units.
[0173] However, when a replica unit that has crashed recovers, or a replica unit is newly added and there are no Unhandled peers available for the new replica unit to initiate connection to - since, from a load balancing perspective, this replica unit would be eligible to handle new connections because it is the least loaded - the other replica units may need to act on their own handled network entities in order to be able to rebalance the load.
[0174] One may choose some network entity from a replica unit, e.g., the most loaded replica unit of the ones not newly recovered or added, and may start to gracefully “starve out” that connection, by stopping new UEs to be allocated to use the respective network entity, and for UEs already using that network entity to release them or move them to use other network entities. After such a connection is completely starved out, the connection can be removed by the concerned replica unit and the network entity placed in the list of Unhandled peers. When the newly added / recovered - and thus least loaded - replica unit may execute the actions above, and the respective replica unit may find an unhandled network entity and it will initiate connection to that network entity.
[0175] In principle, embodiments herein may be applicable to any long living Stream Control Transmission Protocol (SCTP) connections used in 3GPP interfaces, for example, in gNB-CU-UP, gNB-DU or 5G Core, as well as for other non-3GPP interfaces using SCTP as transport protocol.
[0176] Moreover, even though we primarily give examples for Kubernetes as Cloud orchestration system, embodiments herein may work in other program realization of distributed computing systems, like Azure, AWS, Google cloud, Open Shift or similar. Furthermore, embodiments are also applicable in setups where no explicit container orchestration system is involved, e.g., where the programs simply run as separate processes and failure domains and replication is applied for resilience purposes. Fig. 16 is a block diagram depicting the system 100 for handling communication in the wireless communication network 1 according to embodiments herein. The system 100 may be a gNB-CU-CP.
[0177] The system comprises the database unit 12 and one or more replica units 10 for handling communication in the wireless communication network 1. The database unit 12 comprises the stored data related to the one or more replica units in the wireless communication network 1. The data is associated with the one or more criteria for selection of a candidate replica unit out of the one or more replica units. One replica unit out of the one or more replica units is configured to obtain an indication of triggering a load distribution between the one or more replica units. The one replica unit is configured to select the candidate replica unit from the database unit 12; and transmit the response indication to the network entity 11, wherein the response indication is based on the selection. The network entity 11 may comprise a peer node, a remote peer, such as gNB-Dll, gNB-CU-UP, AMF, gNB, or eNB.
[0178] Fig. 17 is a block diagram depicting the replica unit 10 for handling communication in the wireless communication network 1 according to embodiments herein.
[0179] The replica unit 10 may comprise processing circuitry 1701, e.g. one or more processors, configured to perform the methods herein.
[0180] The replica unit 10 and / or the processing circuitry 1701 is configured to obtain the indication of triggering the load distribution between replica units. The replica unit 10 and / or the processing circuitry 1701 may be configured to obtain the indication by one or more of the following: receiving a connection indication of establishing a connection from the network entity 11 or from another network entity; periodically triggering obtaining the indication; obtaining a notification from a service discovery about an external peer node being registered and ready to accept one or more connections; and / or obtaining a notification about an O&M action related to a connection to a remote peer node.
[0181] The replica unit 10 and / or the processing circuitry 1701 may be configured to read the data related to the one or more criteria in the database unit 12.
[0182] The replica unit 10 and / or the processing circuitry 1701 is configured to select the candidate replica unit from the database unit 12, based on the one or more criteria. The replica unit 10 and / or the processing circuitry 1701 may be configured to select the candidate replica unit based on data fetched from database unit 12. The one or more criteria may comprise one or more of: a load, a time stamp, a configuration, and / or network identity. The replica unit 10 and / or the processing circuitry 1701 may be configured to update the database unit 12 with updated data based on the selection.
[0183] The replica unit 10 and / or the processing circuitry 1701 is configured to transmit the response indication to the network entity 11, wherein the response indication is based on the selection. The response indication may indicate the selected candidate replica unit. The response indication may comprise an IP-address and / or a rejection of the request.
[0184] The replica unit 10 may comprise a memory 1705. The memory 1705 comprises one or more units to be used to store data on, such as data packets, indications, microservice, response indications, events and applications to perform the methods disclosed herein when being executed, and similar. Furthermore, the replica unit 10 may comprise a communication interface 1706 such as comprising a transmitter, a receiver, a transceiver and / or one or more antennas.
[0185] The methods according to the embodiments described herein for the replica unit 10 are respectively implemented by means of e.g. a computer program product 1707 or a computer program, comprising instructions, i.e. , software code portions, which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the replica unit 10. The computer program product 1707 may be stored on a computer-readable storage medium 1708, e.g., a disc, a universal serial bus (USB) stick or similar. The computer- readable storage medium 1708, having stored thereon the computer program product, may comprise the instructions which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the replica unit 10. In some embodiments, the computer-readable storage medium may be a transitory or a non-transitory computer-readable storage medium. Thus, embodiments herein may disclose the replica unit 10 for handling communication in a wireless communication network, wherein the replica unit 10 comprises processing circuitry and a memory, said memory comprising instructions executable by said processing circuitry whereby said replica unit 10 is operative to perform any of the methods herein.
[0186] Fig. 18 is a block diagram depicting the database unit 12 for handling communication in the wireless communication network 1 according to embodiments herein.
[0187] The database unit 12 may comprise processing circuitry 1801 , e.g. one or more processors, configured to perform the methods herein. The database unit 12 and / or the processing circuitry 1801 is configured to store the data related to the one or more replica units in the wireless communication network. The data is associated with the one or more criteria for selection of a candidate replica unit out of the one or more replica units. The one or more criteria may comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
[0188] The database unit 12 and / or the processing circuitry 1801 may be configured to update or be updated with updated data from one replica unit.
[0189] The database unit 12 may comprise a memory 1805. The memory 1805 comprises one or more units to be used to store data on, such as data related to one or more replica units, data related to the one or more criteria, indications, microservice, response indications, events and applications to perform the methods disclosed herein when being executed, and similar. Furthermore, the database unit 12 may comprise a communication interface 1806 such as comprising a transmitter, a receiver, a transceiver and / or one or more antennas.
[0190] The methods according to the embodiments described herein for the database unit 12 are respectively implemented by means of e.g. a computer program product 1807 or a computer program, comprising instructions, i.e. , software code portions, which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the database unit 12. The computer program product 1807 may be stored on a computer-readable storage medium 1808, e.g., a disc, a universal serial bus (USB) stick or similar. The computer- readable storage medium 1808, having stored thereon the computer program product, may comprise the instructions which, when executed on at least one processor, cause the at least one processor to carry out the actions described herein, as performed by the database unit 12. In some embodiments, the computer-readable storage medium may be a transitory or a non-transitory computer-readable storage medium. Thus, embodiments herein may disclose the database unit 12 for handling communication in a wireless communication network, wherein the database unit 12 comprises processing circuitry and a memory, said memory comprising instructions executable by said processing circuitry whereby said database unit 12 is operative to perform any of the methods herein.
[0191] Fig. 19 shows an example of a communication system QQ100 in accordance with some embodiments. In the example, the communication system QQ100 includes a telecommunication network QQ102 that includes an access network QQ104, such as a radio access network (RAN), and a core network QQ106, which includes one or more core network nodes QQ108. The access network QQ104 includes one or more access network nodes, such as network nodes QQ110a and QQ110b (one or more of which may be generally referred to as network nodes QQ110 being examples of the radio network nodes), or any other similar 3rd Generation Partnership Project (3GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network QQ102 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network QQ102 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network QQ102, including one or more network nodes QQ110 and / or core network nodes QQ108.
[0192] Examples of an ORAN network node include an open radio unit (0-Rll), an open distributed unit (0-Dll), an open central unit (O-CU), including an O-CU control plane (O- CLI-CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an A1, F1, W1, E1 , E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an 0-2 interface defined by the O-RAN Alliance or comparable technologies. The network nodes QQ110 facilitate direct or indirect connection of user equipment (UE), such as by connecting UEs QQ112a, QQ112b, QQ112c, and QQ112d (one or more of which may be generally referred to as UEs QQ112 or UE 10) to the core network QQ106 over one or more wireless connections.
[0193] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system QQ100 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system QQ100 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0194] The UEs QQ112 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes QQ110 and other communication devices. Similarly, the network nodes QQ110 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs QQ112 and / or with other network nodes or equipment in the telecommunication network QQ102 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network QQ102.
[0195] In the depicted example, the core network QQ106 connects the network nodes QQ110 to one or more host computing systems, such as host QQ116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network QQ106 includes one more core network nodes (e.g., core network node QQ108) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node QQ108. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF). The host QQ116 may be under the ownership or control of a service provider other than an operator or provider of the access network QQ104 and / or the telecommunication network QQ102. The host QQ116 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
[0196] As a whole, the communication system QQ100 of Figure 19 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0197] In some examples, the telecommunication network QQ102 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network QQ102 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network QQ102. For example, the telecommunications network QQ102 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0198] In some examples, the UEs QQ112 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network QQ104 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network QQ104. Additionally, a UE may be configured for operating in single- or multi- RAT or multi-standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0199] In the example, the hub QQ114 communicates with the access network QQ104 to facilitate indirect communication between one or more UEs (e.g., UE QQ112c and / or QQ112d) and network nodes (e.g., network node QQ110b). In some examples, the hub QQ114 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub QQ114 may be a broadband router enabling access to the core network QQ106 for the UEs. As another example, the hub QQ114 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes QQ110, or by executable code, script, process, or other instructions in the hub QQ114. As another example, the hub QQ114 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub QQ114 may be a content source. For example, for a UE that is a VR device, display, loudspeaker, or other media delivery device, the hub QQ114 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub QQ114 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub QQ114 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0200] The hub QQ114 may have a constant / persistent or intermittent connection to the network node QQ110b. The hub QQ114 may also allow for a different communication scheme and / or schedule between the hub QQ114 and UEs (e.g., UE QQ112c and / or QQ112d), and between the hub QQ114 and the core network QQ106. In other examples, the hub QQ114 is connected to the core network QQ106 and / or one or more UEs via a wired connection. Moreover, the hub QQ114 may be configured to connect to an M2M service provider over the access network QQ104 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes QQ110 while still connected via the hub QQ114 via a wired or wireless connection. In some embodiments, the hub QQ114 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node QQ110b. In other embodiments, the hub QQ114 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node QQ110b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0201] Fig. 20 shows a UE QQ200 in accordance with some embodiments. The UE QQ200 presents additional details of some embodiments of the UE QQ112 of Figure 19. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage / playback device, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), an Augmented Reality (AR) or Virtual Reality (VR) device, wireless customer-premise equipment (CPE), vehicle, vehiclemounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0202] A UE may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0203] The UE QQ200 includes processing circuitry QQ202 that is operatively coupled via a bus QQ204 to an input / output interface QQ206, a power source QQ208, a memory QQ210, a communication interface QQ212, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in Fig. 20. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0204] The processing circuitry QQ202 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory QQ210. The processing circuitry QQ202 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry QQ202 may include multiple central processing units (CPUs).
[0205] In the example, the input / output interface QQ206 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE QQ200. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0206] In some embodiments, the power source QQ208 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source QQ208 may further include power circuitry for delivering power from the power source QQ208 itself, and / or an external power source, to the various parts of the UE QQ200 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source QQ208. Power circuitry may perform any formatting, converting, or other modification to the power from the power source QQ208 to make the power suitable for the respective components of the UE QQ200 to which power is supplied.
[0207] The memory QQ210 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory QQ210 includes one or more application programs QQ214, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data QQ216. The memory QQ210 may store, for use by the UE QQ200, any of a variety of various operating systems or combinations of operating systems.
[0208] The memory QQ210 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUlCC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory QQ210 may allow the UE QQ200 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory QQ210, which may be or comprise a device-readable storage medium.
[0209] The processing circuitry QQ202 may be configured to communicate with an access network or other network using the communication interface QQ212. The communication interface QQ212 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna QQ222. The communication interface QQ212 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter QQ218 and / or a receiver QQ220 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter QQ218 and receiver QQ220 may be coupled to one or more antennas (e.g., antenna QQ222) and may share circuit components, software or firmware, or alternatively be implemented separately. In the illustrated embodiment, communication functions of the communication interface QQ212 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0210] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface QQ212, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0211] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0212] A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE QQ200 shown in Fig. 20.
[0213] As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-loT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0214] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0215] Fig. 21 shows a network node QQ300 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O- RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU).
[0216] Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0217] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi- cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0218] The network node QQ300 includes a processing circuitry QQ302, a memory QQ304, a communication interface QQ306, and a power source QQ308. The network node QQ300 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node QQ300 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node QQ300 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory QQ304 for different RATs) and some components may be reused (e.g., a same antenna QQ310 may be shared by different RATs). The network node QQ300 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node QQ300, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node QQ300. The processing circuitry QQ302 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node QQ300 components, such as the memory QQ304, to provide network node QQ300 functionality.
[0219] In some embodiments, the processing circuitry QQ302 includes a system on a chip (SOC). In some embodiments, the processing circuitry QQ302 includes one or more of radio frequency (RF) transceiver circuitry QQ312 and baseband processing circuitry QQ314. In some embodiments, the radio frequency (RF) transceiver circuitry QQ312 and the baseband processing circuitry QQ314 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry QQ312 and baseband processing circuitry QQ314 may be on the same chip or set of chips, boards, or units.
[0220] The memory QQ304 may comprise any form of volatile or non-volatile computer- readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device- readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry QQ302. The memory QQ304 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry QQ302 and utilized by the network node QQ300. The memory QQ304 may be used to store any calculations made by the processing circuitry QQ302 and / or any data received via the communication interface QQ306. In some embodiments, the processing circuitry QQ302 and memory QQ304 is integrated.
[0221] The communication interface QQ306 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface QQ306 comprises port(s) / terminal(s) QQ316 to send and receive data, for example to and from a network over a wired connection. The communication interface QQ306 also includes radio front-end circuitry QQ318 that may be coupled to, or in certain embodiments a part of, the antenna QQ310. Radio front-end circuitry QQ318 comprises filters QQ320 and amplifiers QQ322. The radio front-end circuitry QQ318 may be connected to an antenna QQ310 and processing circuitry QQ302. The radio front-end circuitry may be configured to condition signals communicated between antenna QQ310 and processing circuitry QQ302. The radio front-end circuitry QQ318 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry QQ318 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters QQ320 and / or amplifiers QQ322. The radio signal may then be transmitted via the antenna QQ310. Similarly, when receiving data, the antenna QQ310 may collect radio signals which are then converted into digital data by the radio front-end circuitry QQ318. The digital data may be passed to the processing circuitry QQ302. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0222] In certain alternative embodiments, the network node QQ300 does not include separate radio front-end circuitry QQ318, instead, the processing circuitry QQ302 includes radio front-end circuitry and is connected to the antenna QQ310. Similarly, in some embodiments, all or some of the RF transceiver circuitry QQ312 is part of the communication interface QQ306. In still other embodiments, the communication interface QQ306 includes one or more ports or terminals QQ316, the radio front-end circuitry QQ318, and the RF transceiver circuitry QQ312, as part of a radio unit (not shown), and the communication interface QQ306 communicates with the baseband processing circuitry QQ314, which is part of a digital unit (not shown).
[0223] The antenna QQ310 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna QQ310 may be coupled to the radio front-end circuitry QQ318 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna QQ310 is separate from the network node QQ300 and connectable to the network node QQ300 through an interface or port.
[0224] The antenna QQ310, communication interface QQ306, and / or the processing circuitry QQ302 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna QQ310, the communication interface QQ306, and / or the processing circuitry QQ302 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0225] The power source QQ308 provides power to the various components of network node QQ300 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source QQ308 may further comprise, or be coupled to, power management circuitry to supply the components of the network node QQ300 with power for performing the functionality described herein. For example, the network node QQ300 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source QQ308. As a further example, the power source QQ308 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0226] Embodiments of the network node QQ300 may include additional components beyond those shown in Fig. 21 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node QQ300 may include user interface equipment to allow input of information into the network node QQ300 and to allow output of information from the network node QQ300. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node QQ300. In some embodiments providing a core network node, such as core network node 108 of Fig. 19, some components, such as the radio front-end circuitry QQ318 and the RF transceiver circuitry QQ312 may be omitted.
[0227] Fig. 22 is a block diagram illustrating a virtualization environment QQ500 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments QQ500 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment QQ500 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an 0-2 interface. Virtualization may facilitate distributed implementations of a network node, UE, core network node, or host.
[0228] Applications QQ502 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment Q500 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.
[0229] Hardware QQ504 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers QQ506 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs QQ508a and QQ508b (one or more of which may be generally referred to as VMs QQ508), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer QQ506 may present a virtual operating platform that appears like networking hardware to the VMs QQ508.
[0230] The VMs QQ508 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer QQ506. Different embodiments of the instance of a virtual appliance QQ502 may be implemented on one or more of VMs QQ508, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0231] In the context of NFV, a VM QQ508 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, nonvirtualized machine. Each of the VMs QQ508, and that part of hardware QQ504 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs QQ508 on top of the hardware QQ504 and corresponds to the application QQ502.
[0232] Hardware QQ504 may be implemented in a standalone network node with generic or specific components. Hardware QQ504 may implement some functions via virtualization. Alternatively, hardware QQ504 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration QQ510, which, among others, oversees lifecycle management of applications QQ502. In some embodiments, hardware QQ504 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signaling can be provided with the use of a control system QQ512 which may alternatively be used for communication between hardware nodes and radio units.
[0233] Although the computing devices described herein (e.g., UEs, network nodes) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0234] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.
[0235] In some embodiments a more general term “network node” or “network entity” is used and it can correspond to any type of radio network node or any network node, which communicates with a wireless device and / or with another network node. Examples of network nodes are NodeB, Master eNB, Secondary eNB, a network node belonging to Master cell group (MCG) or Secondary Cell Group (SCG), base station (BS), multistandard radio (MSR) radio node such as MSR BS, eNodeB, network controller, radio network controller (RNC), base station controller (BSC), relay, donor node controlling relay, base transceiver station (BTS), access point (AP), transmission points, transmission nodes, Remote Radio Unit (RRU), Remote Radio Head (RRH), nodes in distributed antenna system (DAS), core network node e.g. Mobility Switching Centre (MSC), Mobile Management Entity (MME) etc., Operation and Maintenance (O&M), Operation Support System (OSS), Self-Organizing Network (SON), positioning node e.g. Evolved Serving Mobile Location Centre (E-SMLC), Minimizing Drive Test (MDT), etc.
[0236] In some embodiments, the non-limiting term wireless device or user equipment (UE) is used and it refers to any type of wireless device communicating with a network node and / or with another UE in a cellular or mobile communication system. Examples of UE are target device, device-to-device (D2D) UE, proximity capable UE (aka ProSe UE), machine type UE or UE capable of machine to machine (M2M) communication, PDA, PAD, Tablet, mobile terminals, smart phone, laptop embedded equipped (LEE), laptop mounted equipment (LME), USB dongles etc. The embodiments are described for 5G. However the embodiments are applicable to any RAT or multi-RAT systems, where the UE receives and / or transmit signals (e.g. data) e.g. LTE, LTE FDD / TDD, WCDMA / HSPA, GSM / GERAN, Wi Fi, WLAN, CDMA2000 etc.
[0237] As will be readily understood by those familiar with communications design, functions means or modules may be implemented using digital logic and / or one or more microcontrollers, microprocessors, or other digital hardware. In some embodiments, several or all of the various functions may be implemented together, such as in a single application-specific integrated circuit (ASIC), or in two or more separate devices with appropriate hardware and / or software interfaces between them. Several of the functions may be implemented on a processor shared with other functional components of a wireless device or network node, for example.
[0238] Alternatively, several of the functional elements of the processing means discussed may be provided through the use of dedicated hardware, while others are provided with hardware for executing software, in association with the appropriate software or firmware. Thus, the term “processor” or “controller” as used herein does not exclusively refer to hardware capable of executing software and may implicitly include, without limitation, digital signal processor (DSP) hardware, read-only memory (ROM) for storing software, random-access memory for storing software and / or program or application data, and non-volatile memory. Other hardware, conventional and / or custom, may also be included. Designers of communications devices will appreciate the cost, performance, and maintenance trade-offs inherent in these design choices.
[0239] It will be appreciated that the foregoing description and the accompanying drawings represent non-limiting examples of the methods and apparatus taught herein. As such, the apparatus and techniques taught herein are not limited by the foregoing description and accompanying drawings. Instead, the embodiments herein are limited only by the following claims and their legal equivalents.
Claims
CLAIMS1. A method performed by a replica unit (10) for handling communication in a wireless communication network (1), the method comprising: obtaining (701) an indication of triggering a load distribution between replica units; selecting (703) a candidate replica unit from a database unit (12), based on one or more criteria; and transmitting (705) a response indication to a network entity (11), wherein the response indication is based on the selection.
2. The method according to claim 1, wherein the one or more criteria comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
3. The method according to any of the claims 1-2, further comprising: reading (702) data related to the one or more criteria in the database unit (12).
4. The method according to any of the claims 1-3, further comprising: updating (704) the database unit with updated data based on the selection.
5. The method according to any of the claims 1-4, wherein obtaining (701) the indication comprises one or more of: receiving a connection indication of establishing a connection from the network entity (11) or from another network entity; periodically triggering obtaining the indication; obtaining a notification from a service discovery about an external peer node being registered and ready to accept one or more connections; and / or obtaining a notification about an operation and maintenance, O&M, action related to a connection to a remote peer node.
6. A method performed by a database unit (12) for handling communication in a wireless communication network (1), the method comprising: storing (801) data related to one or more replica units (10) in the wireless communication network (1), wherein the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units (10).
7. The method according to claim 6, wherein the one or more criteria comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
8. The method according to any of the claims 6-7, further comprising: updating (802) the database unit (12) with updated data from one replica unit (10).
9. A system (100) comprising a database unit (12) and one or more replica units (10) for handling communication in a wireless communication network (1), wherein the database unit (12) comprises stored data related to the one or more replica units in the wireless communication network (1), wherein the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units (10); and wherein one replica unit (10) out of the one or more replica units (10) is configured to: obtain an indication of triggering a load distribution between the one or more replica units (10); select the candidate replica unit from the database unit (12); and transmit a response indication to a network entity (11), wherein the response indication is based on the selection.
10. A replica unit (10) for handling communication in a wireless communication network (1), wherein the replica unit (10) is configured to: obtain an indication of triggering a load distribution between replica units; select a candidate replica unit from a database unit (12), based on one or more criteria; and transmit a response indication to a network entity (11), wherein the response indication is based on the selection.
11. The replica unit (10) according to claim 10, wherein the one or more criteria comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
12. The replica unit (10) according to any of the claims 10-11, wherein the replica unit is configured to: read data related to the one or more criteria in the database unit (12).
13. The replica unit (10) according to any of the claims 10-12, wherein the replica unit (10) is configured to: update the database unit (12) with updated data based on the selection.
14. The replica unit (10) according to any of the claims 10-13, wherein the replica unit (10) is configured to obtain the indication by one or more of the following: receiving a connection indication of establishing a connection from the network entity (11) or from another network entity; periodically triggering obtaining the indication; obtaining a notification from a service discovery about an external peer node being registered and ready to accept one or more connections; and / or obtaining a notification about an operation and maintenance, O&M, action related to a connection to a remote peer node.
15. A database unit (12) for handling communication in a wireless communication network, wherein the database unit (12) is configured to: store data related to one or more replica units (10) in the wireless communication network (1), wherein the data is associated with one or more criteria for selection of a candidate replica unit out of the one or more replica units (10).
16. The database unit (12) according to claim 15, wherein the one or more criteria comprise one or more of: a load, a time stamp, a configuration, and / or network identity.
17. The database unit (12) according to any of the claims 15-16, wherein the database unit (12) is configured to update the database unit (12) with updated data from one replica unit (10).
18. A computer program product comprising instructions, which, when executed on at least one processor, cause the at least one processor to carry out the method according to any of the claims 1-8, as performed by the replica unit (10) or the database unit (12), respectively.
19. A computer-readable storage medium, having stored thereon a computer program product comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method according to any of the claims 1-8, as performed by the replica unit (10) or the database unit (12), respectively.
Citation Information
Patent Citations
Directed placement of data in a redundant data storage system
US20120191710A1
Methods and apparatus for automatic database failover in a master-replica replication configuration
US20190347352A1
Replication in a cloud environment
US20220124593A1
Scheduling actions in multiple replicas of computing environment
US20230229488A1
Relational database synchronization method and a recording medium storing a program therefore
US6374262B1