Flexible Offload of Flow-Aware Processing Tasks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Layer 4-7 devices inefficiently perform stateful processing by sending all packets in a flow to a general purpose processor, wasting resources on packets that require minimal processing and overburdening the processor with long-lived flows, such as video streams or large file downloads.

Innovation Solution

Implementing a many-core network processor in communication with the general purpose processor to offload flow-aware processing tasks, allowing flexible control over which tasks and packets are processed by the many-core processor, thereby reducing the load on the general purpose processor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all packets in a flow are sent to the general purpose processor for flow-aware handling, then stateful processing can be performed, but the general purpose processor becomes overburdened and processing efficiency deteriorates

Engineering Contradiction:
Improvestateful processing capabilityVSAvoidprocessor throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the flow processing task into two parts: flow identification and classification (performed by the general purpose processor) and actual flow handling (performed by specialized flow handling modules). This segmentation allows the general purpose processor to offload repetitive flow processing tasks, improving throughput while maintaining stateful processing capability through the specialized modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces flow handling modules as intermediary components between the network interface and the general purpose processor. These modules act as mediators that can handle flow-aware processing tasks independently, reducing the burden on the general purpose processor while maintaining the ability to perform stateful processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all packets in a flow are processed by the general purpose processor, then flow-aware handling is ensured, but power consumption and resource waste increase for packets requiring minimal processing

Engineering Contradiction:
Improveflow-aware processingVSAvoidprocessor power consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies partial action by having the general purpose processor perform only flow identification and classification (partial processing), while delegating the actual flow handling to specialized modules. This avoids excessive processing of all packets by the general purpose processor, reducing power consumption while maintaining flow-aware handling through the coordinated system.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If long-lived flows with large numbers of middle packets are processed by the general purpose processor, then complete flow control is maintained, but the processor's ability to carry out other tasks is significantly impaired

Engineering Contradiction:
Improveflow controlVSAvoidmulti-task capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments flow processing responsibilities: the general purpose processor handles flow identification, classification, and control decisions (maintaining flow control reliability), while specialized flow handling modules execute the actual packet forwarding and processing for long-lived flows. This segmentation enables the general purpose processor to maintain flow control while freeing up capacity for other tasks, improving multi-task capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The flow handling modules serve as intermediaries that take over the execution of flow processing tasks for long-lived flows, allowing the general purpose processor to maintain flow control authority while delegating the voluminous packet handling work. This intermediary arrangement preserves flow control reliability while restoring multi-task capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2824880B1Flexible offload of processing a data flow
Publication Date: 2017.02.15 BROCADE COMMUNICATIONS SYSTEMS INC
  • EP2824880B1 patent drawing
  • EP2824880B1 patent drawing
  • EP2824880B1 patent drawing

AI summary

The device 400 includes a general purpose processor 202 for performing flow-aware, i.e. stateful, processing for a network flow. The device further includes a many-core network processor 208 in communication with the general purpose processor, and a non-transitory computer readable medium having stored thereon program code executable by the many-core network processor. When executed, the program code causes the many-core network processor to offload at least a portion of the flow-aware processing for at least a portion of the network flow from the general purpose processor, thereby reducing the load on the general purpose processor and improving the overall performance of the device. The nature of the offloading (e.g., timing, portion of the flow offloaded, etc.) is configurable by an application running on the general purpose processor. Many-core NP 208 can take over at least a portion of the Layer 4-7 packet processing previously handled by general purpose processor 202. For example, many-core NP 208 can offload stateless processing tasks from general purpose processor 202, such as Denial of Service (DoS) protection and stateless firewall filtering. In addition, many-core NP 208 can offload stateful, or flow-aware, processing tasks from general purpose processor 202, such as Layer 4 or 7 load balancing. In this latter case, many-core NP 208 can execute a flow offload engine that enables applications running on general purpose processor 202 to flexibly control the nature of the offloading (e.g., which tasks are offloaded, which flows or portions thereof are offloaded, etc.). With this flow offload capability, many-core NP 208 can significantly reduce the flow processing load on general purpose processor 202, thereby freeing up general purpose processor 202 to handle other tasks or implement new features/capabilities.