RLC channel management for low memory 5G devices

In an approach to RLC channel management for low memory 5G devices, responsive to detecting a memory overload in an RLC layer of a 5G user equipment, whether slices of a plurality of slices are merger candidates is determined. Responsive to determining that the slices are merger candidates, whether any merger candidates can share a transportation logical entity is determined, where merger candidates can share the transportation logical entity if performance and quality parameters are within predetermined limits. The merger candidates that can share the transportation logical entity are marked as allowed candidates. Responsive to determining that at least one allowed candidate has a workload that is below a predetermined threshold, the allowed candidates are merged into merged flows.

BACKGROUND

The present invention relates generally to the field of wireless communication networks, and more particularly to radio link control (RLC) channel management for low memory fifth generation (5G) telecommunications (telecom) devices.

In telecommunications, 5G is the fifth-generation technology standard for broadband cellular networks. 5G enables a new kind of network that is designed to connect virtually everyone and everything together including machines, objects, and devices. 5G wireless technology is meant to deliver higher multi-Gbps peak data speeds, ultra-low latency, greater reliability, massive network capacity, increased availability, and a more uniform user experience to more users. Higher performance and improved efficiency empower new user experiences and connects new industries. 5G is much more than the next generation of wireless networks. 5G is the connectivity fabric that will weave everything and everyone together.

5G is a significant evolution of 4G Long Term Evolution (LTE) networks. 5G has been designed to meet the very large growth in data and connectivity not only of User Equipment (UE) such as smart phones, but also the internet of things (IoT) with billions of connected devices, and new technologies such as driverless cars. 5G will initially operate in conjunction with existing 4G networks before evolving to fully standalone networks in subsequent releases and coverage expansions.

SUMMARY

Embodiments of the present invention disclose a method, a computer program product, and a system for RLC channel management for low memory 5G devices. In one embodiment, responsive to detecting a memory overload in an RLC layer of a 5G user equipment, whether one or more slices of a plurality of slices are one or more merger candidates is determined. Whether any merger candidates can share a transportation logical entity is determined, where merger candidates can share the transportation logical entity if performance and quality parameters are within predetermined limits. The one or more merger candidates that can share the transportation logical entity are marked as one or more allowed candidates. Responsive to determining that at least one allowed candidate of the one or more allowed candidates have a workload that is below a predetermined threshold, one or more allowed candidates are merged into one or more merged flows.

DETAILED DESCRIPTION

Advancements in the telecommunications industry have been a key enabler for many technologies including Artificial Intelligence (AI) to succeed by breaking the barrier of various factors like sedentary operations, lower bandwidth, etc. 5G technology is expected to serve as a rich enabler to push the dependent technologies to an even greater level through mobile bandwidth of 1 GBPS, convergence of IoT device access, etc. The 5G network is expected to become a part of the human community through various features including observing the surroundings, reasoning, inferring, and making decisions like humans.

In a 5G telecom network, the MAC layer of the New Radio (NR) provides services to the RLC layer controls in the form of logical channels. These logical channels are virtualized communication network interfaces that are used to transfer input/output (I/O) commands (network data packets) and control instructions over the radio interface and the 5G fixed access network. A logical channel is defined by the type of information it carries and is generally differentiated as a control channel, used for transmission of control and configuration information, or as a traffic channel used for user data. 5G new radio technology allows the creation of multiple logical channels over a single radio bearer network using the 5G network slicing models. These channels are used to carry specialized traffic from UE devices to the 5G network. As multiple channels are created from a single device to the 5G network, the channels deliver parallelism in the packet transmission as well as reduce the exclusive locking of the 5G network resources to realize performance benefits.

Smarter mobile applications are gaining the performance benefits of 5G logical channel-based parallelism with the creation of multiple Dedicated Traffic Channels (DTCH) from the UE to the 5G network. As the logical channels are created over the radio interface, the E-UTRAN Node B (eNodeB) is the hardware in the cell that is responsible for management of these DTCH over the radio interface. In the eNodeB, the resources are allocated to the DTCH based on its nature (S1, radio etc.), and parameters are negotiated at the time of channel creation. The eNodeB manages the logical channel over the NR and connects with the Serving Gateway (S-GW) of the 5G telecom network, and transmits the packets collected from all the channels using compression, alignment and multiplexing techniques. The data sending and reception in a bearer channel are transported by an S1 bearer between an S-GW and an eNodeB, and by a radio bearer between a UE and an eNodeB.

5G is more memory hungry compared to previous generations of mobile networks. Current mobile networks are just as much about transmitting4K video as they are talk and text. Connected devices not only include smartphones, but sensors, parking meters, smart cars, wearables, and utilities. Telecom infrastructure is now networking and compute infrastructure, flash, DRAM and emerging memories are supplanting SRAM and TCAM. The spread of compute needs across the spectrum from core to edge is driving heterogeneity in terms of the requirements of the memory attached to all the various compute elements.

