Multithreaded Packet Processing via External Engine Mediation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network devices face inefficiencies in packet processing due to idle time of packet processing elements, as they are not optimized to handle resource-intensive operations efficiently, leading to suboptimal throughput and increased latency.
Innovation Solution
Implementing a method where packet processing elements can suspend processing and trigger external processing engines for specific operations, allowing context switching and shared packet processing contexts to efficiently utilize resources, thereby reducing idle time and improving throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If packet processing elements perform resource-intensive operations independently, then processing operations can be completed, but packet processing elements experience idle time and reduced utilization
Solution Approach 1:
The patent introduces an external processing engine as an intermediary component that handles resource-intensive operations separately from the packet processing elements. The packet processing elements trigger these external operations and suspend processing, allowing the external engine to perform heavy computations without blocking the packet processing elements, thereby eliminating idle time and improving throughput.
Solution Approach 2:
The patent segments the packet processing function into two distinct parts: lightweight packet processing operations performed by packet processing elements and resource-intensive operations performed by external processing engines. This segmentation allows each component to operate independently at optimal speeds, with the packet processing elements maintaining continuous work while external engines handle heavy lifting.
2Productivity
If packet processing elements continuously process packets, then throughput is maintained, but resource-intensive operations increase latency
Solution Approach 1:
The external processing engine acts as a mediator that handles resource-intensive operations asynchronously. Packet processing elements trigger these operations and suspend processing, allowing latency-prone operations to be performed by the external engine without blocking the main packet processing flow, thus maintaining throughput while reducing latency.
Solution Approach 2:
The patent implements dynamic processing where packet processing elements can suspend and resume based on the status of external operations. This dynamic approach allows the system to adapt to varying workloads, maintaining high throughput by suspending packet processing during resource-intensive operations and resuming when external engines complete their tasks.
3Productivity
If packet processing elements are dedicated to specific operations, then processing efficiency is improved, but flexibility to handle different packet types is reduced
Solution Approach 1:
The patent implements multi-functionality by allowing packet processing elements to be triggered to perform various operations based on packet type and requirements. While external processing engines handle resource-intensive tasks, packet processing elements can dynamically switch between different processing functions, maintaining both efficiency and flexibility.
Solution Approach 2:
The external processing engine serves as a universal intermediary that can handle different types of resource-intensive operations for different packet types. This allows packet processing elements to maintain versatility by delegating to the external engine while preserving processing efficiency through specialized handling of common operations.
Data Source
AI summary
One or more processing operations are performed on a packet at a first packet processing element of a plurality of packet processing elements of a network device. A processing state corresponding to processing of the packet is indicated in a packet processing context associated with the packet. An external processing engine is triggered for performing an additional processing operation on the packet, and processing of the packet is suspended by the first packet processing element. Subsequent to completion of the additional processing operation by the external processing engine, processing of the packet is resumed, based on the packet processing context, by a second packet processing element when the second packet processing element is available for processing of the packet and the first packet processing element is not available for processing of the packet.


