Network Interface Scaling via Parallel Packet Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing networked computer systems face limitations in scaling network workload due to constraints in packet processing, queue management, and resource allocation, which hinder efficient network throughput, latency, and scalability, particularly in multiprocessor environments where loose coupling of load balancing elements limits collaboration between computer systems.
Innovation Solution
A network system that enables parallelization of network interfaces by using a flexible, hierarchical classification scheme with optimistic matching and internal system driver support, allowing for stateful or stateless association of workload quanta with processing resources, and providing isolated resources per partition, while addressing mutex contention and thread affinity issues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If network interface functionality is treated as a general purpose I/O interface, then the system maintains generality and modularity, but network-specific optimizations are lost resulting in reduced network throughput and efficiency
Solution Approach 1:
The network interface functionality is segmented into specialized components including packet classifiers, queue managers, and processing entities that operate independently within the general purpose I/O framework, allowing network optimizations without sacrificing system generality
Solution Approach 2:
The system implements a universal network interface architecture that can handle both general I/O operations and network-specific workloads through configurable processing entities and adaptable queue management mechanisms
2Productivity
If low level packet processing is segregated to separate hardware entities, then network processing efficiency is improved, but device complexity and system integration difficulty increase
Solution Approach 1:
The patent merges packet processing functionality directly into the network interface controller, combining filtering, classification, and queue management in a single integrated device rather than using separate hardware entities, thereby maintaining efficiency while reducing system complexity
3Productivity
If the number of queues between network interface and system is increased, then network throughput is improved, but packet arrival ordering constraints and queue management complexity increase
Solution Approach 1:
The queue management system dynamically adjusts queue assignments and processing entity allocations based on real-time traffic patterns and packet characteristics, allowing the system to optimize throughput without requiring a fixed large number of queues, thereby managing complexity adaptively
4Productivity
If multiple processors service a network interface, then processing capacity and scalability are improved, but coordination overhead and difficulty in achieving processor-state affinity increase
Solution Approach 1:
Each processing entity maintains self-contained state information and autonomously manages its own packet processing tasks without requiring extensive inter-processor coordination, allowing multiple processors to service the network interface independently while maintaining state affinity through self-service mechanisms
5Speed
If asynchronous interrupt notifications are used for packet arrival, then responsiveness is improved, but processing penalty and system overhead increase
Solution Approach 1:
The system uses periodic polling of packet arrival status combined with event-driven notifications, balancing the responsiveness of asynchronous interrupts with the processing efficiency of periodic checks, reducing the overall interrupt overhead while maintaining fast response to packet arrivals
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for scaling a network system which includes providing at least one network interface and providing a flexible association between packets and a plurality of processing entities via the plurality of memory access channels. Each network interface including a plurality of memory access channels.