Theoretically, a 5G telecom network can support many logical channels that can be created between a UE and an eNodeB. When a channel creation is initiated at the first logical endpoint in the 5G network, the required resources are allocated to it so that the packets on that RLC channel can be processed at high speed. Additionally, these logical RLC tunnels provide the capability of handling dissimilar traffic coming from each application or set of applications and help the network slicing mode to define the priorities of the incoming traffic. Accordingly, it can prioritize over various internal network components. This leads to the creation of multiple RLC tunnels between the UE and the eNodeB entries. These tunnels are then used for parallel packet transmission flow by individual MAC connectors and multiplexers for packet transmission over the Radio Access Network (RAN) interface. In this case, as multiple logical channels are created at the UE, each channel has its own resource demand at each logical endpoint. This resource demand includes memory and compute requirements at each end to process the workload effectively. When any RLC tunnel is being created at the UE, a set of memory pages will be allocated to it. These are contiguous memory blocks having DMA capability at the physical layer, and therefore the pages need to be physically contiguous at the memory address location. Since the amount of contiguous memory is limited in the UE and other endpoint devices, swap partitions are used to swap the channels across the interfaces. In case of low memory devices that need to be enabled for 5G networks, this is one of the common problems where the least used or low workload channels are being frequently migrated to swap partitions to allocate the local memory space for the active channels. This allows for operating more channels while working with lower memory devices on 5G network.

In the case of certain RLC channels that have less traffic, it is easier to choose the channel that needs to be moved to the swap partition for a new set of RLC slices which are accessing the workload. However, in the case where there are more channels, each submitting a small amount of workload all the time over lower layers like the MAC, it becomes difficult to choose channels as swap candidates. As the RLC channel is moved to the swap space, all the packets common to this channel need to be quiesced until it is swapped back to the main memory of the node. In this case, since small I/O packet workflow is being performed by the channels, the workflow may be too low to trigger a move from swap to main memory. This creates performance issues in the UP stack of the 5G RLC layer. The applications accessing different channels, performing lower workload than the full bandwidth cannot share physically contiguous pages as they are exclusively allocated to each RLC tunnel for packet transmission. Additionally, even if each slice is less loaded, some of the channels need to be moved for the swap partition home and this introduces packet delay for the applications accessing those RLC channels. All the I/O packets from those channels are marked on hold until the channel is resumed, i.e., when the channel has been returned to main memory from swap. Because of this, the performance of the system degrades drastically even if the CPU, memory and storage resources are not occupied. This creates thrashing of the channels at logical endpoints. For simplicity, consider this is a UE device, but this situation can happen at any component, such as the eNodeB or S-GW, because of inappropriate resource consumption at the RLC of the 5G UP stack.

The present invention provides a method, computer program product, and system that works with 5G enabled logical endpoint devices and provides a mechanism to alleviate frequent swapping of the RLC channels in the swap partition in case the selected candidates and other related candidates are not using the allocated pages. The present invention provides a way by which the RLC channel swapping manager detects the overall workload on certain types of logical channels in the RLC protocol layer, and accordingly decides to merge or unmerge the logical channels instead of swapping them across memory locations. The workload manager in the 5G UP RLC protocol stack has a monitoring daemon that collects information regarding current workload from all the logical channels that are detected active. When the system detects that some of the slices need to be moved to the swap disk partition, the QCI and bandwidth characteristics of the channel are determined by an examination daemon and the channels that are less active are selected for merging (if their respective policies allow for merger). The information from upper layers like the SDAP is pre-gathered to get the nature of the logical channels security provisioning which is catalogued based on their merging and security needs.

If the channels can share a transportation logical entity, then they are marked for merge provisioning. Channels can share a transportation logical entity, i.e., can be merged, if the channels are less loaded, and parameters including, but not limited to, the packet delay budget, Guaranteed Bit Rate (GBR)/Non-Guaranteed Bit Rate (Non-GBR) compliance and QCI values are in a permissible range. In case memory resources overallocation is detected, the swapping trigger is generated by the resource manager in the device. Based on reception of the signal, the information for the merger channels is inquired from pre-computed handshake information at the RLC. Once the changes are selected, the workload examiner will be invoked to make the dynamic merging decisions based on determining which channels from the merger list have lower workload. In case there are multiple channels detected that have less than a defined limit, e.g., 30%, they can be combined, or merged, to gain performance benefits. When the candidates are selected, their identities will be transferred to the merging unit that transparently handles packet flow routing for the upper layer I/O workload. The RLC controller receives the logical UUIDs of the RLC tunnels that need to be merged, creates a local table for the merge mapper data structures and selects the channels.

