Dynamic Hardware Software Packet Forwarding Selection
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Speed
If dedicated hardware forwarding is used for high-priority flows, then forwarding speed is improved, but system cost and inflexibility increase
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.
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.
2Adaptability or versatility
If software processing is used for all packets, then system flexibility is improved, but forwarding speed deteriorates
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.
3Speed
If hardware forwarding is used for all packets, then forwarding speed is improved, but adaptability to different packet types deteriorates
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.
4Device complexity
If static resource allocation is used between hardware and software engines, then system simplicity is improved, but resource utilization efficiency deteriorates
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.
Data Source
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.


