Dynamic Hardware Software Packet Forwarding Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current forwarding systems in homes and small offices face limitations in handling multiple data flows efficiently, as they either rely on costly and inflexible dedicated hardware for high-priority flows or slower software processing for lower-priority flows, lacking the ability to dynamically optimize resource utilization between hardware and software engines.

Innovation Solution

A method and apparatus that dynamically select between software and hardware forwarding engines based on packet classification, flow priority, and system resource availability to process and forward packets, allowing for load sharing and optimal resource utilization by using a selection engine to choose the appropriate engine for each packet.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If dedicated hardware forwarding is used for high-priority flows, then forwarding speed is improved, but system cost and inflexibility increase

Engineering Contradiction:
Improveforwarding speedVSAvoidsystem cost
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The hardware forwarding engine is designed to handle multiple types of packet forwarding operations through a unified structure. The engine can process both simple and complex forwarding rules, and can dynamically adapt to different flow types, thereby reducing the need for separate dedicated hardware for each flow type while maintaining high forwarding speed.

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

Solution Approach 2:

The system dynamically selects between hardware and software forwarding engines based on packet classification and flow priority. High-priority packets are directed to the hardware engine for fast processing, while lower-priority packets use the software engine, allowing the system to optimize performance without permanently allocating expensive hardware resources for all scenarios.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If software processing is used for all packets, then system flexibility is improved, but forwarding speed deteriorates

Engineering Contradiction:
Improvesystem flexibilityVSAvoidforwarding speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The forwarding system is segmented into two distinct engines: a hardware forwarding engine for speed-critical operations and a software forwarding engine for flexibility-critical operations. The selection engine divides packet processing between these two segments based on packet type and priority, allowing each segment to optimize for its strength while avoiding the weaknesses of using a single engine for all tasks.

Inventive Principle:
Principle #1Segmentation

3Speed

If hardware forwarding is used for all packets, then forwarding speed is improved, but adaptability to different packet types deteriorates

Engineering Contradiction:
Improveforwarding speedVSAvoidadaptability to packet types
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The selection engine acts as an intermediary between incoming packets and the forwarding engines. It classifies packets based on their type and priority, then directs appropriate packets to either the hardware or software engine. This intermediary layer allows the system to maintain high speed for suitable packets while preserving adaptability for complex or unusual packet types that require software processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Device complexity

If static resource allocation is used between hardware and software engines, then system simplicity is improved, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improvesystem simplicityVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system employs dynamic resource allocation where the selection engine continuously monitors packet characteristics and directs packets to the most appropriate engine in real-time. This dynamic approach allows the system to adapt resource utilization to actual traffic patterns, ensuring high resource utilization efficiency without requiring complex manual configuration or static allocation schemes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10243865B2Combined hardware/software forwarding mechanism and method
Publication Date: 2019.03.26 MARVELL ISRAEL (M L S L) LTD
  • US10243865B2 patent drawing
  • US10243865B2 patent drawing
  • US10243865B2 patent drawing

AI summary

A network device includes (i) a software forwarding engine, and (ii) a hardware forwarding engine, wherein the software forwarding engine is implemented using a processor executing machine readable instructions. The network device analyzes a header of a received packet to determine i) whether the received packet belongs to any flows of packets already known to the network device, and ii) a packet type of the received packet. The network device selects one of the software forwarding engine or the hardware forwarding engine to process the received packet based on i) whether the received packet belongs to any flows of packets already known to the network device, and ii) the determined packet type, including selecting the software forwarding engine when it is determined that the received packet does not belong to any flow of packets already known to the network device.