While making the final merger decision, the QCI co-categories and packet transmission delay tolerance are considered and validated between the candidates since this directly effects the transmission over the MAC and RLC interfaces. In case the QCI characteristics have differences, the channel with the better QCI will be selected as main and another tunnel will be marked as auxiliary. The multiplexer engine will keep track of main and auxiliary candidates for merging and then real time packet forwarding is triggered on an auxiliary tunnel.

When any new I/O transmission or reception interrupt is received by the RLC protocol from the MAC or the SDAP, the identities are mapped to the mergers and other usual transmission flows and forwarding layers are invoked. While formulating the RLC header in the packets, the SDAP identify is invoked and accordingly the RLC_ID is selected for packet embedding. If the packet is being received for the auxiliary channel, the RLC_ID of the main will be overridden while framing the RLC header for the uplink packets. In case the of downlink flow, the exact reverse approach is used wherein the extracted RLC_ID is mapped with the SDAP IDs and in case the RLC_ID is the ID of the main channel, then the selection of SDAP channel will be made to select upper layer submissions.

Since the auxiliary candidate's packet flow is being forwarded to another RLC_ID in a transparent way, the original memory pages can be moved to the swap partition for a longer period of time without quiescing the application workload. If the merger main experiences bandwidth overloading, then the original policies will be resumed to get optimal performance of the applications accessing these RLC transmissions entities. Additionally, as the resources are used in an optimal way, this further helps to add more application tunnels from the SDAP layer on low memory platforms and improves the low memory devices to run more applications with optimal page utilization in a 5G telecom network.

FIG.1is a functional block diagram illustrating a distributed data processing environment, generally designated100, suitable for operation of 5G channel management program142in accordance with at least one embodiment of the present invention. The term “distributed” as used herein describes a computer system that includes multiple, physically distinct devices that operate together as a single computer system.FIG.1provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

Distributed data processing environment100includes computing device110and UE140, which are connected to 5G network130. Computing device110is also connected to core network120. Core network120can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of the three, and can include wired, wireless, or fiber optic connections. Core network120can include one or more wired and/or wireless networks that are capable of receiving and transmitting data, voice, and/or video signals, including multimedia signals that include voice, data, and video information. In general, core network120can be any combination of connections and protocols that will support communications between computing device110and other computing devices (not shown) within distributed data processing environment100.

Computing device110can be a standalone computing device, a management server, a web server, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In an embodiment, computing device110can be a base station for a cellular communication network, including an eNodeB base station for a 5G telecommunications network. In an embodiment, computing device110can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with other computing devices (not shown) within distributed data processing environment100via core network120. In another embodiment, computing device110can represent a server computing system utilizing multiple computers as a server system, such as in a cloud computing environment. In yet another embodiment, computing device110represents a computing system utilizing clustered computers and components (e.g., database server computers, application server computers) that act as a single pool of seamless resources when accessed within distributed data processing environment100.

UE140can be a smart phone, standalone computing device, a computer device incorporated into a vehicle, a mobile computing device, or any other electronic device or computing system capable of receiving, sending, and processing data. In an embodiment, UE140can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with other computing devices (not shown) within distributed data processing environment100via 5G network130.

In an embodiment, UE140includes 5G channel management program142. In an embodiment, 5G channel management program142is a program, application, or subprogram of a larger program for RLC channel management for low memory 5G devices. In an alternative embodiment, 5G channel management program142may be located on any other device accessible by UE140via 5G network130.

In an embodiment, UE140includes information repository144. In an embodiment, information repository144may be managed by 5G channel management program142. In an alternate embodiment, information repository144may be managed by the operating system of UE140alone, or together with, 5G channel management program142. Information repository144is a data repository that can store, gather, compare, and/or combine information. In some embodiments, information repository144is located externally to UE140, and is accessed through a communication network, such as 5G network130. In some embodiments, information repository144is stored on UE140. In some embodiments, information repository144may reside on another computing device (not shown), provided that information repository144is accessible by UE140. Information repository144may include 5G system configuration data, UE data, UP data, channel data, merger data, other data that is received by 5G channel management program142from one or more sources, and data that is created by 5G channel management program142.

Information repository144may be implemented using any volatile or non-volatile storage media for storing information, as known in the art. For example, Information repository144may be implemented with a tape library, optical library, one or more independent hard disk drives, multiple hard disk drives in a redundant array of independent disks (RAID), SATA drives, solid-state drives (SSD), or random-access memory (RAM). Similarly, Information repository144may be implemented with any suitable storage architecture known in the art, such as a relational database, an object-oriented database, or one or more tables.

