Multibit Trie IP Routing Lookup for Network Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity of routing search processes in network devices, particularly due to wildcard characters and Longest Prefix Matching (LPM) in Classless Inter-Domain Routing (CIDR), leads to inefficient data transfer and increased memory access in routing tables, which affects the performance of routers.
Innovation Solution
The implementation of a Multibit Trie data structure with Tree Bitmap nodes, optimized for hardware pipeline implementation, reduces the number of search operations by searching multiple bits at once, dividing the trie into layers based on a predefined search step size, and using Internal Tree Bitmaps, Extending Paths Bitmaps, Result Array Pointers, and Child Node Pointers to efficiently manage routing information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional routing search methods using Longest Prefix Matching (LPM) and wildcard characters are used, then routing information can be stored in the routing table, but the search process becomes complex and inefficient
Solution Approach 1:
The routing table is divided into multiple routing tables, each storing routing information for a specific portion of the address space. This segmentation allows parallel processing of different address portions, reducing the overall search complexity and improving routing search efficiency while maintaining comprehensive routing coverage
Solution Approach 2:
The patent transforms the traditional single-dimension LPM search problem into a multi-dimensional search space by organizing routing information across multiple tables with different address portions. This dimensional transformation enables more efficient search operations by distributing the search load across multiple dimensions rather than processing all addresses sequentially in a single table
2Adaptability or versatility
If more routing information is stored in the routing table to support CIDR and wildcards, then routing flexibility increases, but memory access time increases
Solution Approach 1:
Routing information is segmented across multiple routing tables, each handling a specific portion of the address space. This allows the system to maintain high routing flexibility through comprehensive CIDR and wildcard support while reducing memory access time by searching only relevant portions of the address space in each table rather than scanning the entire routing table
Solution Approach 2:
Each routing table is optimized to store routing information with specific characteristics (e.g., specific address prefixes or wildcard patterns). This local optimization allows each table to be searched more efficiently for its designated portion of the address space, reducing overall memory access time while maintaining global routing flexibility
3Productivity
If the routing table is searched sequentially for each data packet, then routing decisions can be made, but data transfer efficiency decreases
Solution Approach 1:
The routing search process is segmented into parallel operations across multiple routing tables. Different address portions are searched simultaneously in different tables, transforming the sequential search into a parallel process that significantly reduces routing search time and improves data transfer efficiency
Solution Approach 2:
Routing information is pre-organized into multiple tables with specific address portions and patterns before data packets arrive. This preliminary organization enables rapid parallel searching when packets need to be routed, eliminating the need for sequential scanning and dramatically reducing routing search time for incoming packets
Data Source
Figure 1
Figure 2~3
Figure 4
AI summary
A Multibit Trie is created for routing distribution of IP prefixes in each Virtual Private Network (VPN). Routing of IP prefixes in the highest level 1∼m of the Multibit Trie is expanded to IP prefixes in level m+1 according to a prefix expansion method, wherein m is an integer larger than 1. Each branch of the IP prefixes in the level m+1 of the Multibit Trie is taken as a Branch_Tree, and data structure information of each Branch_Tree is saved. When routing of an IP address in a VPN is to be searched, a Branch_Tree is searched in a Multibit Trie corresponding to the VPN according to the highest m+1 bits of the IP address, and the routing of the IP address is searched in the Branch Tree.