Methods and systems to configure a telecommunication network
By employing a simulation environment to evaluate configuration options for telecommunication networks using a reward-based system, the method addresses the challenges of configuring complex telecommunication networks, achieving optimal and efficient configurations.
Patent Information
- Application Number
- PCT/SE2023/051293
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-21
- Publication Date
- 2025-06-26
AI Technical Summary
Existing methods for configuring telecommunication networks face challenges in accurately mirroring production environments in simulation environments, leading to suboptimal configuration settings and potential errors due to the hierarchical architecture and configuration dependencies within the telco stack.
The method involves using a simulation environment to evaluate configuration options for a set of target machines by defining an array of parameters as rewards, allowing for the identification of optimal configuration options without human intervention. This process includes obtaining hardware and software information, generating multiple configuration options, testing them in a simulation environment, and implementing the best configuration in the production network.
This approach enables the identification of optimal configuration options for telecommunication networks, improving efficiency and reducing errors by leveraging simulation environments and reward-based evaluation, thus enhancing the economic efficiency and reliability of network configurations.
Smart Images

Figure SE2023051293_26062025_PF_FP_ABST
Abstract
Description
METHODS AND SYSTEMS TO CONFIGURE A TELECOMMUNICATION NETWORKTECHNICAL FIELD
[0001] Embodiments of the invention relate to a method and an electronic device to configure a telecommunication network.BACKGROUND ART
[0002] To manage configuration of a telecommunication network, a separate simulation environment may be defined for preproduction so that the testing and / or staging may be performed in the environment prior to deploying a configuration in a live telecommunication network. For example, a simulation environment may be created to try out a configuration through testing and / or staging. Yet using the simulation environments has many challenges. A simulation environment needs to reflect a production environment accurately, yet each production environment has its own set of configurations, which may be hard to mirror to a simulation environment. The configuration identified as optimal for one production environment in the simulation environment may be less so when it is used to another similar but slightly different production environment. Additionally, changes in the production environment need to be reflected real-time or near real-time to the characteristics and requirements of the simulation environments.
[0003] Adding to the challenges is the hierarchical architecture of a telecommunication network, which contains various layers of components that make up a telecommunication stack (also referred to as a telco stack). Each of the layers contains multiple components, where all components have their own individual configurations and security objectives. In the configuration settings of the telco stack, configuration dependencies often exist between components in the same layer and between different layers.
[0004] Earlier attempts have been made to build an infrastructure to manage configurations of a telco stack with multiple layers without using a simulation environment, given the challenges of the simulation environment discussed above. One example is described in U.S. Patent 11,153,229, entitled “Autonomic resource partitions for adaptive networks” by Petar Djukic, et al. Briefly, the described system in that invention includes, in each layer of the multi-layer telecommunication network, (1) a resource controller to provision resources and keep track of their availability, (2) a resource manager to create virtual resources satisfying the Quality of Service (QoS) required in the layer by using resources (e.g., provided by the layer below it), (3) a resource broker to advertise and assign or block resource requests, and (4) a partition manager to track the resources used by partitions and their utilizations provided by the layer below andadjust resource usage in negotiation with the resource broker to minimize the cost of implementing the layer.
[0005] By dynamically adjusting resource allocation within multiple layers in the network, the described system offers flexibility of configuring resources over multiple layers. Yet such process appears to use only the computational resources within the network, without leveraging additional resources that a simulation environment may additionally deploy. One drawback of such an approach is that, with readily available cloud resources, using such a simulation environment may be more economically efficient. Additionally, with each layer of the multiple layers of the network having four entities for resource configuration coordination, and these entities must be coordinated within the same layer and between different layers, errors may be induced in the process. Furthermore, since the resource allocation adjustment is performed directly on the live telecommunication network, instead of a separated simulation environment, such errors may have a severe impact on the telecommunication network that may carry client’s traffic.SUMMARY OF THE INVENTION
[0006] Embodiments aim at finding one or more optimal configuration options to configure a telecommunication network through simulation, where an array of parameters may be defined as a reward to evaluate a set of configuration options in simulation so that the one or more configuration options may be identified through the evaluation without human intervention, once the reward is defined.
[0007] The embodiments include methods, electronic device, storage medium, and computer program to configure a telecommunication network through simulation. In one embodiment, a method is disclosed to configure a telecommunication network, the method comprises obtaining identity of a set of target machines and an array of parameters to evaluate configuration of the set of target machines, each parameter of the array of parameters to indicate one factor for target machine evaluation; obtaining hardware and software information of the set of target machines based on the identity of the set of target machines; obtaining a plurality of configuration options to be implemented on the set of target machines; making a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment; identifying a configuration option from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the arrayof parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment; and implementing the configuration option on the set of target machines to deploy the set of target machines in the telecommunication network.
[0008] In one embodiment, an electronic device to configure a telecommunication network is disclosed. The electronic device comprises a processor and non-transitory machine-readable storage medium that provides instructions that, when executed by the processor, are capable of causing the processor to perform operations. The operations include obtaining identity of a set of target machines and an array of parameters to evaluate configuration of the set of target machines, each parameter of the array of parameters to indicate one factor for target machine evaluation; obtaining hardware and software information of the set of target machines based on the identity of the set of target machines; obtaining a plurality of configuration options to be implemented on the set of target machines; making a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment; identifying a configuration option from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the array of parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment; and implementing the configuration option on the set of target machines to deploy the set of target machines in the telecommunication network.
[0009] In one embodiment, a machine-readable storage medium that provides instructions that, when executed by a processor, are capable of causing an electronic device to perform operations. The operations include obtaining identity of a set of target machines and an array of parameters to evaluate configuration of the set of target machines, each parameter of the array of parameters to indicate one factor for target machine evaluation; obtaining hardware and software information of the set of target machines based on the identity of the set of target machines; obtaining a plurality of configuration options to be implemented on the set of target machines; making a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment; identifying a configuration option from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration optionsto the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the array of parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment; and implementing the configuration option on the set of target machines to deploy the set of target machines in the telecommunication network.
[0010] By implementing embodiments as described, the array of parameters as the reward may guide the identification of the one or more optimal configuration options without human intervention, and the simulation environment may be implemented using resources unconstrainted by the telecommunication network to be configured / reconfigured. Such implementation is not limited to a specific layer of the telecommunication network, as a target machine may be a component implemented in any given layer, with corresponding upper / lower layers configured in the simulation environment. Additionally, applying multiple configuration options on multiple copies of the target machine can leverage the existing parallel computing architecture to expediate the identification of the best configuration option.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
[0012] Figure 1 illustrates an architecture to identify optimal configuration options per some embodiments.
[0013] Figure 2 illustrates operations to identify optimal configuration options per some embodiments.
[0014] Figure 3 illustrates operations to identify optimal configuration options on a telco stack per some embodiments.
[0015] Figures 4A-4B illustrate exemplary configurations in different layers of a telco stack per some embodiments.
[0016] Figures 5A-5B illustrate operations to identify optimal configuration options for a telecommunication network per some embodiments.
[0017] Figure 6 illustrates an electronic device to identify optimal configuration options for a telecommunication network per some embodiments.
[0018] Figure 7 illustrates an example of a communication system per some embodiments.
[0019] Figure 8 illustrates a user equipment (UE) per some embodiments.
[0020] Figure 9 illustrates a network node per some embodiments.
[0021] Figure 10 is a block diagram of a host, which may be an embodiment of the host of Figure 7, per various aspects described herein.
[0022] Figure 11 is a block diagram illustrating a virtualization environment in which functions implemented by some embodiments may be virtualized.
[0023] Figure 12 illustrates a communication diagram of a host communicating via a network node with a user equipment (UE) over a partially wireless connection per some embodiments.DETAILED DESCRIPTION
[0024] Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and / or is implied from the context in which it is used. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and / or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features, and advantages of the enclosed embodiments will be apparent from the following description.Architecture to Identify Optimal Configuration Options
[0025] Embodiments include methods, electronic device, storage medium, and computer program to configure a telecommunication network. The embodiments use a reward, defined using an array of parameters to guide the identification of one or more optimal configuration options from multiple configuration options in an automated and scalable fashion, without human intervention. In some embodiments, a user may define the reward to identify one or more optimal configurations for the user from multiple configuration options. These configuration options are applied in a simulation environment to find the one or more optimal configuration options for a production environment. Note that a production environment may also be referred to as a deployment environment, an operational environment, or another term to indicate an environment that processes traffic flows for clients. A simulation environment may also be referred to as a test environment, a development environment, a staging environment, or another term to indicate an environment that mimics the processing of traffic flows in the production environment to test out configurations but without affecting the traffic flows.
[0026] The configuration of a telecommunication network is determined by identifying the optimal configuration option on a set of target machines at one time per some embodiments. Each target machine is a deployable unit in the telecommunication network that can be managed as a set of individual physical / virtual resources. A target machine may include components from multiple layers of a telco stack, an example of which is shown in Figure 3.
[0027] The target machine may be virtual when the target machine is created and managed within a virtualized environment (e.g., the virtualization environment 1100 in Figure 11) rather than being a physical entity. For example, the target machine may be a virtual machine (VM), a container or pod, a virtual storage / database, a virtual load balancer, or another virtual resource in a cloud system such as Kubernetes. The target machine may be physical when the target machine is a physical component of the telecommunication network. For example, an antenna in the physical layer. The antenna, being a physical component, may still be simulated in a simulation environment with specifically defined configuration. While pods / containers in the infrastructure layer of a telco stack (an example of which is shown in Figure 3) are often used as examples of a target machine for illustration herein, other types of target machines in the same or other layers may use embodiments of the invention as well.
[0028] Figure 1 illustrates an architecture to identify optimal configuration options per some embodiments. System 100 includes an electronic device 102 to identify the optimal configuration options, based on input from a production environment 104, a simulation environment 106, a configuration target 108, and a repository 109. The components of electronic device 102 are discussed in further detail below relating to Figure 6.
[0029] Cycles 1 to 5 in Figure 1 illustrate the order in which operations are performed according to some embodiments. As shown at Cycle 1 (reference 152), electronic device 102 obtains (1) the identity of a set of target machines 124 for which an optimal configuration option needs to be identified, and (2) reward space 122 that defines the criteria under which the optimal configuration options are identified.
[0030] The set of target machines 124 are the ones in the production environment 104. The identity of the set of target machines may include, for a target machine, one or more of the target machine’s name (e.g., host name), identifier / label (e.g., numerical identifier), address (e.g., Media Access Control (MAC) address or Internet Protocol (IP) address), or another way to identify the hardware / software for which an optimal configuration option is to be identified. The set of target machines may have other set-based identities to identify the set of target machines.
[0031] The reward space 122 may be defined based on preferences by a user such as a client, an operator, or a third party of the telecommunication network. The reward space is then used asan input to find one or more optimal configuration options (e.g., the optimal configuration and rule combinations) from a group of objectively optimal configuration options.
[0032] The set of target machines 124 may be a single target machine, or multiple target machines that share a common characteristic. For example, the set of target machines may be ones on the path that a particular traffic flow is forwarded, ones through which a particular service is to be offered, or ones on which a particular level of security is to be maintained. The set of target machines 124 may include components at one or more layers of a telco stack as shown at Figure 3.
[0033] The reward space 122 defines an array of elements, referred to as a reward array, to evaluate configuration options of the set of target machines 124. Each element within the reward array may include a parameter to evaluate one factor of a target machine’s performance. Table 1 below shows the reward space R = [Rl, R2. . .R14],Table 1. Exemplary Reward Space per Some Embodiments
[0034] In the reward space R, each element is defined as a reward condition. The reward condition may include whether a certain event occurs, as in any of Rl to R6. It may also include whether a certain Quality-of-Service (QoS) parameter meets a corresponding criterion, as in any of R7 to R10, or whether a certain security condition is met, as in any of Rl 1 to R14. While three categories of reward conditions are shown in this example, more or less categories, along with corresponding elements and reward conditions may be defined in a reward space.
[0035] To evaluate configuration options, the desirability of a configuration option may be measured by how many rewards one configuration option receives. For example, if a reward condition is met, the element receives a reward of one, otherwise the element receives a reward of zero. The reward score, as a sum of the rewards from a configuration option, provides the measure of the desirability of the configuration option. While summing up the values of the elements in a reward array is the straightforward way to derive the reward score, the reward score may be obtained through other arithmetic calculations on the values of the reward array elements, e.g., obtaining the average, the mean, the highest value from the values of the reward array elements.
[0036] Each element of the reward space may be given a weight in some embodiments, and the weight may be adjusted based on user definition / preference, and / or characteristics of the target machines and / or the production environment. For example, a configuration option that allows the target machine to spin successfully (i.e., a copy of the target machine is successfully made in the simulation environment), thus the reward condition R1 is met, and the configuration option receives a reward score of three, given R1 having a weight of three. The configuration option may provide the target machine with a latency from a software service (predefined or specified by user) below a user threshold (e.g., 50 milliseconds), thus the reward condition R7 is met, and the configuration option receives an additional reward score of two, given R7 having a weight of two.
[0037] In some embodiments, the configuration option of a target machine that achieves the highest accumulated reward score from all elements of the reward space is considered to be the optimal configuration option for the target machine. Alternatively, a number of optimal configuration options are identified with the corresponding reward scores over a threshold, and the one with the highest reward scores is the most desirable and others may be identified as backup options. In addition or in alternative, the reward scores in each category (e.g., events, QoS, security features) of the configuration options of a target machine are tallied, and the optimal configuration option(s) that are identified must achieve corresponding minimum scores in each category.
[0038] While integer weights are given in Table 1 as examples, other weight values may be applied in alternative embodiments. In some embodiments, each element is weighted equally in the reward space, in which case the weights are ignored.
[0039] The set of target machines and the reward space identify (1) the machines that require configuration update / optimization, and (2) the criteria under which the machines are to be updated / optimized, as the reward space may be used to evaluate a variety of configuration options.
[0040] At Cycle 2 (reference 154), electronic device 102 obtains from the production environment 104 the hardware and / or software information of the set of target machines obtained at Cycle 1. The electronic device 102 obtains the hardware and / or software information so that the set of target machines, with the hardware and / or software in the production environment 104, may be tested with the variety of configuration options in the simulation environment 106.
[0041] The hardware and / or software information of the set of target machines includes the setup information that is material to simulate the operations of the set of target machines in the simulation environment 106 as in the production environment 104. The setup information includes hardware capabilities of the set of target machines and a set of applications with versions deployable / deployed on the set of target machines. For example, the hardware information includes information regarding the execution resources (e.g., the number of processor cores and the operating frequencies of the processor cores), storage resources (e.g., the levels of caches and the size of the caches, the sizes of system memory and external storage), networking resources (e.g., the link connection bandwidth) of the set of target machines. The software information includes the identity of the applications deployed or the applications deployable but not currently installed on the set of target machines, and / or the versions of these applications. To fully simulate the operations of the target machines in the simulation environment 106, the hardware and / or software information may include information of components at the layers above, same, or below in which the target machines are implemented in the production environment 104.
[0042] At Cycle 3 (reference 156), electronic device 102 obtains configuration options (e.g., configurations and rules) from repository 109. Repository 109 may include a structured data storage system. The structured data storage system is intended to store data (which may be voluminous) for possible consumption by multiple clients. The structured data storage system includes those which typically persist data (e.g., an on-disk database) and those which typically do not persist data (e.g., an in-memory database, a streaming platform, a key-value datastore, a document store, etc.). As shown, the configuration options stored in repository 109 include configurations 132 and rules 134 to be applied to the corresponding configuration. Additionally, repository 109 includes identified configuration options 138 that store the identified configuration options once they are identified as optimal from applying the configuration / rules obtained from repository 109.
[0043] At Cycle 4 (reference 158), electronic device 102 makes a set of copies of the target machines and applies the obtained configuration options from repository 109 on the set of copies of the target machines to select one or more optimal configuration options. The simulationenvironment 106 may simulate the production environment 104 in operation by implementing commercial off-shelf network simulation tools such as Network Simulator 3 (NS-3), Graphical Network Simulator-3 (GNS3), Riverbed Moderler, QualNet, and NetSim. The simulation environment 106 may also use proprietary network simulation tools to simulate the production environment 104. Note that the copying operation is also referred to as cloning, spinning / spawning, or duplicating, where a resulting copy is referred to as a clone, a spun / spawn copy, and a duplicate, respectively.
[0044] The configuration options form an action space to be tested in the simulation environment 106. In some embodiments, each configuration option in the action space includes a set of configurations and rules to be executed. For example, a configuration option may include a set of instructions (e.g., commands through application programming interface (API)) to be executed by electronic device 102 to implement a configuration and a corresponding rule.
[0045] A configuration of a target machine sets the target machine as a standalone entity, while a rule is to define how the target machine interacts with other machines to forward a particular traffic. For example, applying a security configuration option may include running (1) a command to set a security configuration (e.g., port security, encryption) to set up a target machine, and (2) a command to apply a rule to set up a transmission control protocol (TCP) destination port for the machine to listen to. Table 2 shows a set of configurations and rules for the security configuration options to be applied in the simulation environment 106, where a number of configurations, stored in a configuration file ending with yml, is to be implemented on a target machine in a simulation environment, and the rules are to be applied in the configuration.Table 2. Exemplary Action Space per Some Embodiments
[0046] As Table 2 shows, in an action space for security configuration options only, the permutation of configurations and rules as configuration options can be voluminous. To test all the configuration options during simulation, each target machine within the set of target machines may be spined into multiple identical copies to be set with the configuration options obtained from repository 109. For example, machine 112 in the production environment 104 is duplicated into multiple copies as machines 112A to 112B in the simulation environment 106. The set of target machines may depend on other machines in the production environment 104 for proper operations and the dependent machines are simulated along with the set of target machines as well to test out the configuration options.
[0047] The identification of the one or more optimal configuration options is based on the reward scores upon the configuration options being applied to the set of target machines, where the reward scores are tallied as discussed herein above. Because the set of target machines are spun into multiple identical copies, the copies may be tested simultaneously in the simulation environment 106 to accelerate the process of identifying the optional configuration option.
[0048] Note that the test of a configuration option on a target machine includes simulating data being processed by the target machine using configuration options on the target machine, obtaining values of the reward elements of a reward array based on the data being processed, and deriving a reward score from reward element values of the reward array. The reward score, such as a sum with or without weights, indicates a relative merit of the configuration option relative to other configuration options, and the configuration option results in the higher aware score is considered the better configuration option in some embodiments.
[0049] In some embodiments, simulating the data being processed by a set of target machines using one configuration option on a copy of the set of target machines includes simulating interaction of the set of target machines with another set of machines to be deployed in the production environment 104 as the data being processed by the copy of the set of target machines.
[0050] The simultaneous application of configuration options on the copies of the set of target machines takes advantage of parallel computing architectures such as the Single Instruction, Multiple Data (SIMD) and Single Instruction, Multiple Threads (SIMT) architectures. The multiple copies of the set of target machines allows the identification of the optimal configuration options to be done efficiently, with low power consumption, and with improved performance. Additionally, the simultaneous application of configuration options can leverageexecution resources, storage resources, and / or networking resources that are readily available in a public or private cloud system without any impact on the production environment 104. Such simulation environment 106, unconstrainted by the resource limitation of the production environment 104, can also be operated more freely without the concerns about causing traffic outage / degradation in the production environment 104.
[0051] While in some embodiments a single configuration option is identified as the optimal option, multiple configuration options may be identified in other embodiments, e.g., based on these configuration options achieving their corresponding reward scores over a threshold as discussed herein above.
[0052] Once the one or more optimal configuration options are identified, at Cycle 5 (reference 159), the electronic device 102 may store the one or more optimal configuration options into repository 109 as identified configuration options 138; additionally, the configuration option(s) may be applied to the set of target machines in production environment 104. When multiple configuration options are identified, the best configuration option may be applied first and other one or more configuration options may be kept as backup to be applied (e.g., when the best configuration option is not applicable or failed for some reason).
[0053] While the electronic device 102 is shown as a separate entity from the production environment 104, the simulation environment 106, the configuration target 108, and the repository 109, the electronic device 102 may be integrated with one or other entities within system 100.Identify Optimal Configuration Options on a Telco Stack
[0054] The electronic device 102 may implement machine learning to identify one or more optimal configuration options. Figure 2 illustrates logic entities and operations applied on them to identify optimal configuration options per some embodiments. The set of target machines 124 and the reward space 122 defined in the configuration target 108 and the configuration options (e.g., including configurations / rules) obtained repository 109 are applied to the copies of the set of target machines as shown at reference 208. The configuration options may be applied in the simulation environment 106 concurrently in some embodiments. As shown in the figure, the identical copies of the target machines, shown at references 212 and 214, and their dependent machines are spined in simulation environment 106.
[0055] In simulation environment 106, the identification of the one or more optimal configuration options for each target machine is shown using the example of the identification of the optimal configuration options for machine 112 at reference 242 through the identification at reference 232, and the identification of the optimal configuration options for machine 114 at reference 244 through the identification at reference 234. The identified optimal configurationoptions are applied to the target machine 112 and 114 in deployment at the production environment 104 afterward.
[0056] While the identification process can be simple when the configuration options in the action space are limited, as counting the reward scores in the reward space is straightforward, but when the configuration options are numerous (see Table 2 as an example), more sophisticated algorithms may be implemented. For example, machine learning may be used to identify the optimal configuration options as shown at reference 230.
[0057] The machine learning models may use supervised learning, unsupervised learning, semi-supervised learning, or other types of learning. It can use reinforcement learning (RL), artificial neural networks, decision trees, support-vector machines, regression analysis, Bayesian networks, genetic algorithms, or any other framework. A machine learning model may be trained with one or more goals (e.g., maximizing the reward scores) to set parameters of the machine learning model so that the trained machine learning model may be used to the next set of configuration options and identify the optimal configuration options.
[0058] In some embodiments, the machine learning model is a reinforcement learning (RL) model. In the simulation environment 106, a reinforcement learning agent will be defined to maximize its expected rewards by taking actions based on the state of the simulation environment 106. In reinforcement learning, the RL model learns to find the optimal solutions by observing the state of the simulation environment 106 and how the state changes when the reinforcement learning agent takes an action from the action space. To evaluate if the change of the simulation environment state was desirable, the reinforcement learning agent will receive a reward based on reward space. The reinforcement learning agent may start to take actions in stochastic and iterative way and relies more in the actions that have produced highest reward scores.
[0059] In reinforcement learning, the level of exploration can be adjusted via learning rate (as a part of a Q-Function) and depending on the choosing of the learning rate, the reinforcement learning agent may find quickly a “local” optimum and sticks with it. This can be the fast way to find a good solution and the learning agent may start to exploit the actions that lead to good results and the variance of the selected actions reduces. However, the “global” optimum can be achieved with high number of iterations and enabling the agent to explore the actions more freely. Reinforcement learning is often a good candidate in the machine learning model selection when the determined action space is difficult to find and the state changes are not obvious, as in the case of identifying the optimal configuration options in environment 106.
[0060] Figure 3 illustrates operations to identify optimal configuration options on a telco stack per some embodiments. A telco stack includes a set of interconnected protocols that enablecommunication between two or more devices over a telecommunication network. A telco stack implemented in a cloud environment may be referred to as cloud native telco stack, and it includes configurable components at various layers as shown at reference 300.
[0061] The cloud native telco stack may include an infrastructure layer 302. The infrastructure layer 302 provides the underlying infrastructure resources for running cloud-native network functions (CNFs), such as ones performing computing, storage, and networking operations. The infrastructure may include one or more public cloud platforms that include Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure, and / or one or more private cloud platforms built specifically for the telco stack. The infrastructure layer 302 includes hardware components 312, and one or more other sublayers.
[0062] For example, a software defined infrastructure (SDI) 314 may be implemented on top of the hardware components 312. SDI 314 manages infrastructure resources, such as computing, storage, and networking. SDI 314 enables a telecommunication network to dynamically allocate and reconfigure resources as needed, which can improve efficiency and scalability. Additionally, a virtualization environment 316 may be implemented on top of SDI 314, and allows the creation of multiple virtual resources (e.g., virtual machines (VMs)) on a single physical server. This can help telcos to improve resource utilization and reduce the costs of operating the telecommunication network. Furthermore, a container environment 318 may be implemented on top of the virtualization environment 316 and allows the telecommunication network to package their applications into containers, which are lightweight and portable. Containers may be deployed on any server that has a container orchestration platform installed.
[0063] A container orchestrating layer 304 may be implemented on top of the infrastructure layer 302 in some embodiments. Container orchestrating layer 304 may include a software platform that helps to automate the deployment, management, and scaling of containerized applications. It provides features such as service discovery, load balancing, and container health monitoring. The container orchestrating layer 304 may implement a software platform such as Kubernetes, Docker Swarm, and Mesosphere.
[0064] An application layer 308 may be implemented on top of the container orchestrating layer 304. The application layer 308 contains the CNFs that provide the telecommunication network services. CNFs can be developed by the operator of the telecommunication network or by third-party vendors.
[0065] A management and orchestration layer 310 may be implemented on top of the application layer 308. This layer may provide a centralized platform for managing and orchestrating the entire cloud native telcos stack. This includes tasks such as CNF deployment, lifecycle management, and performance monitoring. Layer 310 may implement managementand orchestration platforms such as Open Network Automation Platform (ONAP), Open-Source Management and Orchestration (MANO) (OSM), or a proprietary platform.
[0066] A configuration option, as shown at reference 234, may include one or more configurations of one or more layers / sublayers of a target machine and corresponding rules to apply to the one or more configurations. The configuration options can be shown as an action space matrix at reference 334, wherein a configuration option includes a pair of (1) configuration on one or more layers of a telco stack and (2) a rule to apply to the configuration. In this example, a column corresponds to a configuration, e.g., column one for config. 1, column 2 config. 2, and so on. A row corresponds to a rule applicable to the available configurations. In alternative embodiments, the roles of column and row may be reversed.
[0067] Alternatively, the configuration options can be shown as an action space matrix at reference 336, wherein a configuration option contains a set of concatenated configurations and rules in each element of the matrix. The concatenation is necessary when dependency exists between configurations / rules. In this case, a configuration option may include multiple configurations and rules. For example, config. 11 in the first element of the action space matrix 336 may be a configuration of the Internet Protocol (IP) layer while config. 12 in the first element is the configuration of the TCP layer, which requires the configuration of the IP layer for a service to be implemented. The first element of the action space matrix 336 is thus a matrix itself with multiple configuration and rule pairs, and so are the other elements of the action space matrix 336.
[0068] While the action space matrices 334 and 336 show the configuration options for a single target machine, the similar configuration options for a set of target machines include multiple action space matrices, one matrix for a target machine, and a configuration option for the set of target machines includes configuration options for each of the target machines. The selected optimal configuration option of the set of target machines then includes one optimal configuration option for each target machine.
[0069] To test the configuration options, each copy of a target machine may implement a configuration and run the applicable rules for the configuration. The target machine copy thus executes one column of the action space matrix 334 or 336. With simultaneous execution of the target machine copies, the one or more globally optimal configuration options may be identified through parallel computing architecture (e.g., through the global optimum achieved in the RL model discussed above). When the configuration options are vast, such identification may take extraordinary amount of computing, storage, and networking sources, and such global optimization may be referred to as brute force approach.
[0070] Alternatively, when the configuration options are vast, a selective highest reward approach may be implemented, where only selected configuration options are tested out on the copies of a target machine (e.g., through the local optimum achieved in the RL model discussed above). For example, such selective highest reward approach may consider only the configuration options that have the most recent updates, or consider these configuration options first, while the earlier configuration options are considered only when resources are available. In that case, the configuration options with the most recent updates are in column 1 of the matrix, and the configuration options with the second most recent updates are in column 2 and so on. In some embodiments, each computing unit (e.g., a core, a thread, or a warp of a computing apparatus) may execute one configuration and rule pair (which may include concatenated configurations and rules as shown in action space matrix 336) to identify the optimal configuration options in the selective highest reward approach.
[0071] Figures 4A-4B illustrate exemplary configurations in different layers of a telco stack per some embodiments. Figure 4A illustrates configuration of a target machine in the application layer 308 per some embodiments. In this example, the target machine 112 is a CNF in the fifth-generation network (5G), 5G CNF 1, and it includes the configurations of services A, B, and C. To simulate operations of these services in the simulation environment 106, the simulation environment 106 may set the target machine with dependent target machines with configuration at application layer 308, or layers above or below application layer 308. Once the configuration is set, rules may be applied on the configuration to select the one or more optimal configuration options.
[0072] Figure 4B illustrates configuration of a target machine in the infrastructure layer 302 per some embodiments. In this example, the target machine 114 is a host operating system, host OS 1, and it includes a number of configurations for hardware / software components in the infrastructure layer 302.
[0073] In these configurations, rules may be applied to the configuration, for which reward scores are tallied. For example, a connection rule may be applied to the EthO network, indicating the connectivity of machine 114 to other machines. The connectivity rule may be an array, where each element indicating a connection is allowed between machine 114 with another machine, e.g., connectivity of EthO network = [yes, no, yes. . .], where the array elements, in order, are for machines x, y, z, respectively.Operations to Identify Optimal Configuration Options per Some Embodiments
[0074] Figures 5A-5B illustrate operations to identify optimal configuration options for a telecommunication network per some embodiments. The operations may be performed on an electronic device 102.
[0075] At reference 502, the identity of a set of target machines and an array of parameters to evaluate configuration of the set of target machines are obtained, each parameter of the array of parameters to indicate one factor for target machine evaluation. In some embodiments, the array of parameters to evaluate configuration of the set of target machine is the reward array discussed herein above, and the identity of a set of target machines and the reward array are obtained from configuration target 108 discussed herein above.
[0076] At reference 504, hardware and software information of the set of target machines are obtained based on the identity of the set of target machines. In some embodiments, the hardware and software information of the set of target machines may be obtained from the production environment 104.
[0077] At reference 506, a plurality of configuration options to be implemented on the set of target machines are obtained. In some embodiments, the plurality of configuration options is obtained from repository 109.
[0078] At reference 508, a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment are made, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment.
[0079] At reference 510, a configuration option is identified from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the array of parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment.
[0080] At reference 512, the configuration option is implemented on the set of target machines to deploy the set of target machines in the telecommunication network.
[0081] In some embodiments, the one set of values for the array of values includes a binary value indicating whether a criterion is met. For example, the binary value is the value of one when a corresponding reward condition is met, and the value of zero when the corresponding reward condition is not met (or vice versa).
[0082] In some embodiments, each value within the one set of values for the array of values is weighted to signify relative importance of values within the one set of values. The weight of each value is discussed herein above relating to Table 1.
[0083] In some embodiments, the hardware and software information of the set of target machines indicates hardware capabilities of the set of target machine and a set of applications with versions deployed or deployable on the set of target machines.
[0084] In some embodiments, the applying the one configuration option of the plurality of configuration options to the one copy of the set of target machines in the simulation environment at reference 510 comprises operations shown in Figure 5B.
[0085] At reference 522, data being processed by the one copy of the set of target machines is simulated using the one configuration option on the one copy of the set of target machines. At reference 524, the one set of values for the array of parameters is obtained based on the data being processed by one target machine of the set of target machines. At reference 526, a single value is derived from the one set of values for the array of parameters based on the data being processed by the one target machine, wherein the single value is to indicate a relative merit of the one configuration option to other configuration options of the plurality of configuration options. The single value is the reward score discussed above in some embodiments.
[0086] In some embodiments, simulating the data being processed by the one copy of the set of target machines using the one configuration option on the one copy of the set of target machines comprises simulating interaction of the set of target machines with another set of machines to be deployed in the telecommunication network as the data being processed by the one copy of the set of target machines.
[0087] In some embodiments, each of the plurality of configuration options includes a set configuration values in one or more layers within a plurality of layers within a telecommunication stack, where the plurality of layers within the telecommunication stack includes a management and orchestration layer, an application layer, a container orchestrating layer, and an infrastructure layer. An example of the telecommunication stack is shown in Figure 3, and examples of the configuration values are shown in Figures 4A-B.
[0088] In some embodiments, identifying the configuration option from the plurality of configuration options comprises using a reinforcement machine learning model to maximize a set of values for the array of parameters with the application of the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment.
[0089] In some embodiments, applying the plurality of configuration options follows an order where configuration options that have been updated more recently are tried earlier. Based on resource availability, either a global optimization approach or selective highest reward approach may be implemented.
[0090] In some embodiments, the plurality of configuration options is applied to the plurality of copies of the set of target machines in the simulation environment in parallel by executing a plurality of execution circuitry of a processor in parallel. The processor may be one or more processing units such as central processing unit (CPU) or graphics processing unit (GPU).
[0091] In some embodiments, each configuration option of the plurality of configuration options includes a configuration and a rule applicable to the configuration. The configuration and rule pairing is discussed in more detail relating to Figure 3.
[0092] In some embodiments, each of the set of machines comprises a virtual machine or a container.
[0093] Through these embodiments, the vast number of configuration options for a telecommunication network may be tested out to identify the optimal ones through simulation. The reward-based solutions, considering hardware and software specific characteristics of the telecommunication network, find the optimal configuration options for different production environments. These embodiments enable parallelization in finding of the optimal configuration options through either global optimization approach or selective highest reward approach using scalable definition of the action space.Devices and Environments for Implementing Embodiments of the Invention
[0094] Figure 6 illustrates an electronic device to identify optimal configuration options for a telecommunication network per some embodiments. The electronic device 102 may be a host in a cloud system, or a network node in a wireless / wireline network, and the operating environment and further embodiments the host and the network node are discussed in more details discussed relating to Figures 7 to 12. The electronic device 102 may be implemented using custom application-specific integrated-circuits (ASICs) as processors and a special-purpose operating system (OS), or common off-the-shelf (COTS) processors and a standard OS. In some embodiments, electronic device 102 implements the operations discussed herein relating to Figures 1 to 5.
[0095] The electronic device 102 includes hardware 640 comprising a set of one or more processors 642 (which are typically COTS processors or processor cores or ASICs) and physical NIs 646, as well as non-transitory machine-readable storage media 649 having stored therein software 650. During operation, the one or more processors 642 may execute the software 650 to instantiate one or more sets of one or more applications 664A-R. While one embodiment does not implement virtualization, alternative embodiments may use different forms of virtualization. For example, in one such alternative embodiment, the virtualization layer 654 represents the kernel of an operating system (or a shim executing on a base operating system) that allows for the creation of multiple instances 662A-R called software containers that may each be used to execute one (or more) of the sets of applications 664A-R. The multiple software containers (also called virtualization engines, virtual private servers, or jails) are user spaces (typically a virtual memory space) that are separate from each other and separate from the kernel space in which the operating system is run. The set of applications running in a given user space, unless explicitlyallowed, cannot access the memory of the other processes. In another such alternative embodiment, the virtualization layer 654 represents a hypervisor (sometimes referred to as a virtual machine monitor (VMM)) or a hypervisor executing on top of a host operating system, and each of the sets of applications 664A-R run on top of a guest operating system within an instance 662A-R called a virtual machine (which may in some cases be considered a tightly isolated form of software container) that run on top of the hypervisor - the guest operating system and application may not know that they are running on a virtual machine as opposed to running on a “bare metal” host electronic device, or through para-virtualization the operating system and / or application may be aware of the presence of virtualization for optimization purposes. In yet other alternative embodiments, one, some, or all of the applications are implemented as unikemel(s), which can be generated by compiling directly with an application only a limited set of libraries (e.g., from a library operating system (LibOS) including drivers / libraries of OS services) that provide the particular OS services needed by the application. As a unikemel can be implemented to run directly on hardware 640, directly on a hypervisor (in which case the unikemel is sometimes described as running within a LibOS virtual machine), or in a software container, embodiments can be implemented fully with unikernels running directly on a hypervisor represented by virtualization layer 654, unikernels running within software containers represented by instances 662A-R, or as a combination of unikernels and the above-described techniques (e.g., unikemels and virtual machines both run directly on a hypervisor, unikemels, and sets of applications that are run in different software containers).
[0096] The software 650 contains a configurator 652 that performs operations described with reference to operations as discussed relating to Figures 1 to 5. Configurator 652 may be instantiated within the applications 664A-R. The instantiation of the one or more sets of one or more applications 664A-R, as well as virtualization if implemented, are collectively referred to as software instance(s) 652. Each set of applications 664A-R, corresponding virtualization construct (e.g., instance 662A-R) if implemented, and that part of the hardware 640 that executes them (be it hardware dedicated to that execution and / or time slices of hardware temporally shared), forms a separate virtual electronic device 660A-R.
[0097] A network interface (NI) may be physical or virtual. In the context of Internet Protocol (IP), an interface address is an IP address assigned to an NI, be it a physical NI or virtual NI. A virtual NI may be associated with a physical NI, with another virtual interface, or stand on its own (e.g., a loopback interface, a point-to-point protocol interface). A NI (physical or virtual) may be numbered (a NI with an IP address) or unnumbered (a NI without an IP address). The NI is shown as network interface card (NIC) 644. The physical network interface 646 may includeone or more antenna of the electronic device 602. An antenna port may or may not correspond to a physical antenna. The antenna comprises one or more radio interfaces.A Wireless Network per Some Embodiments
[0098] Figure 7 illustrates an example of a communication system 700 per some embodiments. In the example, the communication system 700 includes a telecommunication network 702 that includes an access network 704, such as a radio access network (RAN), and a core network 706, which includes one or more core network nodes 708. The access network 704 includes one or more access network nodes, such as network nodes 710A and 710B (one or more of which may be generally referred to as network nodes 710), or any other similar 3rdGeneration 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 702 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 702 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 702, including one or more network nodes 710 and / or core network nodes 708.
[0099] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU- 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 Al, Fl, Wl, El, 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 O-2 interface defined by the O-RAN Alliance or comparable technologies. The network nodes 710 facilitate direct or indirect connection of user equipment (UE), such asby connecting UEs 712A, 712B, 712C, and 712D (one or more of which may be generally referred to as UEs 712) to the core network 706 over one or more wireless connections.
[0100] 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 700 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 700 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0101] The UEs 712 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 710 and other communication devices. Similarly, the network nodes 710 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 712 and / or with other network nodes or equipment in the telecommunication network 702 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 702.
[0102] In the depicted example, the core network 706 connects the network nodes 710 to one or more hosts, such as host 716. 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 706 includes one more core network nodes (e.g., core network node 708) 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 708. 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).
[0103] The host 716 may be under the ownership or control of a service provider other than an operator or provider of the access network 704 and / or the telecommunication network 702, and may be operated by the service provider or on behalf of the service provider. The host 716 may host a variety of applications to provide one or more service. Examples of such applicationsinclude 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.
[0104] As a whole, the communication system 700 of Figure 7 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.
[0105] In some examples, the telecommunication network 702 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunication network 702 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 702. For example, the telecommunication network 702 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.
[0106] In some examples, the UEs 712 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 704 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 704. Additionally, a UE may be configured for operating in single- or multiple radio access technology (multi-RAT) or multistandard 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).
[0107] In the example, the hub 714 communicates with the access network 704 to facilitate indirect communication between one or more UEs (e.g., UE 712C and / or 712D) and network nodes (e.g., network node 710B). In some examples, the hub 714 may be a controller, router,content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 714 may be a broadband router enabling access to the core network 706 for the UEs. As another example, the hub 714 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 710, or by executable code, script, process, or other instructions in the hub 714. As another example, the hub 714 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 714 may be a content source. For example, for a UE that is a virtual reality (VR) headset, display, loudspeaker or other media delivery device, the hub 714 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 714 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 714 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0108] The hub 714 may have a constant / persistent or intermittent connection to the network node 710b. The hub 714 may also allow for a different communication scheme and / or schedule between the hub 714 and UEs (e.g., UE 712C and / or 712D), and between the hub 714 and the core network 706. In other examples, the hub 714 is connected to the core network 706 and / or one or more UEs via a wired connection. Moreover, the hub 714 may be configured to connect to a machine-to-machine (M2M) service provider over the access network 704 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 710 while still connected via the hub 714 via a wired or wireless connection. In some embodiments, the hub 714 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 710B. In other embodiments, the hub 714 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 710B, but which is additionally capable of operating as a communication start and / or end point for certain data channels. In some embodiments, the electronic device 102 that implements configurator 652 may be or coupled to network nodes 708, 710A-B, or host 717.UE per Some Embodiments
[0109] Figure 8 illustrates a UE 800 per some embodiments. 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 storagedevice, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3 GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0110] A UE may support device-to-device (D2D) communication, for example by implementing a 3 GPP 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).
[0111] The UE 800 includes processing circuitry 802 that is operatively coupled via a bus 804 to an input / output interface 806, a power source 808, a memory 810, a communication interface 812, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in Figure 8. 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.
[0112] The processing circuitry 802 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 810. The processing circuitry 802 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 802 may include multiple central processing units (CPUs) or graphics processing units (GPUs).
[0113] In the example, the input / output interface 806 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or outputdevices. 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 800. 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.
[0114] In some embodiments, the power source 808 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 808 may further include power circuitry for delivering power from the power source 808 itself, and / or an external power source, to the various parts of the UE 800 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 808. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 808 to make the power suitable for the respective components of the UE 800 to which power is supplied.
[0115] The memory 810 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 readonly memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 810 includes one or more application programs 814, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 816. The memory 810 may store, for use by the UE 800, any of a variety of various operating systems or combinations of operating systems.
[0116] The memory 810 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 Universal Subscriber Identity Module (USIM) and / or IP Multimedia Services Identity Module (ISIM), other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 810 may allow the UE 800 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 810, which may be or comprise a device-readable storage medium.
[0117] The processing circuitry 802 may be configured to communicate with an access network or other network using the communication interface 812. The communication interface 812 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 822. The communication interface 812 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 818 and / or a receiver 820 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 818 and receiver 820 may be coupled to one or more antennas (e.g., antenna 822) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0118] In the illustrated embodiment, communication functions of the communication interface 812 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 / intemet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), Quick UDP Internet Connections (QUIC), Hypertext Transfer Protocol (HTTP), and so forth.
[0119] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 812, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to anetwork 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).
[0120] 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.
[0121] 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 head-mounted display for Augmented Reality (AR) or Virtual Reality (VR), 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 800 shown in Figure 8.
[0122] 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 3 GPP NB-IoT 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.
[0123] 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.Network Node per Some Embodiments
[0124] Figure 9 illustrates a network node 900 per 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)), 0-RAN nodes or components of an 0-RAN node (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)).
[0125] 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 0-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).
[0126] 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).
[0127] The network node 900 includes a processing circuitry 902, a memory 904, a communication interface 906, and a power source 908. The network node 900 may be composedof 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 900 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 900 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 904 for different RATs) and some components may be reused (e.g., a same antenna 910 may be shared by different RATs). The network node 900 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 900, 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 900.
[0128] The processing circuitry 902 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 900 components, such as the memory 904, to provide network node 900 functionality.
[0129] In some embodiments, the processing circuitry 902 includes a system on a chip (SOC). In some embodiments, the processing circuitry 902 includes one or more of radio frequency (RF) transceiver circuitry 912 and baseband processing circuitry 914. In some embodiments, the radio frequency (RF) transceiver circuitry 912 and the baseband processing circuitry 914 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 912 and baseband processing circuitry 914 may be on the same chip or set of chips, boards, or units.
[0130] The memory 904 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 processingcircuitry 902. The memory 904 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 902 and utilized by the network node 900. The memory 904 may be used to store any calculations made by the processing circuitry 902 and / or any data received via the communication interface 906. In some embodiments, the processing circuitry 902 and memory 904 is integrated.
[0131] The communication interface 906 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 906 comprises port(s) / terminal(s) 916 to send and receive data, for example to and from a network over a wired connection. The communication interface 906 also includes radio front-end circuitry 918 that may be coupled to, or in certain embodiments a part of, the antenna 910. Radio front-end circuitry 918 comprises filters 920 and amplifiers 922. The radio front-end circuitry 918 may be connected to an antenna 910 and processing circuitry 902. The radio front-end circuitry may be configured to condition signals communicated between antenna 910 and processing circuitry 902. The radio front-end circuitry 918 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 918 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 920 and / or amplifiers 922. The radio signal may then be transmitted via the antenna 910. Similarly, when receiving data, the antenna 910 may collect radio signals which are then converted into digital data by the radio front-end circuitry 918. The digital data may be passed to the processing circuitry 902. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0132] In certain alternative embodiments, the network node 900 does not include separate radio front-end circuitry 918, instead, the processing circuitry 902 includes radio front-end circuitry and is connected to the antenna 910. Similarly, in some embodiments, all or some of the RF transceiver circuitry 912 is part of the communication interface 906. In still other embodiments, the communication interface 906 includes one or more ports or terminals 916, the radio front-end circuitry 918, and the RF transceiver circuitry 912, as part of a radio unit (not shown), and the communication interface 906 communicates with the baseband processing circuitry 914, which is part of a digital unit (not shown).
[0133] The antenna 910 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 910 may be coupled to the radio front-end circuitry 918 and may be any type of antenna capable of transmitting and receiving data and / orsignals wirelessly. In certain embodiments, the antenna 910 is separate from the network node 900 and connectable to the network node 900 through an interface or port.
[0134] The antenna 910, communication interface 906, and / or the processing circuitry 902 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 910, the communication interface 906, and / or the processing circuitry 902 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.
[0135] The power source 908 provides power to the various components of network node 900 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 908 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 900 with power for performing the functionality described herein. For example, the network node 900 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 908. As a further example, the power source 908 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.
[0136] Embodiments of the network node 900 may include additional components beyond those shown in Figure 9 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 900 may include user interface equipment to allow input of information into the network node 900 and to allow output of information from the network node 900. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 900. In some embodiments, the network node 900 may implement configurator 652 and perform operations described herein.Host per Some Embodiments
[0137] Figure 10 is a block diagram of a host 1000, which may be an embodiment of the host 716 of Figure 7, per various aspects described herein. As used herein, the host 1000 may be or comprise various combinations hardware and / or software, including a standalone server, a blade server, a cloud-implemented server, a distributed server, a virtual machine, container, orprocessing resources in a server farm. The host 1000 may provide one or more services to one or more UEs. In some embodiments, the host 1000 may implement configurator 652 and perform operations described herein. For example, the host 1000 may run a simulation environment discussed herein above by leveraging execution resources, storage resources, networking resources of servers within a communication system to which the host 1000 belongs (e.g., the communication system 700), or outside of the communication system (e.g., in a public / private cloud system).
[0138] The host 1000 includes processing circuitry 1002 that is operatively coupled via a bus 1004 to an input / output interface 1006, a network interface 1008, a power source 1010, and a memory 1012. Other components may be included in other embodiments. Features of these components may be substantially similar to those described with respect to the devices of previous figures, such as Figures 8 and 9, such that the descriptions thereof are generally applicable to the corresponding components of host 1000.
[0139] The memory 1012 may include one or more computer programs including one or more host application programs 1014 and data 1016, which may include user data, e.g., data generated by a UE for the host 1000 or data generated by the host 1000 for a UE. Embodiments of the host 1000 may utilize only a subset or all of the components shown. The host application programs 1014 may be implemented in a container-based architecture and may provide support for video codecs (e.g., Versatile Video Coding (VVC), High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), Moving Picture Experts Group (MPEG), VP9) and audio codecs (e.g., Free Lossless Audio Codec (FLAC), Advanced Audio Coding (AAC), MPEG, G.711), including transcoding for multiple different classes, types, or implementations of UEs (e.g., handsets, desktop computers, wearable display systems, heads-up display systems). The host application programs 1014 may also provide for user authentication and licensing checks and may periodically report health, routes, and content availability to a central node, such as a device in or on the edge of a core network. Accordingly, the host 1000 may select and / or indicate a different host for over-the-top services for a UE. The host application programs 1014 may support various protocols, such as the HTTP Live Streaming (HLS) protocol, Real-Time Messaging Protocol (RTMP), Real-Time Streaming Protocol (RTSP), Dynamic Adaptive Streaming over HTTP (MPEG-DASH), etc.Virtualization Environment per Some Embodiments
[0140] Figure 11 is a block diagram illustrating a virtualization environment 1100 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 1100 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 1100 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. The virtualization environment may also implement pods and containers as shown in Figure 3.
[0141] Applications 1102 (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. In some embodiments, Applications 1102 may implement configurator 652 and perform operations described herein.
[0142] Hardware 1104 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 1106 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 1108 A and 1108B (one or more of which may be generally referred to as VMs 1108), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 1106 may present a virtual operating platform that appears like networking hardware to the VMs 1108.
[0143] The VMs 1108 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 1106. Different embodiments of the instance of a virtual appliance 1102 may be implemented on one or more of VMs 1108, 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.
[0144] In the context of NFV, a VM 1108 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 1108, and that part of hardware 1104 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 1108 on top of the hardware 1104 and corresponds to the application 1102.
[0145] Hardware 1104 may be implemented in a standalone network node with generic or specific components. Hardware 1104 may implement some functions via virtualization.Alternatively, hardware 1104 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 1110, which, among others, oversees lifecycle management of applications 1102. In some embodiments, hardware 1104 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 1112 which may alternatively be used for communication between hardware nodes and radio units.Communication among host, network node, and UE per Some Embodiments
[0146] Figure 12 illustrates a communication diagram of a host 1202 communicating via a network node 1204 with a UE 1206 over a partially wireless per some embodiments. Example implementations, in accordance with various embodiments, of the UE (such as a UE 712A of Figure 7 and / or UE 800 of Figure 8), network node (such as a network node 710 of Figure 7 and / or network node 900 of Figure 9), and host (such as host 716 of Figure 7 and / or host 1000 of Figure 10) discussed in the preceding paragraphs will now be described with reference to Figure 12. Either host 1202 or network node 1204 may implement configurator 652 and perform operations described herein.
[0147] Like host 1000, embodiments of host 1202 include hardware, such as a communication interface, processing circuitry, and memory. The host 1202 also includes software, which is stored in or accessible by the host 1202 and executable by the processing circuitry. The software includes a host application that may be operable to provide a service to a remote user, such as the UE 1206 connecting via an over-the-top (OTT) connection 1250 extending between the UE 1206 and host 1202. In providing the service to the remote user, a host application may provide user data which is transmitted using the OTT connection 1250.
[0148] The network node 1204 includes hardware enabling it to communicate with the host 1202 and UE 1206. The connection 1260 may be direct or pass through a core network (like core network 706 of Figure 7) and / or one or more other intermediate networks, such as one or more public, private, or hosted networks. For example, an intermediate network may be a backbone network or the Internet.
[0149] The UE 1206 includes hardware and software, which is stored in or accessible by UE 1206 and executable by the UE’s processing circuitry. The software includes a client application, such as a web browser or operator-specific “app” that may be operable to provide a service to a human or non-human user via UE 1206 with the support of the host 1202. In the host 1202, an executing host application may communicate with the executing client application via the OTT connection 1250 terminating at the UE 1206 and host 1202. In providing the service to the user, the UE's client application may receive request data from the host's host application and provide user data in response to the request data. The OTT connection 1250 may transfer both the request data and the user data. The UE's client application may interact with the user to generate the user data that it provides to the host application through the OTT connection 1250.
[0150] The OTT connection 1250 may extend via a connection 1260 between the host 1202 and the network node 1204 and via a wireless connection 1270 between the network node 1204 and the UE 1206 to provide the connection between the host 1202 and the UE 1206. The connection 1260 and wireless connection 1270, over which the OTT connection 1250 may be provided, have been drawn abstractly to illustrate the communication between the host 1202 and the UE 1206 via the network node 1204, without explicit reference to any intermediary devices and the precise routing of messages via these devices.
[0151] As an example of transmitting data via the OTT connection 1250, in step 1208, the host 1202 provides user data, which may be performed by executing a host application. In some embodiments, the user data is associated with a particular human user interacting with the UE 1206. In other embodiments, the user data is associated with a UE 1206 that shares data with the host 1202 without explicit human interaction. In step 1210, the host 1202 initiates a transmission carrying the user data towards the UE 1206. The host 1202 may initiate the transmission responsive to a request transmitted by the UE 1206. The request may be caused by human interaction with the UE 1206 or by operation of the client application executing on the UE 1206. The transmission may pass via the network node 1204, in accordance with the teachings of the embodiments described throughout this disclosure. Accordingly, in step 1212, the network node 1204 transmits to the UE 1206 the user data that was carried in the transmission that the host 1202 initiated, in accordance with the teachings of the embodiments described throughout this disclosure. In step 1214, the UE 1206 receives the user data carried in the transmission, whichmay be performed by a client application executed on the UE 1206 associated with the host application executed by the host 1202.
[0152] In some examples, the UE 1206 executes a client application which provides user data to the host 1202. The user data may be provided in reaction or response to the data received from the host 1202. Accordingly, in step 1216, the UE 1206 may provide user data, which may be performed by executing the client application. In providing the user data, the client application may further consider user input received from the user via an input / output interface of the UE 1206. Regardless of the specific manner in which the user data was provided, the UE 1206 initiates, in step 1218, transmission of the user data towards the host 1202 via the network node 1204. In step 1220, in accordance with the teachings of the embodiments described throughout this disclosure, the network node 1204 receives user data from the UE 1206 and initiates transmission of the received user data towards the host 1202. In step 1222, the host 1202 receives the user data carried in the transmission initiated by the UE 1206.
[0153] In an example scenario, factory status information may be collected and analyzed by the host 1202. As another example, the host 1202 may process audio and video data which may have been retrieved from a UE for use in creating maps. As another example, the host 1202 may collect and analyze real-time data to assist in controlling vehicle congestion (e.g., controlling traffic lights). As another example, the host 1202 may store surveillance video uploaded by a UE. As another example, the host 1202 may store or control access to media content such as video, audio, VR or AR which it can broadcast, multicast or unicast to UEs. As other examples, the host 1202 may be used for energy pricing, remote control of non-time critical electrical load to balance power generation needs, location services, presentation services (such as compiling diagrams etc. from data collected from remote devices), or any other function of collecting, retrieving, storing, analyzing and / or transmitting data.
[0154] In some examples, a measurement procedure may be provided for the purpose of monitoring data rate, latency and other factors on which the one or more embodiments improve. There may further be an optional network functionality for reconfiguring the OTT connection 1250 between the host 1202 and UE 1206, in response to variations in the measurement results. The measurement procedure and / or the network functionality for reconfiguring the OTT connection may be implemented in software and hardware of the host 1202 and / or UE 1206. In some embodiments, sensors (not shown) may be deployed in or in association with other devices through which the OTT connection 1250 passes; the sensors may participate in the measurement procedure by supplying values of the monitored quantities exemplified above, or supplying values of other physical quantities from which software may compute or estimate the monitored quantities. The reconfiguring of the OTT connection 1250 may include message format,retransmission settings, preferred routing etc.; the reconfiguring need not directly alter the operation of the network node 1204. Such procedures and functionalities may be known and practiced in the art. In certain embodiments, measurements may involve proprietary UE signaling that facilitates measurements of throughput, propagation times, latency and the like, by the host 1202. The measurements may be implemented in that software causes messages to be transmitted, in particular empty or ‘dummy’ messages, using the OTT connection 1250 while monitoring propagation times, errors, etc.
[0155] Although the computing devices described herein (e.g., UEs, network nodes, hosts) 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.
[0156] 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 theprocessing 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.Terms
[0157] References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” and so forth, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0158] The description and claims may use the terms “coupled” and “connected,” along with their derivatives. These terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is used to indicate the establishment of wireless or wireline communication between two or more elements that are coupled with each other. A “set,” as used herein can refer to any whole number of items including one item.
[0159] An electronic device (such as the electronic device 102) stores and transmits (internally and / or with other electronic devices over a network) code (which is composed of software instructions and which is sometimes referred to as a computer program code or a computer program) and / or data using machine-readable media (also called computer-readable media), such as machine-readable storage media (e.g., magnetic disks, optical disks, solid state drives, read only memory (ROM), flash memory devices, phase change memory) and machine- readable transmission media (also called a carrier) (e.g., electrical, optical, radio, acoustical, or other form of propagated signals - such as carrier waves, infrared signals). Thus, an electronic device (e.g., a computer) includes hardware and software, such as a set of one or more processors (e.g., of which a processor is a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), other electronic circuitry, or a combination of one or more of the preceding) coupled to one or more machine-readable storage media to store code for execution on the set of processors and / or to store data. For instance, an electronic device may include non-volatile memory containing the code since the non-volatile memory can persist code / data even when the electronic device is turned off (when power is removed). When the electronic device is turned on, that part of the code that is to be executed by the processor(s) ofthe electronic device is typically copied from the slower non-volatile memory into volatile memory (e.g., dynamic random-access memory (DRAM), static random-access memory (SRAM)) of the electronic device. Typical electronic devices also include a set of one or more physical network interface(s) (NI(s)) to establish network connections (to transmit and / or receive code and / or data using propagating signals) with other electronic devices. For example, the set of physical NIs (or the set of physical NI(s) in combination with the set of processors executing code) may perform any formatting, coding, or translating to allow the electronic device to send and receive data whether over a wired and / or a wireless connection. In some embodiments, a physical NI may comprise radio circuitry capable of (1) receiving data from other electronic devices over a wireless connection and / or (2) sending data out to other devices through a wireless connection. This radio circuitry may include transmitted s), receiver(s), and / or transceiver(s) suitable for radio frequency communication. The radio circuitry may convert digital data into a radio signal having the proper parameters (e.g., frequency, timing, channel, bandwidth, and so forth). The radio signal may then be transmitted through antennas to the appropriate recipient(s). In some embodiments, the set of physical NI(s) may comprise network interface controlled s) (NICs), also known as a network interface card, network adapter, or local area network (LAN) adapter. The NIC(s) may facilitate in connecting the electronic device to other electronic devices allowing them to communicate with wire through plugging in a cable to a physical port connected to an NIC. One or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and / or hardware.
[0160] The terms “module,” “logic,” and “unit” used in the present application, may refer to a circuit for performing the function specified. In some embodiments, the function specified may be performed by a circuit in combination with software such as by software executed by a general-purpose processor.
[0161] Any appropriate steps, methods, features, functions, or benefits disclosed herein may be performed through one or more functional units or modules of one or more virtual apparatuses. Each virtual apparatus may comprise a number of these functional units. These functional units may be implemented via processing circuitry, which may include one or more microprocessor or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, and the like. The processing circuitry may be configured to execute program code stored in memory, which may include one or several types of memory such as read-only memory (ROM), random-access memory (RAM), cache memory, flash memory devices, optical storage devices, etc. Program code stored in memory includes program instructions for executing one or more telecommunications and / ordata communications protocols as well as instructions for carrying out one or more of the techniques described herein. In some implementations, the processing circuitry may be used to cause the respective functional unit to perform corresponding functions according one or more embodiments of the present disclosure.
[0162] The term unit may have conventional meaning in the field of electronics, electrical devices, and / or electronic devices and may include, for example, electrical and / or electronic circuitry, devices, modules, processors, memories, logic solid state and / or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and / or displaying functions, and so on, as such as those that are described herein.
Claims
CLAIMSWhat is claimed is:
1. A method to configure a telecommunication network (702), the method comprising: obtaining (502) identity of a set of target machines (124) and an array of parameters to evaluate configuration of the set of target machines, each parameter of the array of parameters to indicate one factor for target machine evaluation; obtaining (504) hardware and software information of the set of target machines based on the identity of the set of target machines; obtaining (506) a plurality of configuration options to be implemented on the set of target machines; making (508) a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment; identifying (510) a configuration option from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the array of parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment; and implementing (512) the configuration option on the set of target machines to deploy the set of target machines in the telecommunication network.
2. The method of claim 1, wherein the one set of values for the array of values includes a binary value indicating whether a criterion is met.
3. The method of claim 1 or 2, wherein each value within the one set of values for the array of values is weighted to signify relative importance of values within the one set of values.
4. The method of any one of claims 1 to 3, wherein the hardware and software information of the set of target machines indicates hardware capabilities of the set of target machine and a set of applications with versions deployed or deployable on the set of target machines.
5. The method of any one of claims 1 to 4, wherein applying the one configuration option of the plurality of configuration options to the one copy of the set of target machines in the simulation environment comprises:simulating (522) data being processed by the one copy of the set of target machines using the one configuration option on the one copy of the set of target machines; obtaining (524) the one set of values for the array of parameters based on the data being processed by one target machine of the set of target machines; and deriving (526) a single value from the one set of values for the array of parameters based on the data being processed by the one target machine, wherein the single value is to indicate a relative merit of the one configuration option to other configuration options of the plurality of configuration options.
6. The method of claim 5, wherein simulating the data being processed by the one copy of the set of target machines using the one configuration option on the one copy of the set of target machines comprises simulating interaction of the set of target machines with another set of machines to be deployed in the telecommunication network as the data being processed by the one copy of the set of target machines.
7. The method of any one of claims 1 to 6, wherein each of the plurality of configuration options includes a set configuration values in one or more layers within a plurality of layers within a telecommunication stack, wherein the plurality of layers within the telecommunication stack includes a management and orchestration layer, an application layer, a container orchestrating layer, and an infrastructure layer.
8. The method of any one of claims 1 to 7, wherein identifying the configuration option from the plurality of configuration options comprises using a reinforcement machine learning model to maximize a set of values for the array of parameters with applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment.
9. The method of any one of claims 1 to 8, wherein applying the plurality of configuration options follows an order where configuration options that have been updated more recently are tried earlier.
10. The method of any one of claims 1 to 9, wherein the plurality of configuration options is applied to the plurality of copies of the set of target machines in the simulation environment in parallel by executing a plurality of execution circuitry of a processor in parallel.
11. The method of any one of claims 1 to 10, wherein each configuration option of the plurality of configuration options includes a configuration and a rule applicable to the configuration.
12. The method of any one of claims 1 to 11, wherein each of the set of machines comprises a virtual machine or a container.
13. An electronic device (102) to configure a telecommunication network (702), comprising: a processor (642) and non-transitory machine-readable storage medium (649) that provides instructions that, when executed by the processor, are capable of causing the processor (642) to perform: obtaining (502) identity of a set of target machines (124) and an array of parameters to evaluate configuration of the set of target machines, each parameter of the array of parameters to indicate one factor for target machine evaluation; obtaining (504) hardware and software information of the set of target machines based on the identity of the set of target machines; obtaining (506) a plurality of configuration options to be implemented on the set of target machines; making (508) a plurality of copies of the set of target machines to test the plurality of configuration options in a simulation environment, one configuration option of the plurality of configuration options to be applied to one copy of the set of target machines in the simulation environment; identifying a configuration option from the plurality of configuration options based on sets of values for the array of parameters obtained from applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment, one set of values within the sets of values for the array of parameters to be obtained from applying the one configuration option to the one copy of the set of target machines in the simulation environment; and implementing the configuration option on the set of target machines to deploy the set of target machines in the telecommunication network.
14. The electronic device (102) of claim 13, the one set of values for the array of values includes a binary value indicating whether a criterion is met.
15. The electronic device (102) of claim 13 or 14, wherein each value within the one set of values for the array of values is weighted to signify relative importance values within the one set of values.
16. The electronic device (102) of any one of claims 13 to 15, wherein the hardware and software information of the set of target machines indicates hardware capabilities of the set of target machine and a set of applications with versions deployed or deployable on the set of target machines.
17. The electronic device (102) of any one of claims 13 to 16, wherein applying the one configuration option of the plurality of configuration options to the one copy of the set of target machines in the simulation environment comprises: simulating (522) data being processed by the one copy of the set of target machines using the one configuration option on the one copy of the set of target machines; obtaining (524) the one set of values for the array of parameters based on the data being processed by one target machine of the set of target machines; and deriving (526) a single value from the one set of values for the array of parameters based on the data being processed by the one target machine, wherein the single value is to indicate a relative merit of the one configuration option to other configuration options of the plurality of configuration options.
18. The electronic device (102) of any one of claims 13 to 17, wherein each of the plurality of configuration options includes a set configuration values in one or more layers within a plurality of layers within a telecommunication stack, wherein the plurality of layers within the telecommunication stack includes a management and orchestration layer, an application layer, a container orchestrating layer, and an infrastructure layer.
19. The electronic device (102) of any one of claims 13 to 18, wherein identifying the configuration option from the plurality of configuration options comprises using a reinforcement machine learning model to maximize a set of values for the array of parameters with applying the plurality of configuration options to the plurality of copies of the set of target machines in the simulation environment.
20. A machine-readable storage medium (649) that provides instructions that, when executed by a processor, are capable of causing an electronic device to perform a method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Autonomic resource partitions for adaptive networks
US11153229B2
Systems and Methods for Optimization of Application Performance on a Telecommunications Network
US20220138081A1
Active assurance of network slices
US20220158912A1
Virtualized cellular network multi-stage test and ticketing environment
US20230037124A1
Systems and methods for implementing a network resiliency testbed emulator
US20230396528A1