Network Lookup Engine Parallel Response Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network switches face challenges in efficiently processing parallel network lookup queries due to out-of-order responses from centralized search engines, leading to increased network latency and head-of-line blocking issues, especially as they handle multiple protocol layers and new network protocols.
Innovation Solution
A network lookup engine is designed to generate parallel lookup requests and collect out-of-order responses by using a Parallel Queries Generator and a Parallel Responses Collector, which support both in-order and out-of-order response collection modes, allowing packets to receive responses as soon as they are available without being limited by the order of incoming queries or responses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a centralized search engine is used to handle multiple lookup queries from different network lookup engines, then device complexity and silicon area are reduced, but lookup responses arrive out of order causing network latency and head-of-line blocking
Solution Approach 1:
The system performs preliminary actions by generating unique query identifiers (query IDs) for each lookup query before sending it to the centralized search engine. The lookup engine also pre-allocates buffer slots for each query ID and stores the expected response data format. This preliminary preparation enables the system to correctly associate and collect out-of-order responses without blocking, as each response can be directly routed to its corresponding packet processing queue based on the pre-established query ID mapping.
Solution Approach 2:
The patent introduces an intermediary mechanism in the form of a response collection buffer and matching logic that sits between the centralized search engine and the lookup engines. This intermediary receives out-of-order responses from the search engine, uses query IDs to match responses with the correct pending queries, and delivers them in the appropriate order to each lookup engine. This mediator layer decouples the centralized search engine from the ordered response requirement of individual lookup engines, resolving the contradiction between centralized architecture and ordered response delivery.
2Productivity
If parallel lookup queries are sent to a centralized search engine, then processing speed is improved, but responses arrive out of order causing head-of-line blocking
Solution Approach 1:
Before sending parallel lookup queries to the centralized search engine, the system performs preliminary actions by assigning unique query IDs to each query and pre-establishing the mapping between query IDs and their corresponding packets. The lookup engine also prepares buffer slots for each query ID and stores metadata about the expected response. This preliminary organization enables the system to maintain reliability in response ordering even when processing occurs in parallel, as each out-of-order response can be correctly identified and routed using the pre-established query ID mappings.
Solution Approach 2:
The patent introduces an intermediary response collection mechanism that receives parallel lookup responses from the centralized search engine regardless of their arrival order. This intermediary uses query IDs embedded in each response to match it with the corresponding pending query, then delivers the response to the appropriate lookup engine in the correct order. This mediator layer preserves response ordering reliability while allowing parallel processing to proceed at high speed, effectively decoupling parallel processing from ordered delivery.
3Productivity
If multiple protocol layers are processed in parallel, then network performance is boosted, but the complexity of collecting responses from different lookup queries increases
Solution Approach 1:
The patent implements a universal response collection mechanism that handles lookup queries across multiple protocol layers (MPLS, bridge, IP, etc.) through a single unified architecture. The system uses a standardized query ID format and buffer structure that works for all lookup types, allowing parallel processing of different protocol layers without requiring separate collection mechanisms for each layer. This universal approach boosts network performance by enabling parallel multi-layer processing while keeping the response collection complexity manageable through standardization.
Solution Approach 2:
The system segments the response collection process into independent, manageable units based on query IDs. Each lookup query (regardless of protocol layer) is assigned a unique query ID, and the response collection mechanism processes responses in segmented batches corresponding to these IDs. This segmentation allows the system to handle complex multi-protocol parallel processing by breaking down the monolithic response collection task into smaller, independently manageable segments, reducing overall complexity while maintaining high performance.
Data Source
AI summary
A network lookup engine in a network switch is configured to generate multiple lookup queries for each incoming packet in parallel to a remote search engine. The number and type of the lookup queries depend on the protocols supported by the network switch. The responses from the search engine arriving at the lookup engine are not in the same order as the order of the packets. The network lookup engine is configured to collect the responses for the parallel lookup queries in two modes: 1) in-order mode in which the first packet having its lookup queries sent to the search engine has its responses collected first regardless of the order of the responses received from the search engine; 2) out-of-order mode in which the first packet having complete responses to its lookup queries from the search engine has its responses collected first regardless of the order of incoming packets.


