Multithreaded Packet Processing via External Engine Mediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvepacket processing throughputVSAvoididle time of packet processing elements
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #1Segmentation

2Productivity

If packet processing elements continuously process packets, then throughput is maintained, but resource-intensive operations increase latency

Engineering Contradiction:
Improvepacket processing throughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #15Dynamics

3Productivity

If packet processing elements are dedicated to specific operations, then processing efficiency is improved, but flexibility to handle different packet types is reduced

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidflexibility in packet processing
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9455907B1Multithreaded parallel packet processing in network devices
Publication Date: 2016.09.27 MARVELL ISRAEL (M L S L) LTD
  • US9455907B1 patent drawing
  • US9455907B1 patent drawing
  • US9455907B1 patent drawing

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.