Braided Trie for Virtual Router Memory Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in virtual network infrastructures is to achieve both isolation and scalability among virtual routers sharing a common physical platform, particularly in scenarios like IPv4-to-IPv6 migration and L3 VPNs, where memory constraints limit the number of virtual routers due to linear memory consumption and differing forwarding table sizes.

Innovation Solution

The solution involves combining packet forwarding and filtering data structures into a single compact braided trie data structure, using trie braiding algorithms to swap child nodes and optimize memory usage, allowing for more efficient sharing of memory resources across virtual routers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory is partitioned and allocated to each virtual router, then isolation is achieved, but memory efficiency deteriorates and scalability is limited

Engineering Contradiction:
ImproveisolationVSAvoidmemory efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple virtual router forwarding tables into a single shared forwarding table data structure. Instead of allocating separate memory partitions to each virtual router, the system combines all forwarding entries from multiple virtual routers into one unified structure, enabling efficient memory sharing while maintaining isolation through virtualization mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared forwarding table is designed to serve multiple virtual routers simultaneously. A single forwarding table structure performs the function of what would traditionally require multiple separate tables, allowing one data structure to fulfill multiple purposes and support multiple virtual routing instances.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If separate forwarding tables are maintained for each virtual router, then isolation is achieved, but memory consumption increases linearly

Engineering Contradiction:
ImproveisolationVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines multiple separate forwarding tables into a single shared forwarding table. By merging the data structures of multiple virtual routers into one unified table, the system eliminates the linear growth of memory consumption that would occur with separate tables, while still maintaining logical isolation between virtual routers through the sharing mechanism.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If static memory provisioning is used, then isolation is achieved, but adaptability to dynamic forwarding table sizes deteriorates

Engineering Contradiction:
ImproveisolationVSAvoidadaptability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic shared forwarding table that can adapt to changing forwarding table sizes. The structure allows virtual router forwarding tables to grow and shrink dynamically based on actual needs, with the shared table automatically adjusting its allocation and organization, eliminating the rigidity of static memory provisioning.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8179898B2Packet processing using braided tries
Publication Date: 2012.05.15 WSOU INVESTMENTS LLC
  • US8179898B2 patent drawing
  • US8179898B2 patent drawing
  • US8179898B2 patent drawing

AI summary

Packets are processed (e.g., routed or classified) in accordance with a braided trie, which represents the combination of two or more different original tries (e.g., representing different forwarding/classification tables). The different tries are combined by twisting the mappings for specific trie nodes to make the shapes of the different tries more similar. Each node in the braided trie contains a braiding bit for at least one original trie indicating the mapping for that trie's node. Trie braiding can significantly reduce the number of nodes used to represent the different original tries, thereby reducing memory usage and improving scalability. Braided tries can be used for such applications as virtual routers and packet classification in which different forwarding/classification tables are represented by a single braided trie stored in shared memory.