DATA PACKET PROCESSING SYSTEM ON A CHIP
20220038385 · 2022-02-03
Inventors
Cpc classification
International classification
Abstract
An on-chip data packet processing method and corresponding integrated circuit, wherein data packets are received at an ingress port and processed with an on-chip wire-speed engine. The processing comprises adding metadata to the data packets, forwarding the processed data to an on-chip QoS unit, altering the metadata of the data packets and/or providing further metadata to the data packets. The data packets are forwarded from the on-chip QoS unit to an on-chip data consumer. If the data consumer is a processing unit the data packets are processed in a first processing step, redirected from the processing unit to the QoS unit and the step of forwarding the data packets to an on-chip data consumer is repeated.
Claims
1. An on-chip data packet processing method comprising receiving data packets at an ingress port, processing the data packets with an on-chip wire-speed engine, the processing comprising adding metadata to the data packets to form transformed data packets, forwarding the transformed data packets to an on-chip Quality of Service (QoS) circuit, modifying the metadata of the transformed data packets by providing further metadata to the transformed data packets or altering the metadata of the transformed data packets, forwarding the modified, transformed data packets from the on-chip QoS circuit to an on-chip data consumer, the on-chip data consumer being selected from an egress port, a switch, and a processing unit, the type of the on-chip data consumer being dependent on the modified metadata, and if the modified, transformed data packets are forwarded to a processing circuit: processing the modified, transformed data packets in a first processing step to form processed data, redirecting the processed data from the processing circuit back to the QoS circuit, and repeating the act of forwarding the processed data to a data consumer.
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0025] The subject of the present specification is now explained in further detail with respect to the following Figures in which
[0026]
[0027]
[0028]
DETAILED DESCRIPTION
[0029] In the following description, details are provided to describe the embodiments of the application. It shall be apparent to one skilled in the art, however, that the embodiments may be practised without such details.
[0030] Although the above description contains much specificity, these should not be construed as limiting the scope of the embodiments but merely providing illustration of the foreseeable embodiments. Especially the above stated advantages of the embodiments should not be construed as limiting the scope of the embodiments but merely to explain possible achievements if the described embodiments are put into practise. Thus, the scope of the embodiments should be determined by the claims and their equivalents, rather than by the examples given.
[0031] A packet processing system according to the application comprises a network processor architecture comprises a centralized Quality of Service (QoS) management that provides [0032] multipass handling in a QoS engine with multiple entrances into the QoS engine [0033] application of the same or similar rules-sets for the same traffic flow over multiple path in the network processor [0034] ingress based QoS classification at wire-speed without the need of dropping data before stored rules and QoS rules could be applied [0035] distributed QoS handling on multiple CPUs [0036] avoiding physical duplication of data for multicast support [0037] capability of redirecting data to cache for more efficient DDR/bandwidth utilization.
[0038] The packet processing system according to the application provides further capabilities, such as port level congestion control before QoS decision.
[0039] The packet processing system according to the present specification avoids or limits the use complex decentralized QoS approaches with complementary or replaced QoS management software based QoS. The packet processing system according to the present specification is well adapted to high load situations and bursty traffic.
[0040] Furthermore, the packet processing system according to the current specification provides an architecture with detection and classification of packets at wire-speed engines before the data packets are processed and routed. A classification of traffic can be carried out before QoS decisions have to be taken, even in a burst traffic scenario.
[0041] A packet processing method according to the current specification uses the guaranteed classification capability and applies QoS rules on a global egress port basis. By this method, the complete system on a chip (SoC) will receive a common QoS treatment for traffic flows regardless of the type of Egress interface/port. The packet processing method further comprises the technique of multipass templates. The multipass template technique serves the purpose of allowing parsing, classification, QoS rule execution and decision of the final Egress port of the traffic flow.
[0042] By deciding the final egress port of the traffic flow, the packet processing applies rules of intermediate processing steps required to reach the final egress port. This allows a homogenous configuration of the traffic flow towards multiple stages in the SoC processing with specific QoS rule set per stage before reaching the final egress or interface port.
[0043] According to the present specification, meta-data is applied to the descriptor of data allowing hand-over of packets in the traffic flow without data copy. Modification stages can load the packets of the flow or just portions of it and enqueue the packets back to the central QoS engine. The packets in the multipass architecture use a unique identifier for their flow type in every processing stage.
[0044] Among others, the metadata is provided for assuring a predetermined quality of service to an external data consumer such as a screen, a telephone, an audio equipment, a multimedia application on a computer, a wireless or wired internet provider, a household appliance, a surveillance system, an automated machinery control, a measurement system etc.
[0045] The packet processing system comprises a central QoS engine, which uses techniques of multipass templates to apply QoS rules and handling to traffic flows allowing re-entrance of the same flow going through multiple processing stages, which use unique QoS rules per stage, arriving at the final egress stage without software re-programming.
[0046]
[0047] The processing stages 15 perform dedicated functions and processing steps for packets of the traffic flow as a subsequent task that is different from forwarding the traffic flow to a final egress port 16. The final egress ports 16 are used as destination for fully processed data packets.
[0048] The multipass architecture provides single or multiple ingress parsing, traffic classification, congestion control and data storage modules, one or multiple processing stages 15, and one or more final egress ports 16. All of these elements can have different numbers and there is no requirement to have the same number.
[0049]
[0050] According to the current specification, the following types of fields may be included in a meta data section 20 of a data packet for encoding meta data 21, 22. The multipass enqueue ports 12 and the multipass deque ports 13 are operative to modify input meta data 21 to output meta data 22, for example by adding data fields or modifying values of data fields.
[0051] The meta data section 20 comprises, by way of example, a data pointer 23, a data length indicator 24 and a byte offset indicator 25.
[0052] Among others, the meta data 21, 22 comprises
[0053] 1. Flow related fields 26, such as [0054] a. a session ID field 27, which represents the layer-2 or layer-3 session associated to a packet flow [0055] b. a tunnel ID field 28, which represents the layer-3 encrypted flow which requires special treatment in the processing steps [0056] c. a flow ID field 29, which represents a bridging or routing flow number identified and used for processing of these packets.
Herein, layers 2 and 3 refer to the OSI network model, in which layer-2 is the data link layer and layer-3 is the network layer.
[0057] 2. Processing stage related fields 30, such as [0058] a. Stage 1 to N flags 31 defining the path and sequence of processing through the common QoS engine 11.
[0059] 3. QoS related fields 33, such as [0060] a. a color field 34 used as packet color for QoS handling function policing. According to one embodiment, this information is used together with other fields to determine the QoS queue in the common QoS engine 11. [0061] b. a class field 35 used as packet classifier after the parsing of packet fields to determine its priority QoS handling. This information is used together with other fields to determine the QoS queue in the common QoS engine 11.
[0062] 4. Destination related fields 36, such as [0063] a. an egress port (EP) field 37, which defines the physical port the data should be forwarded to [0064] b. a destination sub-interface ID field 38, which defines virtual ports behind the physical egress port 16. Both fields together define the final destination port of the packet
[0065]
[0066] The wire speed engine 41 is connected to an input of the QoS unit 11, the switch 42 is connected to an output of the QoS unit 11, the Ethernet interface 43 is connected to an output of the switch 42, the first CPU 44 is connected to an output of the QoS unit 11, the second CPU 45 is connected to an output of the QoS unit 11, the WIFI interface 46 is connected to an output of the QoS unit 11, the VGA interface 48 is connected to the first CPU 44 and the HDMI interface 49 is connected the second CPU 45.
[0067] A modem 50 is connected to an input of the wire speed engine 41. In one embodiment, the System on a chip 40 and the modem 50 are provided on a common circuit board, which is not shown in
[0068] During operation, the modem receive an encoded digital data signal 51, such as QAM modulated electrical signal or light signals, decodes the digital data of the digital data signal 51 and forwards the digital data in form of data packets 52. The modem 50 also converts data packets 52 into encoded digital data signals 51. For simplicity, this direction of data flow is not shown in
[0069] The wire speed engine 41 scans the data packets 52 or portions of them, provides the data packets 52 with meta data 20 and forwards them to the QoS unit 11 as transformed data packets 53 in wire speed. In
[0070] According to a first example, the wire speed engine 41 provides a data packet with metadata and sends it to the QoS unit 11 in a first step. In a second step, the QoS unit 11 alters the metadata of the data packet and forwards the data packet to the switch 42. In a third step the switch 42 for-wards the data packet to the Ethernet interface 43 according to the metadata.
[0071] According to a second example, the wire speed engine 41 provides a data packet with metadata and sends it to the QoS unit 11 in a first step. The QoS unit 11 provides the data packet with metadata indicating that the data packet is to be processed, in a first processing stage, and to be send back to the QoS unit 11 and forwards it to the first CPU 44 in a second step. In a third step, the first CPU 44 sends back the data packet to the QoS unit 11. In a fourth step, the QoS unit 11 sends the data packet to the WIFI interface 46.
[0072] According to a third example, the wire speed engine 41 provides a data packet with metadata and sends it to the QoS unit 11 in a first step. The QoS unit 11 forwards the data packet to the second CPU 45 in a second step. The second CPU 45 processes the data packet to HDMI data in a first processing stage and sends the data packet to the HDMI graphic interface 49 in a third step.
[0073] In a fourth step, the second CPU 45 sends the data packet to the first CPU 44 for further processing to VGA data in a second processing stage. In a fifth step, the first CPU 44 sends the data packet to the VGA interface 48.
[0074] According to a fourth example, which is not explained in detail, data packets are received from the WIFI interface 46, forwarded to the wirespeed engine 41, the QoS unit 11, processed in one or more processing stages, and finally routed to the modem 50. Similar to the preceding examples, the data packets are provided with metadata and the processing depends on the metadata.
[0075] According to another example, data packets are received from the Ethernet interface 43, forwarded to the wire speed engine 41 and to the QoS unit 11, processed in one or more processing stages, and forwarded to the WIFI interface 46. Similar to the preceding examples, the data packets are provided with metadata and the processing depends on the metadata.
[0076] The interfaces of the system on chip 40, such as the Ethernet interface 43, the WIFI interface 46, the VGA interface 48, the HDMI interface 49 may provide an egress port, an ingress port or both. For example, in one embodiment, the HDMI interface 49 provides the ingress port 1 of
TABLE-US-00001 Reference 10 packet processing system 11 QoS unit 12 enqueue ports 13 dequeue ports 14 ingress ports 16 egress ports 20 meta data section 21 input meta data 22 output meta data 23 data pointer 24 data length indicator 25 byte offset indicator 26 flow related fields 27 session ID field 28 tunnel ID field 29 flow ID field 33 QoS related fields 34 color field 35 class field 36 destination related fields 37 egress port field 38 destination sub-interface field 40 System on a chip 41 wire speed engine 42 switch 43 ethernet interface 44 first CPU 45 second CPU 46 WIFI interface 47 graphic processing unit 48 VGA interface 49 HDMI interface 50 modem 51 encoded digital signal 52 data packets 53 processed data packets