Packet Forwarder Flow Learning via Thread Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software-based packet forwarding solutions in computer networking are less efficient than hardware-based solutions due to limited hardware support for operations like lookups, encryption, and encoding/decoding, necessitating improved methods for efficient flow learning and packet forwarding.
Innovation Solution
A packet forwarder device employs a method with multiple forwarding and provisioning threads to implement architecture-independent dynamic flow learning, using an admission mechanism and data structures like buckets and operation queues to efficiently learn and manage new flows without dedicated hardware, enabling efficient flow learning and forwarding even on general-purpose processors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software-based packet forwarding solutions are used, then ease of management, physical space saving, power saving, and flexibility are improved, but processing efficiency and time utilization deteriorate due to limited hardware support for operations like lookups, encryption, and encoding/decoding
Solution Approach 1:
The patent segments the packet forwarding process into distinct phases: admission control (determining whether to learn a new flow), provisioning (learning and storing flow information in data structures), and forwarding (actually forwarding packets). This segmentation allows each phase to be optimized independently, with admission control using fast hardware-supported operations and provisioning using software-based data structures, thereby maintaining flexibility while improving processing efficiency.
Solution Approach 2:
The patent implements preliminary action by performing admission control before actual flow learning. The admission mechanism pre-determines whether a new flow should be learned based on criteria like flow type and system state, preventing unnecessary flow learning operations and reducing the burden on software processing resources, thus improving overall processing efficiency while maintaining flexibility.
2Speed
If dedicated hardware elements are used for packet classification and flow learning, then processing speed and time efficiency are improved, but device complexity and cost of ownership increase
Solution Approach 1:
The patent implements universality by designing a software-based flow learning mechanism that can operate on general-purpose processors without requiring dedicated hardware elements. The same software framework handles multiple functions including packet classification, flow learning, and forwarding decisions, eliminating the need for separate hardware components and reducing overall device complexity while maintaining acceptable processing speeds.
Solution Approach 2:
The patent applies mechanics substitution by replacing dedicated hardware mechanisms with software-based algorithms and data structures. Instead of using specialized hardware circuits for flow learning, the invention uses software-implemented hash tables, trees, and other data structures to achieve the same functionality, thereby reducing hardware complexity and cost while maintaining processing efficiency through optimized software design.
3Productivity
If multiple threads are used for forwarding and provisioning operations, then productivity and parallel processing capability are improved, but device complexity and synchronization requirements increase
Solution Approach 1:
The patent segments the packet forwarding system into multiple independent threads: forwarding threads that handle packet reception and forwarding decisions, and provisioning threads that handle flow learning and data structure updates. Each thread is assigned specific responsibilities and operates independently with minimal synchronization requirements, improving parallel processing capability while managing complexity through clear functional separation.
Solution Approach 2:
The patent introduces operation queues as intermediary structures that mediate between forwarding threads and provisioning threads. Instead of direct synchronization between threads, forwarding threads submit operations to queues, and provisioning threads process these operations asynchronously. This intermediary mechanism enables efficient parallel processing while simplifying thread management by eliminating the need for complex synchronization protocols.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Exemplary techniques for architecture-independent dynamic flow learning in a packet forwarder are described. A packet forwarder includes a plurality of forwarding threads and a plurality of provisioning threads, and can implement three functional blocks to learn new flows – an admission control block, a forwarding database building block, and a notification path block. An admission control module can control the ability for forwarding threads to place flow operation requests in operation queues. Provisioning threads independently manage particular operation queues, and can update corresponding portions of a control database and a forwarding database. Flow operation notifications can be managed through notification queues, which can be drained back into the operation queues for the provisioning threads to later process. The packet forwarder thus can benefit from a highly-parallel, highly-efficient software-based approach to flow learning operations that does not require specialized hardware support.