Coalescing Hardware Table Writes for Non-Disruptive Network Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for updating hardware tables in network elements are disruptive, especially in link flapping scenarios, and require specific ordering to prevent inconsistencies and traffic disruptions.
Innovation Solution
A method and apparatus that utilize a shared memory system to coalesce and store lookup entries, allowing hardware writers to perform table modifications in a non-disruptive manner by determining consistent states and handling potential inconsistencies, such as priority inversions and deadlocks, using temporary locations and conflict-free processing orders.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a FIFO queue is used to store data for the data plane, then data is programmed in order, but every data update is sent to the hardware writer causing disruptions in link flapping scenarios
Solution Approach 1:
The patent merges multiple identical or redundant data updates into a single update operation. When the same data needs to be programmed multiple times (e.g., during link flapping), the system consolidates these into one hardware table update, eliminating redundant operations and preventing disruptions while maintaining data consistency.
Solution Approach 2:
The system changes the state parameter of data updates by tracking whether data has already been programmed. By comparing update timestamps and detecting duplicate update requests, the system identifies when no actual change occurs and skips redundant hardware updates, thereby improving productivity without compromising stability.
2Adaptability or versatility
If existing entries are moved to add new entries to the hardware table, then new entries can be added, but the moves can be disruptive unless performed in specific order
Solution Approach 1:
The patent applies preliminary action by allocating temporary storage locations for entries that need to be moved before actually performing the move operation. This allows the system to prepare the hardware table in advance, ensuring that new entries can be added without disrupting existing traffic flow, as the temporary locations are reserved beforehand to prevent conflicts.
Solution Approach 2:
The system introduces temporary storage locations as intermediaries between the existing hardware table entries and the final destination. These temporary locations act as buffers that allow entries to be relocated without causing traffic disruptions, as the movement can be coordinated through these intermediate storage spots rather than directly overwriting active entries.
3Productivity
If multiple hardware writers independently access lookup entries, then processing parallelism is achieved, but inconsistencies and deadlocks may occur
Solution Approach 1:
The patent implements feedback mechanisms where hardware writers check the current state of hardware table entries before performing updates. By continuously monitoring whether entries are consistent and detecting potential conflicts or deadlocks, the system can adjust the processing order or pause operations to maintain table consistency while still achieving high throughput through parallel processing when conditions permit.
Data Source
AI summary
A method and apparatus of a network element that stores a lookup entry in a hardware table of a network element is described. In an exemplary embodiment, the network element receives a notification of a dirty lookup entry to be processed for a hardware table of a network element, where the hardware table includes a plurality of lookup entries. In addition, the network element determines a location for a table modification associated with the dirty lookup entry in the hardware table. Furthermore, the network element performs, with a hardware writer of the network element, the table modification associated with the lookup entry in a non-disruptive manner, where the hardware writer performs the table modification associated with the lookup entry in response to determining that the table modification associated with the lookup entry does not leave one of the plurality of lookup entries inconsistent after the table modification is performed.


