Incremental Prefix Tree Storage for Network Routing Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing networking devices face challenges in efficiently storing and processing large amounts of routing information due to the high cost and power consumption of specialized high-speed memory components like TCAM, especially as the number of routing entries grows.
Innovation Solution
The implementation of an incremental prefix tree data structure that stores only incremental portions of prefixes relative to parent nodes, partitioned across multiple memory components, including TCAM for frequently accessed nodes and SRAM for less frequently accessed nodes, and the use of prefix length-specific databases to optimize storage and search efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If specialized high-speed memory components like TCAM are used to store routing information, then processing speed for network packets is improved, but cost and power consumption increase
Solution Approach 1:
The routing information storage is segmented into two parts: a TCAM component storing only essential routing entries for high-speed processing, and a conventional memory component storing the remaining routing information. This segmentation allows the system to maintain high processing speed for critical routes while reducing overall power consumption by limiting TCAM usage.
2Quantity of substance
If the number of routing entries stored by a networking device grows large, then routing information completeness is improved, but storage space and power consumption increase
Solution Approach 1:
The large set of routing entries is divided between two storage components: TCAM holds a smaller subset of frequently accessed or critical routing entries, while conventional memory holds the larger set of less frequently accessed entries. This allows the system to support a large total number of routing entries without proportionally increasing power consumption.
3Quantity of substance
If the number of routing entries stored by a networking device grows large, then routing information completeness is improved, but cost increases
Solution Approach 1:
The storage system is segmented into an expensive TCAM component for critical entries and a cheaper conventional memory component for the remaining entries. This hybrid approach allows the system to support a large number of routing entries without incurring the full cost of using TCAM for all entries, thus reducing overall manufacturing cost.
4Volume of stationary object
If incremental prefix tree is used to store only incremental portions of prefixes, then storage space is reduced, but data structure complexity increases
Solution Approach 1:
The incremental prefix tree is segmented and distributed across two storage components: the TCAM stores the root and critical nodes of the prefix tree for fast access, while conventional memory stores the remaining nodes. This segmentation reduces the storage space required in the high-speed memory while managing the complexity through a structured distribution scheme.
Data Source
AI summary
Prefix entries are efficiently stored at a networking device for performance of a longest prefix match against the stored entries. A prefix entry generally refers to a data entry which maps a particular prefix to one or more actions to be performed by a networking device with respect to network packets or other data structures associated with a network packet that matches the particular prefix. In the context of a router networking device handling a data packet, the one or more actions may include, for example, forwarding a received network packet to a particular “next hop” networking device in order to progress the network packet towards its final destination, applying firewall rule(s), manipulating the packet, and so forth. To reduce a total amount of space occupied by a prefix tree in storage, each of the nodes of a prefix tree may be configured to store only an incremental portion of a prefix relative to its parent node.


