Network Device Memory Bank Segmentation for Packet Forwarding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices face inefficiencies in forwarding packets due to the need to access and manage routing tables and next-hop information, particularly when handling multiple simultaneous requests, which can lead to queuing and resource contention.

Innovation Solution

Implementing a network device with multiple memory banks that store the same next-hop information for forwarding packets, allowing the device to select and access any bank based on a packet flow signature, thereby distributing memory requests and avoiding hotspots.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single memory bank stores next-hop information for all packet flows, then the device complexity is low, but queuing and resource contention occur when handling multiple simultaneous requests

Engineering Contradiction:
Improvepacket forwarding throughputVSAvoidmemory bank quantity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the single memory bank into multiple separate memory banks (e.g., first memory bank, second memory bank, third memory bank). Each memory bank stores copies of the same next-hop information for different packet flows. This segmentation allows simultaneous access to next-hop information for multiple flows without contention, as each flow can be directed to a different memory bank, thereby increasing packet forwarding throughput while maintaining manageable device complexity through systematic organization.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If multiple memory banks store the same next-hop information, then memory request contention is reduced, but the device requires more memory resources

Engineering Contradiction:
Improvememory access timeVSAvoidmemory capacity
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent creates multiple copies of the same next-hop information and stores them in different memory banks. Instead of storing unique information in each bank, the system replicates the identical next-hop data across multiple banks. This copying approach allows any memory bank to service any packet flow's next-hop information request, eliminating access contention and reducing memory access time, while the total memory capacity increase is minimal since the data is replicated rather than diversified.

Inventive Principle:
Principle #26Copying

3Reliability

If routing tables are accessed for every packet forwarding decision, then forwarding accuracy is high, but the processing time increases

Engineering Contradiction:
Improvepacket forwarding accuracyVSAvoidpacket forwarding speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent pre-calculates and stores next-hop information in memory banks before packets arrive. The system performs the complex routing table lookup and next-hop determination in advance, storing the results in an optimized format in the memory banks. When packets arrive, the system only needs to retrieve the pre-computed next-hop information from the memory banks, which is a much faster operation. This preliminary action maintains forwarding accuracy by using the same routing logic while dramatically reducing processing time for each packet.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7680117B1Forwarding packets using next-hop information
Publication Date: 2010.03.16 JUNIPER NETWORKS INC
  • US7680117B1 patent drawing
  • US7680117B1 patent drawing
  • US7680117B1 patent drawing

AI summary

A method may include receiving a packet associated with a flow of packets, the packet including a destination address; selecting one of a plurality of memory banks, the selected memory bank being associated with the flow of packets, wherein each of the plurality of memory banks stores the same next-hop information for forwarding the packet to the destination address; accessing, in the selected memory bank, the next-hop information for forwarding the packet to the destination address; and forwarding the packet to the destination address based on the next-hop information.