FIG.2is an example illustration of a 5G User Plane (UP) packet encoding-decoding, in accordance with an embodiment of the present invention. The example ofFIG.2includes SDAP210. The SDAP sublayer exists only in the user plane in both the eNodeB and the UE, e.g., UE140fromFIG.1. The eNodeB interfaces to upper layers via Quality of Service (QoS) flows and to the Packet Data Convergence Protocol (PDCP) lower layer via Data Radio Bearers (DRBs). Traffic from QoS flows are mapped to suitable DRBs. This is an essential role of the SDAP.

FIG.2also includes radio bearers RBx212and RBy214. Radio bearers are similar to logical channels for user control data.

PDCP220is a layer of the NR protocol stack. It is placed above the RLC and below the SDAP in the Radio Protocol Stack in the 5G NR. PDCP220ofFIG.2provides services to SDAP210including transfer of user plane data, transfer of control plane data, header compression, ciphering, and integrity protection.

FIG.2also includes RLC230and MAC240. RLC230is a layer 2 Radio Link Protocol used on the air interface. RLC230is located above MAC240and below PDCP220. MAC240is the layer that basically provides the radio resource allocation service and the data transfer service to the upper layers. A transport block for the Protocol Data Unit (PDU) typically consists of a header, MAC subheader, and a payload. An example of a MAC PDU is shown inFIG.2as MAC PDU242.

FIG.3is an example of the structural view of the PDCP layer and the RLC channels in the User Plane (UP), in accordance with an embodiment of the present invention. In the example ofFIG.3, PDCP sublayer310is the part of the LTE layer 2 protocols that is responsible for the IP header compression of user-plane data packets in order to reduce the number of information bits transmitted over the air-interface and to improve transmission efficiency. PDCP sublayer310contains Control Service Access Point (C-SAP)312, the logical connection (interface) between the PDCP and the SDAP, e.g., PDCP220and SDAP210fromFIG.2. PDCP sublayer310also contains PDCP Service Access Points (SAPs)314, which are the interfaces between the SDAP and the PDCP.

RLC sublayer320is a layer 2 radio link protocol used in UMTS, LTE and 5G on the air interface, for example, RLC230fromFIG.2. RLC sublayer320is located above the MAC layer and below the PDCP layer, e.g., MAC240and PDCP220fromFIG.2. RLC sublayer320contains RLC Unacknowledged Mode (UM)-SAP channels322and RLC Acknowledged Mode (AM)-SAP channels324, which are the logical connection (interface) between the RLC and the PDCP. In acknowledged mode, an ACK signal is passed between communication entities to confirm to another party that the message is received. In unacknowledged mode, the packets are assumed to be received once they are sent from the initiator and no ACK signal is expected.

FIG.4illustrates an example of the memory swap management on the User Equipment (UE), in accordance with an embodiment of the present invention. In the example ofFIG.4, three applications, APP1402, APP2404, and APP3406, are connected to SDAP420of the UE via Connections412,414, and416respectively. SDAP420is, for example, SDAP210fromFIG.2. The UE has memory configured as Memory Space430, which is the main memory of the UE, and Swap Partition440, a section of the main memory reserved for swapping data into and out of memory space430.

Memory space430includes Memory Block432, Memory Block434, and Memory Block436. Memory blocks432and434have been allocated to APP2404. Packets from APP3406, however, are on hold because the allocation for the RLC_ID of APP3406was moved to swap partition440. As a result, APP3406experiences more latency because Swap Memory Block442, which was allocated to APP3406, must by swapped into Memory Block436in memory space430before the packets from APP3406can be processed. The actual swapping of swap memory block442to memory block436is illustrated by Swap Connection450.

FIG.5is a block diagram of the system architecture for an embodiment of the 5G channel management program. The block diagram ofFIG.5includes Application Layer510, which includes App Instances512. App instances512may be, for example, APP1402, APP2404, and APP3404fromFIG.4. App layer510connects to SDAP520, which is, for example, SDAP210fromFIG.2, which in turn connects to PDCP Layer530, which is, for example PDCP220fromFIG.2. RLC Layer540, which is, for example, RLC230fromFIG.2, includes Swap Manager542. Swap manager542handles the memory swapping between Memory Space550and Swap Partition560. Memory space550and swap partition560are, for example, memory space430and swap partition440, respectively, fromFIG.4.

FIG.6is an example of a virtualized RLC for better traffic flow in low memory platforms on the UE, e.g., user equipment140fromFIG.1, in accordance with an embodiment of the present invention. The example ofFIG.6shows the same memory swap management ofFIG.4, but with the present invention included. In the example ofFIG.6, three applications, APP1602, APP2604, and APP3606, are connected to SDAP620of the UE. SDAP620is SDAP420fromFIG.4. The UE has memory space630and swap partition640, which are memory space430and swap partition440, respectively, fromFIG.4. In this example, however, while APP3406fromFIG.4was allocated memory in swap memory block442of swap partition440, here instead of swapping memory blocks as inFIG.4, the present invention has merged the 5G slices from APP3606with the slices from APP2604, as shown by Virtualized RLC Connection622and Virtualized RLC Connection624. Therefore, using the present invention, the packets from APP3606utilize memory blocks632and634in memory space630, instead of memory block642in swap partition640. Memory space630also includes Memory Block636, which is memory block436fromFIG.4. This avoids the delay associated with swapping between main memory and the swap partition, and therefore improves overall performance.

