Wireless communication networks provide wireless data services to wireless communication devices like phones, computers, and other user devices. The wireless data services may include internet-access, data messaging, video conferencing, or some other data communication product. The wireless communication networks comprise wireless access nodes like Wireless Fidelity (WIFI) hotspots and Fifth Generation New Radio (5GNR) cell towers. The wireless communication networks also comprise wireless network slices. The wireless network slices have customized software that is tailored for their specific wireless data services. For example, an augmented reality device may use an Ultra-Reliable Low Latency Communication (URLLC) slice while a television device may use an enhanced Mobile Broadband (eMBB) slice.
The typical wireless network slice comprises software that executes in a data center to form a network element that transfers user data and/or controls the transfer of the user data. Exemplary network elements that are used to form wireless network slice include User Plane Functions (UPFs) and Policy Control Functions (PCFs). The data center comprises microprocessors that execute the software for the wireless network slices. The microprocessors also execute operating systems to control the execution of the slice software. Exemplary data centers include Network Function Virtualization Infrastructures and Management and Orchestration systems (MANO). Exemplary data center operating system comprise Linux and Unix.
The microprocessors include self-diagnostic tools that measure their performance. The operating systems also have diagnostic tools that measure their performance and the performance of the microprocessors. Exemplary operating system and microprocessor performance data comprises kernel identifier, software process identifier, microprocessor usage metrics, memory usage metrics, network usage metrics, instruction processing metrics, and interrupt handling metrics-although there are many more. The microprocessor usage metrics indicate the average percentage of processing resources that is used to execute a slice software process during a given time period. The memory usage metrics indicate the amount of microprocessor memory and external memory that are used to execute a slice software process during a given time period. The network usage metrics indicate the average amount data that is exchanged over a data network to execute the slice software process during a given time period. The instruction processing metrics indicate the amount of slice software instructions that are handled by the microprocessor during a given time period. The interrupt handling metrics indicate the amount of hardware interrupts and software interrupts that were handled to execute a slice software process during a given time period. Some additional performance metrics include: thread count, process count, page faults, context switches, run queue, blocked processes, server time, user time, system time. I/O wait time, idle time, the number of jobs executed, the duration of process runs, trace memory usage, server load, memory availability, files/directories, network I/O statistics, power supply rating, physical/logical drive failures, fan speed, temperature, voltage, Network Time Protocol (NTP) status, NTP server name, NTP stratum level, NTP corrections, NTP poll interval, external memory throughput, data network throughput, packets per port, packets per protocol, packets per sender/receiver, clock rate, instructions per clock, and instructions per second.
Distributed ledgers have multiple ledger nodes that perform ledger transactions in parallel. The ledger nodes validate a transaction when a consensus is reached among the nodes for the ledger transaction. The typical ledger transaction entails a smart contract that processes a data input to generate a data output. For example, a ledger may process the data inputs of a current balance and an expenditure to generate the data output of a new balance. The distributed ledger nodes each store transaction data in data blocks that also include a hash of the previous data block. Thus, the data blocks are linked by the hashes and the transaction data is immutable.
Unfortunately, the wireless communication networks do not effectively use operating system and microprocessor diagnostic tools to determine the health of a wireless network slice. Moreover, the wireless communication networks fail to efficiently use the resulting wireless network slice health data to take remedial actions like moving the wireless network slice to a new microprocessor or operating system.
In some examples, a wireless network slice is managed as follows. An operating system is executed in a microprocessor. Wireless network slice software is executed in the microprocessor under the control of the operating system. Microprocessor performance is measured when executing the operating system and the wireless network slice software and corresponding microprocessor measurement data is generated. Operating system performance is measured when the operating system is executing and corresponding operating system measurement data is generated. Wireless network slice information is generated based on the microprocessor measurement data and the operating system measurement data. The execution of the wireless network slice software is modified based on the wireless network slice information.
In some examples, a Central Processing Unit (CPU) executes an operating system. The CPU executes wireless network slice software under the control of the operating system. A performance monitor obtains CPU measurement data that indicates CPU performance during the execution of the operating system and the wireless network slice software. The performance monitor obtains operating system measurement data that indicates operating system performance during the execution of the operating system. A smart contract receives the microprocessor measurement data and the operating system measurement data. The smart contract generates wireless network slice information based on the microprocessor measurement data and the operating system measurement data. The smart contract modifies the execution of the wireless network slice software based on the wireless network slice information.
In some examples, a wireless communication system manages a wireless network slice. In the wireless communication system, a microprocessor executes an operating system and executes wireless network slice software under the control of the operating system. A performance monitor system obtains microprocessor measurement data that indicates microprocessor performance during the execution of the operating system and the wireless network slice software. The performance monitor system obtains operating system measurement data that indicates operating system performance during the execution of the operating system. A network control system generates wireless network slice information based on the microprocessor measurement data and the operating system measurement data. The network control system modifies the execution of the wireless network slice software based on the wireless network slice information.
In some examples, wireless communication system 100 operates as follows. Microprocessor 111 executes operating system 112. Microprocessor 111 executes software for wireless network slice 113 under the control of operating system 112. Microprocessor 111 and operating system 112 generate microprocessor performance data that indicates the performance of microprocessor 111 when microprocessor 111 executes operating system 112 and the software for wireless network slice 113. Exemplary microprocessor measurement data comprises instruction processing metrics, memory usage metrics, and interrupt handling metrics. Microprocessor 111 and operating system 112 generate operating system performance data that indicates the performance of operating system 112 when operating system 112 is executing. Exemplary operating system measurement data comprises kernel identifier, software process identifier, microprocessor usage metrics, memory usage metrics, and network usage metrics.
Performance monitor system 120 obtains the microprocessor performance data and the operating system performance data from operating system 112. For example, performance monitor system 120 may make Application Programming Interface (API) calls to operating system 112 for the performance data. Performance monitor system 120 transfers the microprocessor measurement data and the operating system measurement data to network control system 130.
Network control system 130 generates wireless network slice information based on the microprocessor measurement data and the operating system measurement data. Network control system 130 modifies the execution of the software for wireless network slice 113 based on the wireless network slice information. For example, a smart contract in a distributed ledger may generate wireless network slice information based on the microprocessor measurement data and the operating system measurement data. The smart contract may then direct a Management and Orchestration (MANO) system to control a Network Function Virtualization Infrastructure (NFVI) to stop the execution of the software for wireless network slice 113. The MANO system may direct the NFVI to use a different microprocessor and/or operating system to execute the software for wireless network slice 113.
Wireless communication device 101 comprises a phone, computer, vehicle, sensor, or some other user communication apparatus. Wireless communication system 100 comprises wireless access nodes, network controllers, data routers, and/or some other wireless communication apparatus. Wireless communication device 101 and wireless communication system 100 comprise one or more radios that wirelessly communicate using wireless protocols like Wireless Fidelity (WIFI), Fifth Generation New Radio (5GNR), Long Term Evolution (LTE), Low-Power Wide Area Network (LP-WAN), Near-Field Communications (NFC), Code Division Multiple Access (CDMA), Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), and satellite data communications.
Wireless communication device 101, processing circuitry 110, performance monitor system 120, and network control system 130 comprise microprocessors, software, memories, transceivers, bus circuitry, and/or some other data processing components. The microprocessors comprise Digital Signal Processors (DSP), Central Processing Units (CPU), Graphical Processing Units (GPU), Application-Specific Integrated Circuits (ASIC), and/or some other data processing hardware. The memories comprise Random Access Memory (RAM), flash circuitry, disk drives, and/or some other type of data storage. The memories store software like operating systems, utilities, protocols, applications, and functions. The microprocessors retrieve the software from the memories and execute the software to drive the operation of wireless communication system 100 as described herein.
Performance monitor system 120 transfers performance Application Programming Interface (API) calls to operating system 112. Operating system 112 transfers the microprocessor data and operating system performance data to performance monitor system 120 in response to the API calls. Performance monitor system 120 transfers the microprocessor measurement data and the operating system measurement data to network control system 130. Network control system 130 generates wireless network slice information based on the microprocessor measurement data and the operating system measurement data. Network control system 130 generates a slice instruction based on the wireless network slice information. Network control system 130 transfers the slice instruction to processing circuitry 110. Processing circuitry 110 modifies the execution of the software for wireless network slice 113 in response to the wireless network slice instruction.
Advantageously, wireless communication system 100 effectively uses operating system and microprocessor diagnostic tools to determine the health of wireless network slice 113. Moreover, the wireless communication system 100 efficiently uses the resulting wireless network slice information to take remedial actions like moving software for wireless network slice 113 to a new microprocessor or operating system.
A CPU or GPU (CPU/GPU) in NFVI 510 executes an operating system. The CPU/GPU also executes UPF 512 for slice 511 under the control of the operating system. The term CPU/GPU refers to the CPU or GPU that executes UPF 512. PM 521 calls the operating system for operating system performance data and for CPU/GPU performance data for UPF 512. The CPU/GPU and the operating system measure their performance, and the operating system reports corresponding CPU/GPU metrics and operating system metrics for UPF 512 to PM 521.
Exemplary CPU/GPU metrics comprises instruction processing metrics, memory usage metrics, and interrupt handling metrics. The instruction processing metrics indicates the amount of UPF 512 instructions that are handled by the CPU/GPU during a given time period.
The memory usage metrics indicate the amount of memory used by CPU/GPU to execute UPF 512 during a given time period. The interrupt handling metrics indicate the amount of hardware interrupts that were handled to execute UPF 512 during a given time period. Exemplary operating system metrics data comprise kernel identifier, software process identifier, microprocessor usage metrics, memory usage metrics, and network usage metrics. The microprocessor usage metrics indicate the average percent of CPU/GPU processing that is used to execute UPF 512. The memory usage metrics indicate the average percent of internal memory and the average percent of external memory that are used to execute UPF 512. The network usage metrics indicate the average amount data that is exchanged over Network Interface Cards (NICs) to execute UPF 512. Some additional performance metrics include: thread count, process count, page faults, context switches, run queue, blocked processes, server time, user time, system time, I/O wait time, idle time, the number of jobs executed, the duration of process runs, trace memory usage, server load, memory availability, files/directories, network I/O) statistics, power supply rating, physical/logical drive failures, fan speed, temperature, voltage, Network Time Protocol (NTP) status, NTP server name, NTP stratum level. NTP corrections, NTP poll interval, external memory throughput, data network throughput, packets per port, packets per protocol, packets per sender/receiver, clock rate, instructions per clock, and instructions per second.
Smart contract 531 generates wireless network slice information 533 based on the CPU/GPU metrics and the operating system metrics. For example, smart contract 531 may generate a slice health score based on the metrics by comparing the metrics to thresholds and ranges to determine how close the execution of UPF 512 is to expected healthy results. The slice health score may have a CPU/GPU component and operating system component that are combined into a data string. The CPU/GPU component might equal (the instruction processing metric−a healthy instruction level)+(the memory usage metric−a healthy memory level)+(the interrupt handling metric−a healthy interrupt level). The OS component may equal (the microprocessor usage metric−a healthy microprocessor level)+(the memory usage metric−a healthy memory level)+(the network usage metric−a healthy network level). To illustrate a CPU/GPU health score, a CPU/GPU metric that indicates that the CPU/GPU is using far less instructions per second to execute UPF 512 than a healthy slice would require indicates an unhealthy CPU/GPU. To illustrate an operating system health score, an operating system metric that indicates that the operating system is using far more network I/O to execute UPF 512 than a healthy slice would require indicates an unhealthy operating system.
After reaching a consensus on wireless network slice information 533 with the smart contracts in distributed ledger nodes 540, smart contract 531 stores wireless network slice information 533 in ledger block 532 and determines slice action 534 (if any) based on wireless network slice information 533. For example, smart contract 531 may determine the need to stop the execution of UPF 512 when the slice health score exceeds health thresholds for both the CPU/GPU and the OS. Smart contract 531 may determine the need to use a different CPU/GPU for UPF 512 when the slice health score exceeds the health threshold for the CPU/GPU but not the OS. Smart contract 531 may determine the need to use a different OS for UPF 512 when the slice health score exceeds the health threshold for the OS but not the CPU/GPU.
After reaching a consensus on slice action 534 with the smart contracts in distributed ledger nodes 540, smart contract 531 stores slice action 534 in ledger block 532 and transfers slice action 534 to NFVO 522. NFVO 522 converts slice action into an NFVI instruction in manner similar to the conversion of Operational Support System (OSS) instructions into NFVI instructions. NFVO 522 transfers the NFVI instruction for UPF 512 to VIM 524. VIM 524 transfers the NFVI instruction for UPF 512 to NFVI 510. In response to the NFVI instruction, NFVI 510 implements the slice action. For example, NFVI 510 may stop the execution of UPF 512, use a different CPU/GPU for UPF 512, or use a different operating system for UPF 512.
One of the CPU/GPUs in hardware 901 executes one of operating systems 903 and executes UPF SW 912 under the control of that operating system. The operating system reads CPU/GPU metrics from registers in this CPU/GPU. The operating system also determines operating system metrics. The operating system reports the CPU/GPU metrics and the operating system metrics to PM SW 821 in MANO 520 in response to API calls from PM SW 821.
PM 521 transfers the OS and CPU/GPU performance metrics to smart contract 531. Smart contract 521 determines wireless network slice information 533 based on the OS and CPU/GPU metrics. For example, smart contract 531 may generate a slice health score based on the metrics by comparing the metrics to healthy thresholds and ranges to determine how close the execution of UPF 512 is to expected healthy results. A CPU/GPU metric that indicates that the CPU/GPU is using far less instructions per second to execute UPF 512 than a healthy slice would require indicates an unhealthy CPU/GPU. An operating system metric that indicates that the operating system is using far more network I/O to execute UPF 512 than a healthy slice would require indicates an unhealthy operating system. The slice health score may have a CPU/GPU component, and an operating system component.
After reaching a consensus on wireless network slice information 533 with distributed ledger nodes 540 (not shown on
In hardware 1101, CPU 1110 or GPU 1112 executes operating system 1102, vCPU 1109 or vGPU 1111, vOS 1108, and slice VNF 1104. Slice VNF 1104 executes under the control of operating system 1102, vCPU 1109 or vGPU 1112, and vOS 1108. Performance monitor 1105 requests OS and CPU/GPU performance metrics for slice VNF 1104 from operating system 1102 (depending on which microprocessor executes slice VNF 1104). Operating system 1102 responds to the request from performance monitor 1105 with performance data for operating system 1102 and for CPU 1110 or GPU 1112 (depending on which microprocessor executes slice VNF 1104). Performance monitor 1105 requests vOS and vCPU or vGPU performance metrics for slice VNF 1104 from vOS 1108 (depending on which virtual microprocessor executes slice VNF 1104), and vOS 1108 responds to the request from performance monitor 1105 with performance data for vOS 1108 and vCPU 1109 or vGPU 1111 (depending on which virtual microprocessor executes slice VNF 1104).
Performance monitor 1105 transfers the OS, CPU/GPU, vOS, and vCPU/vGPU performance metrics to smart contract 1106. Smart contract 1106 generates a slice health score based on the metrics by comparing the metrics to thresholds and ranges to determine how close the execution of slice VNF 1104 is to expected healthy results. The slice health score may have a CPU/GPU component, OS component, vCPU/vGPU component, and vOS component that are combined into a data string.
Smart contract 1106 determines a slice action based on the slice health score. The slice action may entail using different CPU/GPU, OS, vCPU/vGPU, and/or vOS for slice VNF 1104. Smart contract 1106 indicates the slice action to MANO 1107. MANO 1107 controls hardware 1101, operating system 1102 and virtual layer 1103 to implement the slice action. For example, virtual layer 1103 may use a different vCPU or vGPU when the vCPU or vGPU health score is poor and/or use a different vOS when the vOS health score is poor.
The wireless communication system circuitry described above comprises computer hardware and software that form special-purpose data communication circuitry to manage a wireless network slice. The computer hardware comprises processing circuitry like CPUs, DSPs, GPUs, transceivers, bus circuitry, and memory. To form these computer hardware structures, semiconductors like silicon or germanium are positively and negatively doped to form transistors. The doping comprises ions like boron or phosphorus that are embedded within the semiconductor material. The transistors and other electronic structures like capacitors and resistors are arranged and metallically connected within the semiconductor to form devices like logic circuitry and storage registers. The logic circuitry and storage registers are arranged to form larger structures like control units, logic units, and Random-Access Memory (RAM). In turn, the control units, logic units, and RAM are metallically connected to form CPUs, DSPs, GPUs, transceivers, bus circuitry, and memory.
In the computer hardware, the control units drive data between the RAM and the logic units, and the logic units operate on the data. The control units also drive interactions with external memory like flash drives, disk drives, and the like. The computer hardware executes machine-level software to control and move data by driving machine-level inputs like voltages and currents to the control units, logic units, and RAM. The machine-level software is typically compiled from higher-level software programs. The higher-level software programs comprise operating systems, utilities, user applications, and the like. Both the higher-level software programs and their compiled machine-level software are stored in memory and retrieved for compilation and execution. On power-up, the computer hardware automatically executes physically-embedded machine-level software that drives the compilation and execution of the other computer software components which then assert control. Due to this automated execution, the presence of the higher-level software in memory physically changes the structure of the computer hardware machines into special-purpose data communication circuitry to manage the wireless network slice.
The above description and associated figures teach the best mode of the invention. The following claims specify the scope of the invention. Note that some aspects of the best mode may not fall within the scope of the invention as specified by the claims. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. Thus, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.