System and method for handling diverse load of packet processing in a network
The adaptive PPS control system addresses the challenge of varying network traffic loads by dynamically generating instances and mapping packet processing units, ensuring efficient and reliable network performance.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- JIO PLATFORMS LTD
- Filing Date
- 2026-01-08
- Publication Date
- 2026-07-16
Smart Images

Figure IN2026050022_16072026_PF_FP_ABST
Abstract
Description
SYSTEM AND METHOD FOR HANDLING DIVERSE LOAD OF PACKET PROCESSING IN A NETWORK TECHNICAL FIELD
[0001] The embodiments of the present disclosure generally relate to the field of communication networks and systems. More particularly, the present disclosure relates to a system and a method for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network.BACKGROUND OF THE INVENTION
[0002] The subject matter disclosed in the background section should not be assumed or construed to be prior art merely due to its mention in the background section. Similarly, any problem statement mentioned in the background section or its association with the subject matter of the background section should not be assumed or construed to have been previously recognized in the prior art.
[0003] In the field of telecommunications, with increase in demand for high-speed data communication, the ability to process data packets efficiently is crucial, particularly in environments such as data centers, cloud computing platforms and high-speed networking applications. Packet processing in high-speed network environments involves multiple tasks, such as capturing packets from hardware interfaces, preprocessing data, appending metadata, and distributing packets across processing streams for further analysis.
[0004] These tasks must often be performed simultaneously, with each requiring variable computational resources based on the volume of incoming packets. To this end, systems for processing the data packets are required to handle a huge volume of data in real time to meet the demands of the networking applications, and ensure seamless communication. However, existing systems for processing the data packets face challenges in adapting to varying network traffic loads, which can result in performance degradation or complete disruption while processing thepackets. Typically, existing systems operate with fixed processing capacities, which makes them inefficient in handling varying traffic volumes, especially during peak loads or unexpected surges in the number of packets received from the network.
[0005] Heretofore, the existing systems lack the ability to efficiently segregate traffic at granular levels. For example, the existing systems struggle to distinguish packets based on combinations of network layer (layer 3), transport layer (layer 4), and session layer (layer 5) protocol fields. This limitation of the existing systems makes them unsuitable for dynamic and high-throughput environments where traffic segregation and processing efficiency are critical.
[0006] In view of the aforementioned limitations and challenges associated with the existing systems for packet processing, there lies a need of an improved packet processing system and method that can perform adaptive Packet Processing per Second (PPS) control to adapt to varying network traffic loads.SUMMARY
[0007] The following embodiments present a simplified summary in order to provide a basic understanding of some aspects of the disclosed invention. This summary is not an extensive overview, and it is not intended to identify key / critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0008] In an embodiment, a method for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network is disclosed. The method comprises receiving, by a packet acquisition module from a network, a plurality of data packets in a plurality of receive (Rx) queues via a Network Interface Card (NIC). Further, the method comprises generating, by the packet acquisition module that includes a plurality of packet acquisition units, a plurality of packet acquisition instances based on a user specified value of a Transaction per second (TPS) for processing the data packets and a processing capacity of each packet acquisition unitamong the plurality of packet acquisition units. Furthermore, the method comprises generating, by a traffic segregation unit, a plurality of traffic segregation instances based on the plurality of packet acquisition instances. Subsequently, the method comprises generating, by one or more packet streaming units, a plurality of packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among the one or more packet streaming units. Thereafter, the method comprises controlling the PPS for the one or more packet streaming units based on a mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances.
[0009] In one or more aspects, the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances is performed by the packet processing unit based on a processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit.
[0010] In one or more aspects, the plurality of data packets includes a plurality of connection identifiers. The plurality of connection identifiers includes at least a source Internet Protocol (IP) address, a destination IP address, a port number of a source port, and a port number of a destination port.
[0011] In an aspect, the method comprises generating, by a metadata appending unit, a plurality of metadata addition instances based on the plurality of packet acquisition instances. Each metadata addition instance among the plurality of metadata addition instances comprises addition of metadata corresponding to at least one data packet among the plurality of data packets. The metadata includes a timestamp, a stream identifier, a packet length, and transport protocol information. Further, for generating the plurality of traffic segregation instances, the method comprises analyzing, by the traffic segregation unit, the metadata corresponding to each data packet among the plurality of data packets to identify at least one type of a transport layer protocol associated with the plurality of data packets. Subsequently, the method comprises generating, by the traffic segregation unit, the plurality oftraffic segregation instances based on the identified at least one type of the transport layer protocol and the plurality of connection identifiers.
[0012] In an aspect, the mapping of the traffic segregation instances with the packet streaming instances includes associating, based on a correlation between at least one type of the transport layer protocol and the connection identifiers, each traffic segregation instance among the traffic segregation instances with at least one packet streaming instance among the packet streaming instances. Further, the mapping of the traffic segregation instances with the packet streaming instances includes allocating a processing load to each packet streaming instance among the packet streaming instances based on the processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit. Furthermore, a dynamic mapping table is maintained that updates the association of each traffic segregation instance with the at least one packet streaming instance in response to a change in the load in the network or a PPS configuration.
[0013] In an aspect, the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances comprises associating, by the packet processing unit based on a correlation between at least one type of the transport layer protocol and the plurality of connection identifiers, each traffic segregation instance among the plurality of traffic segregation instances with at least one packet streaming instance among the plurality of packet streaming instances. Further, the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances comprises allocating, by the packet processing unit, a processing load to each packet streaming instance among the plurality of packet streaming instances based on the processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit. Furthermore, the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances comprises maintaining, by the packet processing unit, a dynamic mapping table that updates the association of each traffic segregation instance with the at least one packet streaming instance in response to a change in the load in the network or a PPS configuration.
[0014] In an aspect, at least two of each packet acquisition instance among the plurality of packet acquisition instances, each metadata instance among the plurality of metadata addition instances, each traffic segregation instance among the plurality of traffic segregation instances, and each packet streaming instance among the plurality of packet streaming instances, are generated simultaneously.
[0015] In an aspect, the method comprises calculating, by the packet processing unit, a ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit, and generating, by the one or more packet streaming units, the plurality of packet streaming instances based on the calculated ratio of the processing capacity of each packet acquisition unit and the capacity of each packet streaming unit.
[0016] In an aspect, for generating the plurality of packet acquisition instances, the method comprises calculating, by the packet processing unit, a ratio of the TPS and the processing capacity of each packet acquisition unit. Further, the method comprises generating, by the packet acquisition module, the plurality of packet acquisition instances based on the calculated ratio of the TPS and the processing capacity of each packet acquisition unit.
[0017] In an aspect, the method comprises dynamically assigning, by the packet processing unit, adaptive storage units simultaneously to each of the plurality of packet streaming instances based on a maximum configurable PPS capacity of the one or more packet streaming units. Furthermore, the method comprises synchronizing, by the packet processing unit (254), the plurality of packet streaming instances with one or more receiving systems based on the assigned adaptive storage units.
[0018] According to another aspect of the present disclosure, a system for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network is disclosed. The system comprises a packet acquisition module, a traffic segregation unit, one or more packet streaming units, and a packet processing unit. The packet acquisition module includes a plurality of packet acquisition units, andthe packet acquisition module is configured to receive, from a network, a plurality of data packets in receive (Rx) queues via a Network Interface Card (NIC). The packet acquisition module is further configured to generate a plurality of packet acquisition instances based on a specific value of Transaction per second (TPS) for processing the plurality of data packets and a processing capacity of each packet acquisition unit among the plurality of packet acquisition units. The traffic segregation unit is configured to generate a plurality of traffic segregation instances based on the plurality of packet acquisition instances. The one or more packet streaming units are configured to generate a plurality of packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among the one or more packet streaming units. The packet processing unit is configured to control the PPS for the one or more packet streaming units based on a mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances.BRIEF DESCRIPTION OF DRAWINGS
[0019] Various embodiments disclosed herein will become better understood from the following detailed description when read with the accompanying drawings. The accompanying drawings constitute a part of the present disclosure and illustrate certain non-limiting embodiments of inventive concepts. Further, components and elements shown in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. For the purpose of consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.
[0020] FIG. 1 illustrates an example block diagram depicting a network environment for a user device to access a packet processing system, in accordance with an embodiment of the present disclosure.
[0021] FIG. 2 illustrates an example diagram of the packet processing system, in accordance with an embodiment of the present disclosure.
[0022] FIG. 3 illustrates a flowchart depicting a method for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network, in accordance with an embodiment of the present disclosure.
[0023] FIG. 4 illustrates a schematic diagram of a network node in a wireless communication network and means for implementing one or more embodiments of the present disclosure.
[0024] FIG. 5 illustrates an exemplary computer system in which or with which embodiments of the present disclosure may be implemented.DETAILED DESCRIPTION OF THE INVENTION
[0025] Aspects of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, which illustrate one or more example embodiments. The embodiments are presented by way of example only and are not intended to limit the scope of the present disclosure. Rather, these descriptions are provided to ensure a clear and consistent understanding of the disclosed subject matter by those skilled in the art. It should be understood that the various embodiments described herein may be modified, combined, or adapted without departing from the overall scope and intent of the invention.
[0026] The following description presents various embodiments of the present disclosure. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified, omitted, or expanded upon without departing from the scope of the present disclosure.
[0027] The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in some embodiments” or “some implementations” which may each refer to one or more or all of the same or different embodiments or implementations. The term “some” as used herein is defined as “one, or more than one, or all.” Accordingly,the terms “one,” “more than one,” “more than one, but not all” or “all” would all fall under the definition of “some.” In view of the same, the terms, for example, “in an embodiment” or “in an implementation” refers to one embodiment or one implementation and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments.” Further, the term, for example, “in one or more implementations” refers to “at least one implementation, or more than one implementation, or all implementations.
[0028] The term “comprising,” when utilized, means “including, but not necessarily limited to;” it specifically indicates open-ended inclusion in the so-described one or more listed features, elements in a combination, unless otherwise stated with limiting language. Furthermore, to the extent that the terms “includes,” “has,” “have,” “contains,” and other similar words are used in either the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”
[0029] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features.
[0030] The description provided herein discloses exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the foregoing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing any of the exemplary embodiments. Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it may be understood by one of the ordinary skilled in the art that the embodiments disclosed herein may be practiced without these specific details.
[0031] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein the description, the singular forms "a", "an", and "the" include plural forms unless the context of the invention indicates otherwise.
[0032] The terminology and structure employed herein are for describing, teaching, and illuminating some embodiments and their specific features and elements and do not limit, restrict, or reduce the scope of the present disclosure. Accordingly, unless otherwise defined, all terms, and especially any technical and / or scientific terms, used herein may be taken to have the same meaning as commonly understood by one having ordinary skill in the art.
[0033] Various aspects of the present disclosure provide a packet processing system and a method that can effectively manage varying workloads using an adaptive approach for controlling Packet Processing per Second (PPS).
[0034] Another aspect of the present disclosure provides a system and a method that can provide an adaptive mechanism to dynamically manage and optimize packet processing load and can ensure consistent and reliable network performance.
[0035] In the disclosure, various embodiments are described using terms used in some communication standards (e.g., 3rd Generation Partnership Project (3GPP), 3rd Generation Partnership Project 2 (3GPP2), European Telecommunications Standards Institute (ETSI), International Telecommunication Union-Radiocommunication Sector (ITU-R), xRadio Access Network (xRAN), and Open-Radio Access Network (O-RAN)), but these are merely examples for description. Various embodiments of the disclosure may also be easily modified and applied to other communication systems.
[0036] In order to facilitate an understanding of the disclosed invention, a number of terms are defined below.
[0037] The “network environment” or “communication network” refers to a comprehensive system that includes multiple standardized components and interfaces that enable mobile telephony and data services. The comprehensive system includes one or more of User Equipment's (UEs), Radio Access Network (NG-RAN), Core Network (5GC), switches, routers, repeaters, communication gateways, and other network elements.
[0038] The “packet processing system” refers to a computing architecture or a network device designed to receive, analyze, and forward data packets across a communication network or network environment. The packet processing system is adapted to execute functions including, but not limited to, packet classification, filtering, routing, forwarding, and load distribution. In one implementation, the packet processing system is further configured to manage varying workloads by employing an adaptive control mechanism that dynamically regulates the PPS.
[0039] The “adaptive control mechanism” refers to a closed-loop mechanism in which one or more controlling units (e.g., packet processing unit as described below) continuously monitor dynamic indicators of network load (e.g., per-flow PPS, queue depths, etc.) and automatically adjust operating parameters of the packet processing system without manual intervention. Such adjustments may include, but not limited to, creating packet acquisition, metadata, traffic-segregation, and packet streaming instances; mapping and remapping traffic segregation instances to packet streaming instances in accordance with each streaming unit’s current PPS capacity; and updating a dynamic mapping table when the network load or PPS configuration changes.
[0040] The “PPS” refers to a fundamental throughput metric for the packet processing system. The PPS captures per-packet overheads (classification, hashing, queuing, streaming) that dominate resource utilization, scheduler pressure, and latency under small-packet workloads. By controlling PPS per streaming unit, the packet processing system avoids overload and head-of-line blocking, maintainsconsistent latency across heterogeneous packet flows, and ensures that streaming units operate within configurable maximum packet egress rates.
[0041] The following description provides specific details of certain aspects of the disclosure illustrated in the drawings to provide a thorough understanding of those aspects. It should be recognized, however, that the present disclosure can be reflected in additional aspects and the disclosure may be practiced without some of the details in the following description.
[0042] Detailed embodiments of the present disclosure are described below with reference to the accompanying drawings. FIG. 1 through FIG. 5, discussed below, and the one or more embodiments used to describe the principles of the present disclosure are by way of illustration only and should not be construed in any way to limit the scope of the present disclosure. The one or more embodiments disclosed herein illustrate the packet processing system and the method that can effectively manage varying workloads using the adaptive approach for controlling the PPS is disclosed, which serves to demonstrate the principles and features of the disclosed technology.
[0043] FIG. 1 illustrates an example block diagram depicting a network environment 100 (hereinafter also referred to as “communication network 100” or “network 100”) for one or more user devices (102a-102n) to access a packet processing system 200, in accordance with an embodiment of the present disclosure. The network environment 100 comprises one or more clients 102a- 102 n (also generally referred to as “local machine(s) 102”, or “user device(s) 102”) in communication with the packet processing system 200 (also generally referred to “packet processing device 200”) via one or more networks 104, 104' (generally referred to as “network 104”). In some embodiments, the user device 102 communicates with the packet processing system 200 via a gateway 106.
[0044] The user device 102 refers to any endpoint computing apparatus operated directly or indirectly by a user and configured to originate, receive, render, or otherwise interact with data packets that are processed by the packet processingsystem 200 via the network 104 and, in some embodiments, via the gateway 106. In one or more embodiments, the user device 102 may include, but not limited to, a processing circuitry (e.g., CPU, GPU, DSP, embedded controller, SoC, FPGA), a memory / storage (volatile and non-volatile), communication interfaces (wired or wireless, e.g., Ethernet, Wi-Fi, cellular, Bluetooth, optical, or other physical / virtual interfaces) for exchanging the data packets with the network 104, power subsystem (battery, mains, or energy harvesting), and user interface (UI) components.
[0045] Examples of the user device 102 may include, but are not limited to, portable handheld electronic devices such as a mobile phone, a tablet, a laptop, a smart watch etc., or fixed electronic devices such as a desktop computer, a computing device, etc. In some aspects of the present disclosure, the user device 102 may include an application console (not shown) to execute a computer-executable software application (hereinafter interchangeably referred to as ‘computer application’) installed / operated on the user device 102.
[0046] The “UI blocks” shown within user devices 102a, 102b, 102ninFIG. 1 refers to any combination of hardware and / or software elements on the user device 102 that presents information to the user and accepts user inputs, to enable control over applications where the data packets are distributed across the packet processing system 200.
[0047] The network 104 and / or the network 104' can be a local-area network (LAN), such as a company Intranet, a metropolitan area network (MAN), or a wide area network (WAN), such as the Internet or the World Wide Web. In one embodiment, network 104' may be a private network and network 104 may be a public network. In some embodiments, the network 104 may be a private network and the network 104' may be a public network. In another embodiment, networks 104 and 104' may both be private networks. In some embodiments, the user device 102 may be located at a service provider center of operation and may be communicating via a WAN connection over the network 104 to the packet processing system 200 located at a data processing center.
[0048] The network 104 and / or 104' be any type and / or form of network and may include, but not limited to, a point-to-point network, a broadcast network, a wide area network, a local area network, a telecommunications network, a data communication network, a computer network, a wireless network, a wired network, and the like. In some embodiments, the network 104 may comprise a wireless link, such as an infrared channel or satellite band. The topology of the network 104 and / or 104' may be a bus, star, or ring network topology. The network 104 and / or 104' and network topology may be of any such network or network topology as known to those ordinarily skilled in the art capable of supporting the operations described herein. In some embodiments, the network 104 and the network 104' may correspond to the same network or may constitute different segments or parts of a single network, depending on deployment requirements.
[0049] The gateway 106 between the networks 104 and 104' may be referred to as an interface unit and may be located on the network 104. In other embodiments, the gateway 106 may be located on the network 104'. In another embodiment, multiple gateways may be deployed on the networks 104 and 104’. In other embodiments, the gateways may be located at any point in the network or network communications path between the user device 102 and the packet processing system 200.
[0050] Although FIG. 1 illustrates one example of the network environment 100, where the various networks and are shown between the user device 102 and the packet processing system 200 may utilize the same network 104.
[0051] FIG. 2 illustrates an example diagram of the packet processing system 200, in accordance with an embodiment of the present disclosure. As illustrated in FIG.2, the packet processing system 200 (interchangeably referred to as “system 200”) includes a Network Interface Card (NIC) 220 operably connected to one or more processor(s) 230 (collectively referred to as the “processor 230”), a cache memory 240, processing unit(s) / modules(s) 250, and a system memory 270 (alternatively referred to as “memory 270”).
[0052] The NIC 220 is configured to receive data packets from the network 104’. The network 104’ may transmit the data packets from various sources such as user devices, servers, or edge devices. The data packets may represent a wide range of traffic types, including streaming data, control signals, and application specific payloads.
[0053] The NIC 220 corresponds to a hardware component configured to establish or form a connection between the processor 230 and the network 104’ . The NIC 220 may ingest a plurality of data packets from the network 104’ and perform low-level processing and transfers the data packets after low level processing to the system's memory 270 for further operations. The NIC 220 is connected to the processor 230 such that an interruption is created in the processor 230 for each data packet received from the network 104’. The processor 230 is configured to distribute each data packet received from the network 104’ to the processing unit(s) / module(s) 250 where the data packets are processed until the packets reaches one or more of the destination applications (indicated as Application 1 to Application N) installed on receiving systems or target systems.
[0054] The processor 230 may include various processing circuitry and communicates with the NIC 220, the cache memory 240, the processing unit(s) / module(s) 250, the memory 270, and the applications 1 through N. The processor 230 is configured to execute instructions stored in the memory 270 and to perform various processes discussed below. The processor 230 may include an intelligent hardware device including a general-purpose processor, such as, for example, and without limitation, a Central Processing Unit (CPU), an Application Processor (AP), a dedicated processor, or the like, a graphics-only processing unit such as a Graphics Processing Unit (GPU), a microcontroller, a Field-Programmable Gate Array (FPGA), a programmable logic device, a discrete hardware component, or any combination thereof. In some cases, the processor 230 may be configured to operate a memory array using a memory controller. In some cases, a memory controller may be integrated into the processor 230. The processor 230 may be configured to execute computer-readable instructions stored in amemory (e.g., the memory 270) to cause the packet processing system 200 to perform various functions (e.g., operations of the method for adaptive control of the PPS to handle the diverse load in the network).
[0055] The memory 270 stores a set of instructions required by the processor 230 of the packet processing system 200 for controlling its overall operations. The memory 270 may include non-volatile storage elements. Examples of such nonvolatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of Electrically Programmable Memories (EPROM) or Electrically Erasable and Programmable (EEPROM) Memories. In addition, the memory 270 may, in some examples, be considered a non-transitory storage medium. The "non-transitory" storage medium is not embodied in a carrier wave or a propagated signal. However, the term "non-transitory" should not be interpreted as the memory 270 is non-movable. In some examples, the memory 270 may be configured to store larger amounts of information. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in Random Access Memory (RAM) or cache). The memory 270 may be an internal storage unit or an external storage unit of the packet processing system 200, cloud storage, or any other type of external storage.
[0056] In an embodiment, the processing unit(s) / module(s) 250 may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing unit(s) / module(s) 250. In non-limiting examples, described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing unit(s) / module(s) 250 may be processor-executable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processor 230 may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement theprocessing unit(s) / module(s) 250. In other examples, the processing unit(s) / module(s) 250 may be implemented using an electronic circuitry.
[0057] In one or more embodiments, the processing unit(s) / module(s) 250 may include one or more units / modules selected from any of a packet acquisition module 252 (interchangeably referred to as “packet acquisition module 252”), a packet processing unit 254, a metadata appending unit 256, a traffic segregation unit 258, and packet streaming unit(s) 260 (hereinafter may also be referred to as “packet streaming unit 260” or “packet streaming units 260”). The packet acquisition module 252 may further include packet acquisition units (designated as Rx queues (i.e., Rx 0, Rx 1, ..., Rx N)). The processing unit(s) / module(s) 250 may have the shared cache memory 240.
[0058] In an embodiment, the processor 230, using the packet acquisition module 252, is configured to receive, from the network 104, the incoming data packets in receive (Rx) queues via the NIC 220. In particular, the data packets may be received into the designated Rx queues (i.e., Rx 0, Rx 1, ... , Rx N) of the packet acquisition module 252 for further processing. Respective incoming data packets are temporarily acquired in a respective Rx queue of the packet acquisition module 252 for further processing.
[0059] The “Receive (Rx) queue” refers to a queue (or queue pair) through which incoming packets are acquired delivered to the host. The number of Rx queues may depend on a hardware configuration of the packet processing system 200 and may vary with respect to one or more types of hardware configuration.
[0060] In one or more embodiments, the data packets may include connection identifiers, and the connection identifiers may include, but not limited to, a source Internet Protocol (IP) address, a destination IP address, a port number of a source port, and a port number of a destination port.
[0061] Further, the processor 230, using the packet acquisition module 252, may create a copy of the incoming data packets for further processing. In particular, thepacket acquisition module 252 may generate packet acquisition instances based on a user specified value of Transaction per second (TPS) for processing the data packets and a processing capacity of each packet acquisition unit among the packet acquisition units of the packet acquisition module 252.
[0062] Thereafter, the processor 230, using the metadata appending unit 256, is configured to generate metadata addition instances based on the packet acquisition instances. In particular, each metadata addition instance among the metadata addition instances includes addition of metadata corresponding to at least one data packet among the received data packets. The metadata is added to classify a corresponding data packet into a specific application and to reconstruct original data contained in the corresponding data packet. In a non-limiting example, the metadata may include information such as, but not limited to, timestamps, a stream identifier, a packet length, transport protocol information, source / destination identifiers, and processing flags. The addition of the metadata further enables efficient downstream processing by the traffic segregation unit 258.
[0063] The traffic segregation unit 258 is configured to generate traffic segregation instances based on the packet acquisition instances. In an embodiment, for generating the traffic segregation instances, the traffic segregation unit 258 is configured to analyze the metadata corresponding to each data packet among the data packets to identify at least one type of a transport layer protocol associated with the data packets. Based on the identified at least one type of the transport layer protocol and the connection identifiers, the traffic segregation instances are generated.
[0064] In particular, the type of transport layer protocol may be identified based on analysis of protocol field which is added in IP header of each data packet. For instance, the protocol field in the IP header of each data packet is analyzed to determine the type of the transport layer protocol associated with each data packet. The protocol field is an 8-bit value located in an IPv4 header (or “Next Header” field in IPv6) that specifies the protocol used in a data portion of the packet. Forexample, the IPv4 header may include the representation, for example, Version | IHL | Type of Service | Total Length | Identification | Flags | Fragment Offset | Time to Live | Protocol | Header Checksum | Source Address | Destination Address. Here, the protocol field may contain a decimal value such as 6 for Transmission Control Protocol (TCP) or 17 for User Datagram Protocol (UDP). The protocol field may further include a different value that may indicate other types of protocols such as, but not limited to, Stream Control Transmission Protocol (SCTP), Datagram Congestion Control Protocol (DCCP), Quick UDP Internet Connections (QUIC), Real-time Transport Protocol (RTP), Multipath TCP (MPTCP). For clarity, in a nonlimiting example, a representative IPv4 header may be expressed as: Version: 4 | IHL (Header Length): 5 (20 bytes) | Type of Service (DSCPZECN): 0x10 (low delay requested) | Total Length: 0x003C (60 bytes)| Identification: 0xlC46 | Flags: DF=1 (Don't Fragment), MF=0 (More Fragments disabled) | Fragment Offset: 0 | Time to Live (TTL): 64 | Protocol: 6 (TCP) | Header Checksum: 0xBlE6 (example value) | Source Address: 192.0.2.1| Destination Address: 198.51.100.2.
[0065] The traffic segregation unit 258 reads the protocol field to extract the information related to the protocol type and utilize the identified protocol type for the traffic segregation. In a non-limiting example, if the protocol field value is 6, the packet may be identified as TCP traffic. If the protocol field value is 17, the packet may be identified as UDP traffic. The extracted protocol information may be further combined with port numbers (e.g., 80 for HTTP, 443 for HTTPS) to enables the packet processing system 200 to infer application-level traffic and generate the traffic segregation instances for parallel processing.
[0066] In an embodiment, to determine correct flow context for each data packet, hashing may be performed using one or more hash algorithms such as, but not limited to, Cyclic Redundancy Check (32-bit) (CRC32), Message Digest Algorithm 5 (MD5), or Secure Hash Algorithm (SHA) variants, XXHash, or any other non-cryptographic / cryptographic hashing algorithm. The hashing process ensures that the data packets which belong to the same flow are consistently mapped to the same processing context. Furthermore, the segregation of the data packets may beperformed based on fields across network layers L2 to L7, including MAC addresses, IP addresses, and application-level headers. For example, packets may be grouped by source / destination IP and port numbers for TCP or UDP flows, while additional fields such as QUIC or Real-time Transport Protocol (RTP) headers may be used for application-specific segregation.
[0067] In one or more embodiments of the present disclosure, at least two of each packet acquisition instance among the packet acquisition instances, each metadata instance among the metadata addition instances, each traffic segregation instance among the traffic segregation instances, and each packet streaming instance among the packet streaming instances, are generated simultaneously. For example, the system 200 concurrently generates two packet acquisition instances bound to separate network interface queues, two metadata addition instances operating on distinct annotation pipelines, two traffic segregation instances each routing packets to different traffic classes, and two packet streaming instances emitting packets to respective PPS -controlled output pipelines, such that all of these instances are generated simultaneously and being executed in parallel across the processing unit(s) / module(s) 250.
[0068] The packet processing unit 254 is configured to control the PPS of the packet streaming units 260 based on a mapping of the traffic segregation instances with the packet streaming instances. In an embodiment, the packet processing unit 254 is configured to perform the mapping of the traffic segregation instances with the packet streaming instances based on a processing capacity of each packet streaming unit 260 and the PPS allocated to each packet streaming unit 260.
[0069] To map the traffic segregation instances with the packet streaming instances, the packet processing unit 254 is configured to associate each traffic segregation instance among the traffic segregation instances with at least one packet streaming instance among the packet streaming instances. The association between each traffic segregation instance and the at least one packet streaming instance is based on a correlation between the transport layer protocol type and the connection identifiers.The correlation between the transport layer protocol type and the connection identifiers refers to a deterministic association rule in which data packets are grouped, classified, and mapped to processing / streaming contexts based on the transport protocol type carried in the network / transport headers (e.g., TCP, UDP, SCTP, QUIC, RTP) and the packet’s connection identifiers (e.g., source IP address, destination IP address, source port, destination port). Firstly, the packet processing unit 254 identifies the transport protocol using the IPv4 Protocol field (or IPv6 Next Header) and then combines the identified protocol type with the connection identifiers to derive a flow key (e.g., a 5-tuple for TCP / UDP), which is used to associate each data packet with a corresponding traffic-segregation instance and then with one or more packet-streaming instances.
[0070] The packet processing unit 254 is further configured to allocate a processing load to each packet streaming instance among the packet streaming instances based on the processing capacity of each packet streaming unit 260 and the PPS allocated to each packet streaming unit 260. The processing load refers to the amount of packet processing work assigned to a packet streaming unit, typically measured in terms of PPS or computational resources required to handle the data packets. For example, if the traffic segregation unit 258 receives traffic comprising TCP, UDP, and SCTP flows, separate traffic segregation instances are created for each protocol, and the packet processing unit 254 maps each traffic segregation instance to a corresponding packet streaming instance capable of handling its PPS load. For instance, if one packet streaming unit has a PPS capability higher than other packet streaming unit, the packet processing unit 254 assigns additional flows to that packet streaming unit compared to the other packet streaming unit.
[0071] Furthermore, the packet processing unit 254 is configured to maintain a dynamic mapping table that updates the association of each traffic segregation instance with the at least one packet streaming instance in response to a change in the load in the network or the PPS configuration. For example, when a sudden spike in UDP traffic is detected by the packet processing unit 254, the packet processing unit 254 reallocates certain UDP flows to additional streaming units, and themapping table is updated based on the reallocation. Thus, the dynamic mapping table helps in preventing network overload and ensures adaptive and parallel packet processing across the packet processing system 200.
[0072] In an embodiment, the packet processing unit 254 is configured to calculate a ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit 260. Based on the calculated ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit 260, the packet streaming units 260 are configured to generate the packet streaming instances.
[0073] In another embodiment, the packet processing unit 254 is configured to calculate a ratio of the TPS and the processing capacity of each packet acquisition unit. Based on the calculated ratio of the TPS and the processing capacity of each packet acquisition unit, the packet acquisition module 252 is configured to generate the plurality of packet acquisition instances.
[0074] In yet another embodiment, the packet processing unit 254 is configured to dynamically assign adaptive storage units simultaneously to each of the packet streaming instances based on a maximum configurable PPS capacity of the packet streaming units 260 and synchronize the packet streaming instances with receiving systems based on the assigned adaptive storage units.
[0075] The packet streaming units 260 are configured to generate the packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among the packet streaming units 260. The packet streaming units 260 may store the generated packet streaming instances in the cache memory 240. The packet streaming units 260 may further process the stored packet streaming instances before transmitting and / or streaming to a respective stream (i.e., respective application (application 1 to application N) via the assigned streaming unit.
[0076] In an alternate embodiment, each unit of the processing unit(s) / module(s) 250 is configured to independently perform various operations of the processor 230,as described herein, without deviating from the scope of the present disclosure. Additionally, different modules shown in FIG. 2 may be split into two or more modules each operating independently in communication with one another, optionally in a distributive manner, with shared responsibilities. Furthermore, multiple instances of the modules may be implemented for performing the adaptive PPS control to handle the diverse load in the communication network or multiple modules can be combined into a single module to perform all corresponding functions described herein.
[0077] Although FIG. 2 illustrates one example of the packet processing system 200, various changes may be made to FIG. 2. For example, the packet processing system 200 may include any other units and applications in any suitable arrangement, without deviating from the scope of the present disclosure. Further, various components in FIG. 2 may be combined, further subdivided, or omitted and additional components may be added according to particular needs.
[0078] FIG.3 illustrates a flowchart depicting a method 300 for an adaptive control of packet processing per second (PPS) to handle the diverse load in the network 100, in accordance with an embodiment of the present disclosure. The method 300 comprises a series of operation steps 302 through 316.
[0079] At step 302, the NIC 220 receives the data packets that are arrived at the packet processing system 200 via the network 104'. For instance, the NIC 220 ingests packets from network 104', optionally performing low-level processing and direct memory access transfers into the system memory 270. The data packets are staged into designated Rx queues of the packet acquisition module 252, where each queue represents an acquisition unit.
[0080] At step 304, the processor 230 receives from the user device 102, an input including the user specified value of the TPS for processing the data packets received from the network 104'. The TPS is indicative of a requirement of application-level throughput and represents how many parallel acquisition,segregation, and streaming instances is required to be created based on the input received.
[0081] At step 306, the processor 230 generates the packet acquisition instances based on the ratio of the TPS and the processing capacity of each packet acquisition unit of the packet acquisition module 252. In a non-limiting example, the processor 230 generates a number of packet acquisition instances by dividing total required TPS (the TPS provided as the input) by a value indicating the processing capacity of each packet acquisition unit of the packet acquisition module 252. In a nonlimiting example, the processing capacity of a single packet acquisition unit among the packet acquisition units is a configurable maximum data packets received in a single (i.e., 1) Rx queue designated to the NIC 220 in accordance with hardware configurations of the NIC 220. For instance, the packet acquisition module 252 instantiates the number of acquisition instances and pins number of acquisition instances to available Rx queues. For example, if the received TPS=3.2 Mpps and each Rx queue can stably acquire 1.0 Mpps, then a total of four acquisition instances (Rx0-Rx3) are created. In another non-limiting example, for an NIC with 8 Rx queues. If each queue is tuned to stably acquire 1.25 Mpps, then the capacity of each packet acquisition unit is 1.25 Mpps. For an input having a TPS target of 5 Mpps, the packet acquisition module 252 generates a total of (5 / 1.25) = 4 acquisition instances and binds them to Rx0-Rx3.
[0082] At step 308, the processor 230 generates the metadata addition instances based on the determined number of packet acquisition instances. In particular, for each acquisition instance, a corresponding metadata addition instance is created by appending packet-level metadata (e.g., timestamp, stream ID, packet length, transport protocol information).
[0083] At step 310, the processor 230 generates the traffic segregation instances based on the determined packet acquisition instances. In particular, the traffic segregation unit 258 analyzes the metadata and header fields across L2-L7 to identify the transport-layer type via the IPv4 Protocol field (or IPv6 Next Header),and may further apply hashing (e.g., CRC32 / MD5 / SHA / XXHash) so that data packets of the same 5-tuple flow are coherently routed to the same segregation context. The traffic segregation may also incorporate port numbers (e.g., 80 / 443), QUIC, RTP, SCTP, DCCP, etc., to infer application-level classes. For example, different segregation instances for TCP-Web, UDP-Media, and SCTP-Control flows may be created, where each fed by one or more acquisition instances.
[0084] Further, at step 314, the processor 230 generates the packet streaming instances based on the ratio of the processing capacity of each packet acquisition unit and the processing capacity of each packet streaming unit 260. Specifically, the generation of the packet streaming instances means the number and sizing of streaming pipelines is scaled to both ingress capacity and each streaming unit’s egress capability. In a non-limiting example, if three acquisition instances each deliver -1.0 Mpps (aggregate 3.0 Mpps) and the packet streaming unit 260 provide capacities of 1.2 / 1.0 / 0.8 Mpps, then three streaming instances are created and the mapping allocates ~1.2, -1.0, and -0.8 Mpps respectively.
[0085] At step 312, the processor 230 controls the PPS for the packet streaming units 260 based on the mapping of the traffic segregation instances with the packet streaming instances. The mapping of the traffic segregation instances is performed based on the processing capacity of each packet streaming unit 260 and the PPS allocated to each packet streaming unit 260. In a non-limiting example, the PPS allocated to each packet streaming unit 260 is configurable maximum data packets that can be sent in a single (i.e., 1) streaming queue depending on a configuration of streaming technology / hardware utilized for the packet streaming. In particular, the processor 230, utilizing the packet processing unit 254, maps each traffic-segregation instance to the one or more packet streaming instances and allocates load by taking into consideration the processing capacity of each streaming unit and the PPS budget currently allocated to that streaming unit. As a result of the mapping, a dynamic mapping table is maintained and updated whenever network load or PPS configuration changes, for example, a sudden spike in the UDP is detected and data flows are rebalanced across additional streaming instances toprevent network overload. In a non-limiting example, for three streaming units S0 / S1 / S2 with measured egress capacities of 1.5 / 1.0 / 0.8 Mpps respectively, the mapping assigns flows such that SO carries higher PPS classes (e.g., UDP -media), SI carries mid-range (e.g., TCP-web), and S2 carries low-rate control traffic (e.g., SCTP). If aggregate PPS increases, the dynamic mapping table helps in rebalancing the packet flows to keep each unit within its capacity.
[0086] At step 316, the processor 230 dynamically assigns storage units based on the packet streaming instances, and the method 300 terminates. In particular, the packet processing unit 254 dynamically assigns adaptive storage units to the packet-streaming instances. The dynamic assignment of the adaptive storage units to the packet-streaming instances means that the packet processing system 200 automatically adjusts the amount of memory (such as buffers or queues) given to each streaming instance based on the current PPS capacity of that streaming instance. The assignment may be simultaneous as the updated storage sizes are applied at the same time to all active streaming instances during a current operating cycle. In a non-limiting example, if a particular packet-streaming unit’s PPS capacity increases from 0.8 Mpps to 1.2 Mpps, the processor 230 may increase the size of associated buffers or queues accordingly. The change in the sizes takes effect for all streaming instances during that cycle to allow the packet processing system 200 to handle higher packet rates smoothly without dropping packets or overloading the packet streaming units 260.
[0087] FIG. 4 illustrates a schematic diagram of a network node 400 in a network environment and means for implementing one or more embodiments of the present disclosure. As mentioned above, the method 300 may be implemented in a distributed fashion, but in the following an example of a single network node being configured to perform the method 300 is described.
[0088] The network node 400 may correspond to one of, but not limited to, a router, a multilayer switch, a network appliance, a 5G core device, a media streaming node, a Wi-Fi controller, an edge device, or the like. The network node 400 comprises aprocessor 402 comprising any combination of one or more of a Central Processing Unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit etc. capable of executing software instructions 404-1 stored in a memory 404, which can thus be a computer program product 500. The processor 402 can be configured to execute any of the various embodiments of the method 300 as have been described, for instance as described in relation to FIG.3.
[0089] The memory 404 can be any combination of read and write memory (RAM) and read only memory (ROM), Flash memory, magnetic tape, Compact Disc (CD)-ROM, digital versatile disc (DVD), Blu-ray disc etc. The memory 404 also includes persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory.
[0090] The network node 400 may also comprise an input / output interface 406, indicated by I / O interface in FIG. 4. The RO interface 406 may include an interface for communication exchange for instance with other network nodes or other entities of the network environment 100.
[0091] The network node 400 may also include or be configured to control antenna(s) 412 for communicating wirelessly with wireless devices residing within its coverage area(s), in particular by transmitting and / or receiving signaling to / from the wireless user terminals within its coverage area(s). For this end, the network node 400 may also include a Tx / Rx circuitry 408 (an example of a processing circuitry) for processing signaling received wirelessly from user terminals and for processing signaling to be transmitted wirelessly to the user terminals. Still other processing circuitry (e.g., a processing circuitry 408) may be provided for implementing the various embodiments described, e.g. processing circuitry adapted for performing the steps of the method 300.
[0092] The network node 400 may include still other components, e.g. power amplifiers (not shown in the FIG. 4), conventionally used in such network nodes.1
[0093] The network node 400 may be configured to perform the above-described method steps e.g. by comprising a processor 402 and memory 404, the memory 404 containing instructions 404-1 executable by the processor 402 to perform the steps of the steps described in relation to FIGS. 2 and 3.
[0094] FIG.5 illustrates an exemplary computer system 500 in which or with which embodiments of the present disclosure may be implemented. As shown in FIG. 5, the computer system 500 may include a bus 510, a processing unit 520, a main memory 530, a Read Only Memory (ROM) 540, a storage device 550, an input device 560, an output device 570, and a communication interface 580. The bus 510 may include a path that permits communication among the other components of the computer system 500.
[0095] The processing unit 520 may include one or more processors or microprocessors which may interpret and execute stored instructions associated with one or more processes, or processing logic that implements the one or more processes. For example, the processing unit 520 may include, but is not limited to, programmable logic such as Field Programmable Gate Arrays (FPGAs) or accelerators. The processing unit 520 may include software, hardware, or a combination of software and hardware for executing the processes described herein.
[0096] The main memory 530 may include a random-access memory (RAM) or another type of dynamic storage device that may store information and, in some implementations, instructions for execution by the processing unit 520. The ROM 540 may include a ROM device or another type of static storage device (e.g., Electrically Erasable Programmable ROM (EEPROM)) that may store static information and, in some implementations, instructions for use by the processing unit 520.
[0097] The storage device 550 may include a magnetic, an optical, and / or a solid state (e.g., flash drive) recording medium and its corresponding drive. The main memory 530, the ROM 540 and the storage device 550 may each be referred to herein as a “non-transitory computer-readable medium” or a “non-transitory storagemedium.” The process / methods set forth herein can be implemented as instructions that are stored in the main memory 530, the ROM 540 and / or the storage device 550 for execution by the processing unit 520.
[0098] The input device 560 may include one or more devices that permit an operator to input information to the computer system 500, such as, for example, a keypad or a keyboard, a display with a touch sensitive panel, voice recognition and / or biometric mechanisms etc. The output device 570 may include one or more devices that output information to the operator, including a display, a speaker, etc. The input device 560 and the output device 570 may, in some implementations, be implemented as an UI that displays UI information, and which receives user input via the UI. The communication interface 580 may include one or more transceivers that enable the computer system 500 to communicate with other devices and / or systems. For example, the communication interface 580 may include one or more wired or wireless transceivers for communicating via the network 112.
[0099] The computer system 500 may perform certain operations or processes, as may be described herein. The computer system 500 may perform these operations in response to the processing unit 520 executing software instructions contained in a computer-readable medium, such as the memory 530. The “computer-readable medium” may be defined as a physical or logical memory device. The logical memory device may include memory space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into the main memory 530 from another computer-readable medium, such as the storage device 550, or from another device via the communication interface 580. The software instructions contained in the main memory 530 may cause the processing unit 520 to perform the operations or processes, as described herein. Alternatively, hardwired circuitry (e.g., logic hardware) may be used in place of, or in combination with, software instructions to implement the operations or processes, as described herein. Thus, exemplary implementations are not limited to any specific combination of hardware circuitry and software.
[0100] The configuration of components of the computer system 500 illustrated in FIG. 5 is for illustrative purposes only. Other configurations may be implemented. Therefore, the computer system 500 may include additional, fewer and / or different components, arranged in a different configuration than depicted in FIG. 5.
[0101] Now, referring to the technical abilities and advantageous effect of the present disclosure, the embodiments disclosed herein provide a solution for handling varying load levels and ensure robust performance under different varying conditions associated with network load during packet processing. The methods and system disclosed herein provide support in line-rate packet processing and segregates traffic based on specific configurations. As a result, the method dynamically creates parallel data streams according to the received network load, optimizes resource utilization and maintains high throughput.
[0102] The above-described embodiments can be further implemented at a network level of any type of high-speed network system, where ultra-fast packet processing is required to ensure optimal utilization of computational resources.
[0103] Those skilled in the art will appreciate that the methodology described herein in the present disclosure may be carried out in other specific ways than those set forth herein in the above disclosed embodiments without departing from essential characteristics and features of the present invention. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.
[0104] The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein. Any combination of the above features and functionalities may be used in accordance with one or more embodiments.
[0105] In the present disclosure, each of the embodiments has been described with reference to numerous specific details which may vary from embodiment to embodiment. The foregoing description of the specific embodiments disclosed herein may reveal the general nature of the embodiments herein that others may, by applying current knowledge, readily modify and / or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications are intended to be comprehended within the meaning of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and is not limited in scope.LIST OF REFERENCE NUMERALS
[0106] The following list is provided for convenience and in support of the drawing figures and as part of the text of the specification, which describes innovations by reference to multiple items. Items not listed here may nonetheless be part of a given embodiment. For better legibility of the text, a given reference number is recited near some, but not all, recitations of the referenced item in the text. The same reference number may be used with reference to different examples or different instances of a given item. The list of reference numerals is:100 - Network environment102a, 102b, 102n - User Devices104 - Network104’ - Network106 - Gateway200 - Packet processing system220 - Network Interface Card (NIC)230 - Processor(s)240 - Cache Memory250 - Processing Unit(s) / Module(s)252 - Packet Acquisition Module254 - Packet Processing Unit256 - Metadata Appending Unit258 - Traffic Segregation Unit260 - Packet Streaming Unit(s)270 - System Memory300 - Flowchart depicting a method for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network 400 - Schematic diagram of a network node in a wireless communication network402 - Processor404 - Memory404-1 - Instructions406 - I / O interface408 - Processing Circuitry410 - Tx / Rx Circuitry412 - Antenna(s)500 - Computer System510 - Bus520 - Processing Unit530 - Main Memory540 - ROM550 - Storage Device560 - Input Device570 - Output Device580 - Communication Interface
Claims
We claim:
1. A method (300) for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network (100), the method (300) comprising: receiving, by a packet acquisition module (252) from the network (104'), a plurality of data packets in a plurality of receive (Rx) queues via a Network Interface Card (NIC) 220;generating, by the packet acquisition module (252) that includes a plurality of packet acquisition units, a plurality of packet acquisition instances based on, a user specified value of a Transaction per second (TPS) for processing the plurality of data packets and a processing capacity of each packet acquisition unit among the plurality of packet acquisition units;generating, by a traffic segregation unit (258), a plurality of traffic segregation instances based on the plurality of packet acquisition instances;generating, by one or more packet streaming units (260), a plurality of packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among the one or more packet streaming units; andcontrolling, by a packet processing unit (254), the PPS for the one or more packet streaming units (260) based on a mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances.
2. The method (300) as claimed in claim 1, wherein the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances is performed by the packet processing unit (254) based on a processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit (260).
3. The method (300) as claimed in claim 1, whereinthe plurality of data packets comprises a plurality of connection identifiers, andthe plurality of connection identifiers comprises at least a source Internet Protocol (IP) address, a destination IP address, a port number of a source port, and a port number of a destination port.
4. The method (300) as claimed in claim 3, comprising generating, by a metadata appending unit (256), a plurality of metadata addition instances based on the plurality of packet acquisition instances, wherein:each metadata addition instance among the plurality of metadata addition instances comprises addition of metadata corresponding to at least one data packet among the plurality of data packets;the metadata includes a timestamp, a stream identifier, a packet length, and transport protocol information, andfor generating the plurality of traffic segregation instances, the method comprises:analyzing, by the traffic segregation unit (258), the metadata corresponding to each data packet among the plurality of data packets to identify at least one type of a transport layer protocol associated with the plurality of data packets; andgenerating, by the traffic segregation unit (258), the plurality of traffic segregation instances based on the identified at least one type of the transport layer protocol and the plurality of connection identifiers.
5. The method (300) as claimed in claim 4, wherein the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances comprises:associating, by the packet processing unit (254) based on a correlation between at least one type of the transport layer protocol and the plurality of connection identifiers, each traffic segregation instance among the plurality of traffic segregation instances with at least one packet streaming instance among the plurality of packet streaming instances;allocating, by the packet processing unit (254), a processing load to each packet streaming instance among the plurality of packet streaming instances based on the processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit; andmaintaining, by the packet processing unit (254), a dynamic mapping table that updates the association of each traffic segregation instance with the at least one packet streaming instance in response to a change in the load in the network or a PPS configuration.
6. The method (300) as claimed in claim 4, wherein at least two of:each packet acquisition instance among the plurality of packet acquisition instances,each metadata instance among the plurality of metadata addition instances, each traffic segregation instance among the plurality of traffic segregation instances, andeach packet streaming instance among the plurality of packet streaming instances are generated simultaneously.
7. The method (300) as claimed in claim 1, comprising:calculating, by the packet processing unit (254), a ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit (260); andgenerating, by the one or more packet streaming units (260), the plurality of packet streaming instances based on the calculated ratio of the processing capacity of each packet acquisition unit and the capacity of each packet streaming unit (260).
8. The method (300) as claimed in claim 1, wherein, for generating the plurality of packet acquisition instances, the method (300) comprises:calculating, by the packet processing unit (254), a ratio of the TPS and the processing capacity of each packet acquisition unit; andgenerating, by the packet acquisition module (252), the plurality of packet acquisition instances based on the calculated ratio of the TPS and the processing capacity of each packet acquisition unit.
9. The method (300) as claimed in claim 1, comprising:dynamically assigning, by the packet processing unit (254), adaptive storage units simultaneously to each of the plurality of packet streaming instances based on a maximum configurable PPS capacity of the one or more packet streaming units (260); andsynchronizing, by the packet processing unit (254), the plurality of packet streaming instances with one or more receiving systems based on the assigned adaptive storage units.
10. A system (200) for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network (100), the system (200) comprising: a packet acquisition module (252) that includes a plurality of packet acquisition units, wherein the packet acquisition module (252 is configured to:receive, from the network (104'), a plurality of data packets in a plurality of receive (Rx) queues via a Network Interface Card (NIC) (220); andgenerate a plurality of packet acquisition instances based on a user specified value of a Transaction per second (TPS) for processing the plurality of data packets and a processing capacity of each packet acquisition unit among the plurality of packet acquisition units;a traffic segregation unit (258) configured to generate a plurality of traffic segregation instances based on the plurality of packet acquisition instances;one or more packet streaming units (260) configured to generate a plurality of packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among the one or more packet streaming units (260); anda packet processing unit (254) configured to control the PPS for the one or more packet streaming units (260) based on a mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances.
11. The system (200) as claimed in claim 10, wherein the packet processing unit (254) is configured to perform the mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances based on a processing capacity of each packet streaming unit and the PPS allocated to each packet streaming unit (260).
12. The system (200) as claimed in claim 10, whereinthe plurality of data packets comprises a plurality of connection identifiers, andthe plurality of connection identifiers comprises at least a source Internet Protocol (IP) address, a destination IP address, a port number of a source port, and a port number of a destination port.
13. The system (200) as claimed in claim 12, comprising a metadata appending unit (256) configured to generate a plurality of metadata addition instances based on the plurality of packet acquisition instances, wherein:each metadata addition instance among the plurality of metadata addition instances comprises addition of metadata corresponding to at least one data packet among the plurality of data packets;the metadata includes a timestamp, a stream identifier, a packet length, and transport protocol information; andfor generating the plurality of traffic segregation instances, the traffic segregation unit (258) is configured to:analyze the metadata corresponding to each data packet among the plurality of data packets to identify at least one type of a transport layer protocol associated with the plurality of data packets; andgenerate the plurality of traffic segregation instances based on the identified at least one type of the transport layer protocol and the plurality of connection identifiers.
14. The system (200) as claimed in claim 13, wherein, to map the plurality of traffic segregation instances with the plurality of packet streaming instances, the packet processing unit (254) is configured to:associate, based on a correlation between at least one type of the transport layer protocol and the plurality of connection identifiers, each traffic segregation instance among the plurality of traffic segregation instances with at least one packet streaming instance among the plurality of packet streaming instances;allocate a processing load to each packet streaming instance among the plurality of packet streaming instances based on the processing capacity of each packet streaming unit (260) and the PPS allocated to each packet streaming unit (260); andmaintain a dynamic mapping table that updates the association of each traffic segregation instance with the at least one packet streaming instance in response to a change in the load in the network or a PPS configuration.
15. The system (200) as claimed in claim 13, wherein at least two of:each packet acquisition instance among the plurality of packet acquisition instances,each metadata instance among the plurality of metadata addition instances, each traffic segregation instance among the plurality of traffic segregation instances, andeach packet streaming instance among the plurality of packet streaming instances are generated simultaneously.
16. The system (200) as claimed in claim 10, wherein:the packet processing unit (254) is configured to calculate a ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit (260); andthe one or more packet streaming units (260) are configured to generate the plurality of packet streaming instances based on the calculated ratio of the capacity of each packet acquisition unit and the capacity of each packet streaming unit (260).
17. The system (200) as claimed in claim 10, whereinthe packet processing unit (254) is configured to calculate a ratio of the TPS and the processing capacity of each packet acquisition unit; andthe packet acquisition module (252) is configured to generate the plurality of packet acquisition instances based on the calculated ratio of the TPS and the processing capacity of each packet acquisition unit.
18. The system (200) as claimed in claim 10, wherein the packet processing unit (254) is configured to:dynamically assign adaptive storage units simultaneously to each of the plurality of packet streaming instances based on a maximum configurable PPS capacity of the one or more packet streaming units (260); andsynchronize the plurality of packet streaming instances with one or more receiving systems based on the assigned adaptive storage units.
19. A computer program product for an adaptive control of Packet Processing Per Second (PPS) to handle diverse load in a network, the computer program product comprising computer-executable instructions that are stored on a non-transitory computer-readable medium and that, when executed by at least one processor performs operations comprising:receiving, from the network, a plurality of data packets in a plurality of receive (Rx) queues via a Network Interface Card (NIC);generating a plurality of packet acquisition instances based on a user specified value of a Transaction per second (TPS) for processing the plurality ofdata packets and a processing capacity of each packet acquisition unit among a plurality of packet acquisition units;generating a plurality of traffic segregation instances based on the plurality of packet acquisition instances;generating a plurality of packet streaming instances based on the processing capacity of each packet acquisition unit and a processing capacity of each packet streaming unit among one or more packet streaming units; andcontrolling the PPS for the one or more packet streaming units based on a mapping of the plurality of traffic segregation instances with the plurality of packet streaming instances.