FIG.7is a flowchart depicting operational steps of the procedure performed by the 5G channel management program that handles the mapper classes and polling on a UE within the distributed data processing environment ofFIG.1, in accordance with an embodiment of the present invention. In an alternative embodiment, the steps of workflow700may be performed by any other program while working with 5G channel management program142.

In an embodiment, 5G channel management program142receives user plane 5G protocol stack updates for mapping classes and polling the connected channels. In an embodiment, 5G channel management program142starts polling for the overall workload on the channel. In an embodiment, 5G channel management program142updates the dynamic workload manager structure to accept pre-cooked data. In an embodiment, 5G channel management program142determines the status of the connected channels as either merged or unmerged.

It should be appreciated that embodiments of the present invention provide at least for operational steps of the procedure performed by the 5G channel management program that handles the mapper classes and polling on a UE within the distributed data processing environment ofFIG.1. However,FIG.7provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

It should be appreciated that the process depicted inFIG.7is illustrates one possible iteration of the procedure performed by the 5G channel management program that handles the mapper classes and polling on a UE within the distributed data processing environment ofFIG.1, which runs continuously once 5G channel management program142has been initiated on the UE.

5G channel management program142updates the 5G protocol stack (step702). In an embodiment, 5G channel management program142receives user plane 5G protocol stack updates for mapping classes and polling the connected channels. In an embodiment, 5G channel management program142loads local data structures for at least the mapping and polling.

5G channel management program142starts polling the RLC channel swapping manager (step704). In an embodiment, 5G channel management program142starts polling for the overall workload on the channel.

5G channel management program updates the dynamic workload manager (step706). In an embodiment, 5G channel management program142updates the dynamic workload manager structure to accept pre-cooked data. In an embodiment, pre-cooked data is data that has been processed in some form. In an embodiment, 5G channel management program142does this to check the workload for the channels, gather the allocated bandwidth for the logical channel, and decide whether the channel is less loaded, moderately loaded or highly loaded. In an embodiment, to get the information, 5G channel management program142monitors channel packet statistics to derive the information.

5G channel management program collects the merge status of channels (step708). In an embodiment, 5G channel management program142determines the status of the connected channels as either merged or unmerged. In an embodiment, 5G channel management program142remains in step708to continuously update the merge status of the channels. In an embodiment, the merge status is updated on an interval determined by a state machine.

FIG.8is a flowchart depicting operational steps of the procedure performed by 5G channel management program142for dynamic merging management in the RLC on a UE within the distributed data processing environment ofFIG.1, in accordance with an embodiment of the present invention. In an alternative embodiment, the steps of workflow800may be performed by any other program while working with 5G channel management program142.

In an embodiment, 5G channel management program142determines if a memory overload is detected. In an embodiment, if 5G channel management program142determines that the RLC allocated memory is overloaded, then some of the slices need to be moved to the swap partition, e.g., swap partition440ofFIG.4, so 5G channel management program142activates the swapper functions that were received in step702ofFIG.7above. In an embodiment, 5G channel management program142uses an examination daemon to inquire the Quality of Service (QoS) Class Identifier (QCI) and bandwidth characteristics of the channel. In an embodiment, 5G channel management program142determines that merging is allowed if the policies set the allow merging parameter to true, e.g., ALLOW_MERGE==TRUE. In an embodiment, if 5G channel management program142determines in step804above that the slices are candidates to be merged, then 5G channel management program142determines if the slices can share a transportation logical entity. In an embodiment, if 5G channel management program142determines that the slices can be merged, then 5G channel management program142marks the slices as merger allowed. In an embodiment, 5G channel management program142determines if the memory resources are over-allocated for the RLC UP stack. In an embodiment, if 5G channel management program142determines that the memory resources are over-allocated for the RLC UP stack, then 5G channel management program142uses the resource manager, e.g., the resource manager in RLC layer540ofFIG.5above, to generate a trigger message. In an embodiment, 5G channel management program142determines if any of the detected channels have workloads less than a threshold value. In an embodiment, if 5G channel management program142determines that any of the detected channels have workloads less than a threshold value, then 5G channel management program142transfers their identities to the merging unit that transparently handles packet flow routing for incoming I/O workloads. In an embodiment, 5G channel management program142validates the QCI co-categories and packet transmission delay tolerance for all the candidate RLC_IDs in the list of merger candidates. In an embodiment, 5G channel management program142uses a multiplexer engine to keep track of main and auxiliary candidates for merging and then real time packet forwarding is triggered on an auxiliary tunnel.

It should be appreciated that embodiments of the present invention provide at least for operational steps of the procedure performed by 5G channel management program142for dynamic merging management in the RLC on a UE within the distributed data processing environment ofFIG.1. However,FIG.8provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

It should be appreciated that the process depicted inFIG.8is illustrates one possible iteration of the procedure performed by 5G channel management program142for dynamic merging management in the RLC on a UE within the distributed data processing environment ofFIG.1, which runs continuously once 5G channel management program142has been initiated on the UE.

5G channel management program142determines if a memory overload is detected (decision block802). In an embodiment, if 5G channel management program142determines that the RLC allocated memory is not overloaded (“no” branch, decision block802), then 5G channel management program142proceeds to decision block806. In an embodiment, if 5G channel management program142determines that the RLC allocated memory is overloaded (“yes” branch, decision block802), then 5G channel management program142proceeds to step804.

5G channel management program142activates the swapper (step804). In an embodiment, if 5G channel management program142determines that the RLC allocated memory is overloaded, then some of the slices need to be moved to the swap partition, e.g., swap partition440ofFIG.4, so 5G channel management program142activates the swapper functions that were received in step702ofFIG.7above.

In an embodiment, 5G channel management program142determines if the slice is a candidate for merger instead of swapping. In an embodiment, 5G channel management program142uses an examination daemon to inquire the QCI and bandwidth characteristics of the channel. In an embodiment, 5G channel management program142gathers activation times for the RLC channels. In an embodiment, 5G channel management program142uses a monitoring daemon to gather the workload on the channel. In an embodiment, 5G channel management program142selects the channels that are less active as candidates for merging if allowed by their respective policies.

In an embodiment, 5G channel management program142checks the system policies for the RLC_ID of the channel to determine if the policies allow for merging the channel. In an embodiment, 5G channel management program142determines that merging is allowed if the policies set the allow merging parameter to true, e.g., ALLOW_MERGE==TRUE. In an embodiment, if 5G channel management program142determines that the policies allow for merging the channel, then 5G channel management program142moves the channel to the merger candidate list. In an embodiment, 5G channel management program142gathers information from the SDAP using Platform Message Queue communication and the nature of security provisioning for the logical channels are selected. In an embodiment, 5G channel management program142makes merger decisions based on a catalog of security requirements.

5G channel management program142determines if slices can be merged (decision block806). In an embodiment, if 5G channel management program142determines in step804above that the slices are candidates to be merged, then 5G channel management program142determines if the slices can share a transportation logical entity. In an embodiment, if 5G channel management program142determines that the slices can share a transportation logical entity, then the slices can be merged. In an embodiment, 5G channel management program142determines that the slices can share a transportation logical entity, i.e., can be merged, if the channels are less loaded, and parameters including, but not limited to, the packet delay budget, Guaranteed Bit Rate (GBR)/Non-Guaranteed Bit Rate (Non-GBR) compliance, and QCI values are in a permissible range. In an embodiment, the permissible range for the GBR/non-GBR compliance and QCI values are pre-determined. In another embodiment, the permissible range for the GBR/non-GBR compliance and QCI values are received by 5G channel management program142.

In an embodiment, if 5G channel management program142determines that the slices cannot be merged (“no” branch, decision block806), then 5G channel management program142proceeds to decision block810. In an embodiment, if 5G channel management program142determines that the slices can be merged (“yes” branch, decision block806), then 5G channel management program142proceeds to step808.

5G channel management program142marks slices as merger candidates (step808). In an embodiment, if 5G channel management program142determines that the slices can be merged, then 5G channel management program142marks the slices as merger allowed. In an embodiment, 5G channel management program142marks the slices as merger allowed by setting the parameter ALLOW_MERGE==TRUE.

5G channel management program142determines if the memory is overallocated (decision block810). In an embodiment, 5G channel management program142determines if the memory resources are over-allocated for the RLC UP stack. In an embodiment, if 5G channel management program142determines that the memory resources are not over-allocated for the RLC UP stack (“no” branch, decision block810), then 5G channel management program142proceeds to decision block814. In an embodiment, if 5G channel management program142determines that the memory resources are over-allocated for the RLC UP stack (“yes” branch, decision block810), then 5G channel management program142proceeds to step812.

5G channel management program invokes the workload examiner (step812). In an embodiment, if 5G channel management program142determines that the memory resources are over-allocated for the RLC UP stack, then 5G channel management program142uses the resource manager, e.g., the resource manager in RLC layer540ofFIG.5above, to generate a trigger message. After generation of the trigger message, 5G channel management program142examines the information for the channels that can be merged that was gathered in step804above, invokes a workload examiner, and validates the RLC_IDs for appropriate workload for dynamic merger decisions.

5G channel management program142determines if any channels are below a threshold (decision block814). In an embodiment, 5G channel management program142determines if any of the detected channels have workloads less than a threshold value. In an embodiment, the threshold value is a predetermined value. In another embodiment, the threshold value is a system policy. In an embodiment, the channels will have been selected for merger in step808above. In an embodiment, the channels will have a parameter of MERGE STATUS that indicates they are allowed to be merged.

In an embodiment, if 5G channel management program142determines that none of the detected channels have workloads less than the threshold value (“no” branch, decision block814), then 5G channel management program142proceeds to step818. In an embodiment, if 5G channel management program142determines that any of the detected channels have workloads less than the threshold value (“yes” branch, decision block814), then 5G channel management program142proceeds to step816.

5G channel management program creates a list of merger candidates (step816). In an embodiment, if 5G channel management program142determines that any of the detected channels have workloads less than a threshold value, then 5G channel management program142transfers their identities to the merging unit that transparently handles packet flow routing for incoming I/O workloads. In an embodiment, 5G channel management program142sends the logical UUIDs of the RLC tunnels to be merged to the controller in the RLC, e.g., RLC layer540ofFIG.5. In an embodiment, once the RLC controller gets the logical UUIDs of the RLC tunnels to be merged, it creates a local table for the merge mapper data structures and selects the list of RLC_IDs created previously.

5G channel management program evaluates QCI categories and packet delay tolerance (step818). In an embodiment, 5G channel management program142validates the QCI co-categories and packet transmission delay tolerance for all the candidate RLC_IDs in the list of merger candidates. In an embodiment, if QCI characteristics are different, then 5G channel management program142selects the channel RLC_ID with the higher QCI and sets that channel as the main.

5G channel management program writes records (step820). In an embodiment, 5G channel management program142uses a multiplexer engine to keep track of main and auxiliary candidates for merging and real time packet forwarding is triggered on an auxiliary tunnel. In an embodiment, 5G channel management program142then returns to decision block802.

FIG.9is a flowchart depicting operational steps of the procedure performed by 5G channel management program142for serving packet flow from the SDAP and the MAC on a UE within the distributed data processing environment ofFIG.1, in accordance with an embodiment of the present invention. In an alternative embodiment, the steps of workflow900may be performed by any other program while working with 5G channel management program142.

In an embodiment, 5G channel management program142receives an interrupt indicating that a new packet has been received or a new packet is ready for transmission. In an embodiment, 5G channel management program142uses the RLC, e.g., RLC layer540fromFIG.5above, to identify child slices mapped to the mergers. In an embodiment, 5G channel management program142invokes forwarding layers to submit the child slices to the appropriate SDAP or MAC flow. In an embodiment, if 5G channel management program142determines that the packet is targeted to an auxiliary slice, then 5G channel management program142overrides the RLC_ID of the main while framing the RLC header for the uplink packets. In an embodiment, 5G channel management program142then ends for this cycle. In an embodiment, 5G channel management program142determines if the packet is for a downlink flow. In an embodiment, if 5G channel management program142determines that the packet is targeted to a downlink flow, then 5G channel management program142extracts the RLC_ID and maps it with the SDAP ID. In an embodiment, 5G channel management program142then ends for this cycle.

It should be appreciated that embodiments of the present invention provide at least for operational steps of the procedure performed by 5G channel management program142for serving packet flow from SDAP and MAC on a UE within the distributed data processing environment ofFIG.1. However,FIG.9provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the invention as recited by the claims.

It should be appreciated that the process depicted inFIG.9is illustrates one possible iteration of the procedure performed by 5G channel management program142for serving packet flow from SDAP and MAC on a UE within the distributed data processing environment ofFIG.1, which repeats each time a new packet I/O transmission or reception interrupt is received on the RLC protocol from the SDAP or the MAC on the UE.

5G channel management program142receives a packet interrupt (step902). In an embodiment, 5G channel management program142receives an interrupt indicating that a new packet has been received or a new packet is ready for transmission.

5G channel management program142identifies a child slices mapped to mergers (step904). In an embodiment, 5G channel management program142uses the RLC, e.g., RLC layer540fromFIG.5above, to identify child slices mapped to the mergers. In an embodiment, if the slices are not mapped to mergers, then the usual transmission flows are mapped to the RLC_ID of the slices.

5G channel management program submit slices to correct SDAP or MAC flow (step906). In an embodiment, 5G channel management program142invokes forwarding layers to submit the child slices to the appropriate SDAP or MAC flow. In an embodiment, while formulating the RLC header in the packets, 5G channel management program142invokes the appropriate SDAP identity in the packet and based on the SDAP identity selects the RLC_ID is selected for embedding the packet.

5G channel management program142determines if the packet is for an auxiliary slice (decision block908). In an embodiment, if 5G channel management program142determines that the packet is not targeted to an auxiliary slice (“no” branch, decision block908), then 5G channel management program142proceeds to decision block912. In an embodiment, if 5G channel management program142determines that the packet is targeted to an auxiliary slice (“yes” branch, decision block908), then 5G channel management program142proceeds to step910.

5G channel management program replaces the RLC_ID with the ID of the main slice (step910). In an embodiment, if 5G channel management program142determines that the packet is targeted to an auxiliary slice, then 5G channel management program142overrides the RLC_ID of the main while framing the RLC header for the uplink packets. In an embodiment, 5G channel management program142then ends for this cycle.

5G channel management program142determines if the packet is for a downlink flow (decision block912). In an embodiment, if 5G channel management program142determines that the packet is not targeted to a downlink flow (“no” branch, decision block912), then 5G channel management program142ends for this cycle. In an embodiment, if 5G channel management program142determines that the packet is targeted to a downlink flow (“yes” branch, decision block912), then 5G channel management program142proceeds to step914.

5G channel management program selects the SDAP channel for upper layer submission (step914). In an embodiment, if 5G channel management program142determines that the packet is targeted to a downlink flow, then 5G channel management program142extracts the RLC_ID and maps it with the SDAP ID. In an embodiment, each layer maintains its own logical IDs for the respective channels and usually the mapping is one to one. In an embodiment, each RLC channel is mapped to single SDAP channel which is changed by 5G channel management program142inFIG.8above. In an embodiment, when any packet is submitted by the application layer, 5G channel management program142adds the IDs of the lower protocol layers so it gets decoded at the target correctly. In an embodiment, if the RLC_ID indicates that the flow is a main, then 5G channel management program142will select the SDAP channel based on upper layer submissions. In an embodiment, 5G channel management program142then ends for this cycle.

FIG.10is a block diagram depicting components of computing device110suitable for 5G channel management program142, in accordance with at least one embodiment of the invention.FIG.10displays computer1000; one or more processor(s)1004(including one or more computer processors); communications fabric1002; memory1006, including random-access memory (RAM)1016and cache1018; persistent storage1008; communications unit1012; I/O interfaces1014; display1022; and external devices1020. It should be appreciated thatFIG.10provides only an illustration of one embodiment and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

As depicted, computer1000operates over communications fabric1002, which provides communications between computer processor(s)1004, memory1006, persistent storage1008, communications unit1012, and I/O interface(s)1014. Communications fabric1002may be implemented with any architecture suitable for passing data or control information between processors1004(e.g., microprocessors, communications processors, and network processors), memory1006, external devices1020, and any other hardware components within a system. For example, communications fabric1002may be implemented with one or more buses.

Memory1006and persistent storage1008are computer readable storage media. In the depicted embodiment, memory1006comprises RAM1016and cache1018. In general, memory1006can include any suitable volatile or non-volatile computer readable storage media. Cache1018is a fast memory that enhances the performance of processor(s)1004by holding recently accessed data, and near recently accessed data, from RAM1016.

Program instructions for 5G channel management program142may be stored in persistent storage1008, or more generally, any computer readable storage media, for execution by one or more of the respective computer processors1004via one or more memories of memory1006. Persistent storage1008may be a magnetic hard disk drive, a solid-state disk drive, a semiconductor storage device, read only memory (ROM), electronically erasable programmable read-only memory (EEPROM), flash memory, or any other computer readable storage media that is capable of storing program instruction or digital information.

The media used by persistent storage1008may also be removable. For example, a removable hard drive may be used for persistent storage1008. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer readable storage medium that is also part of persistent storage1008.

Communications unit1012, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit1012includes one or more network interface cards. Communications unit1012may provide communications through the use of either or both physical and wireless communications links. In the context of some embodiments of the present invention, the source of the various input data may be physically remote to computer1000such that the input data may be received, and the output similarly transmitted via communications unit1012.

I/O interface(s)1014allows for input and output of data with other devices that may be connected to computer1000. For example, I/O interface(s)1014may provide a connection to external device(s)1020such as a keyboard, a keypad, a touch screen, a microphone, a digital camera, and/or some other suitable input device. External device(s)1020can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., 5G channel management program142, can be stored on such portable computer readable storage media and can be loaded onto persistent storage1008via I/O interface(s)1014. I/O interface(s)1014also connect to display1022.

Display1022provides a mechanism to display data to a user and may be, for example, a computer monitor. Display1022can also function as a touchscreen, such as a display of a tablet computer.