Network Device Memory Management for Packet Dropping Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Network devices often face memory resource shortages, leading to packet dropping when insufficient memory is available for temporary storage during processing, especially in shared or hybrid memory configurations.

Innovation Solution

Implementing a memory management system that dynamically allocates memory resources between a shared pool and reserved pools, where packets are stored in shared memory if available, and in reserved memory if shared memory is full, with the option to dynamically expand reserved memory by shrinking the shared pool when utilization thresholds are met.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory is shared by multiple output interfaces, then memory utilization efficiency is improved, but packet dropping risk increases when memory resources are insufficient

Engineering Contradiction:
Improvememory utilization efficiencyVSAvoidpacket dropping risk
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The shared memory is segmented into multiple queues, with each queue corresponding to a specific output interface. This segmentation allows the system to track and manage memory resources per interface while still utilizing shared physical memory, thereby maintaining high utilization efficiency while reducing packet dropping risk through targeted resource allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts memory allocation among queues based on real-time utilization levels. When a queue reaches its threshold, the system can dynamically expand reserved memory for that queue by shrinking the shared pool, ensuring reliable packet storage while maintaining overall memory efficiency through adaptive resource distribution.

Inventive Principle:
Principle #15Dynamics

2Reliability

If dedicated memory is allocated to each output interface, then packet dropping risk is reduced, but memory utilization efficiency deteriorates

Engineering Contradiction:
Improvepacket dropping riskVSAvoidmemory utilization efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system merges dedicated queue structures with shared physical memory resources. Each output interface has its own queue for reliable packet storage, but multiple queues share the underlying physical memory pool, achieving both the reliability of dedicated allocation and the efficiency of shared resources.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared memory pool serves multiple functions: it acts as the primary storage for all queues, provides dynamic expansion capacity when queues need more space, and enables efficient resource utilization across multiple output interfaces simultaneously, replacing the need for separate dedicated memory blocks.

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

3Quantity of substance

If memory utilization threshold is set high, then memory efficiency is improved, but packet dropping increases when threshold is exceeded

Engineering Contradiction:
Improvememory efficiencyVSAvoidpacket dropping
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system pre-configures reserved memory for each queue before packets arrive. This preliminary allocation ensures that when packets need to be stored, there is already reserved space available, preventing packet dropping due to sudden memory exhaustion while maintaining high overall memory efficiency through the shared pool.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors queue utilization levels and provides feedback to the memory management mechanism. When a queue approaches its threshold, the system responds by dynamically expanding reserved memory from the shared pool, ensuring reliable packet storage while maintaining efficient overall memory utilization through real-time adjustments.

Inventive Principle:
Principle #23Feedback

4Reliability

If reserved memory is dynamically expanded by shrinking shared pool, then packet storage reliability is improved, but memory allocation flexibility deteriorates

Engineering Contradiction:
Improvepacket storage reliabilityVSAvoidmemory allocation flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The memory allocation system is fully dynamic, allowing reserved memory to be expanded or shrunk based on real-time queue utilization. This dynamic behavior enables the system to adapt to changing traffic patterns while ensuring packet storage reliability, as the shared pool can be expanded again when queues have available space.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameters (reserved vs. shared memory) based on queue utilization conditions. When queues need more space, the parameter distribution shifts toward reserved memory; when queues have space, the distribution shifts back toward shared memory, maintaining both reliability and flexibility through parameter adaptation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10594631B1Methods and apparatus for memory resource management in a network device
Publication Date: 2020.03.17 MARVELL ISRAEL (M L S L) LTD
  • US10594631B1 patent drawing
  • US10594631B1 patent drawing
  • US10594631B1 patent drawing

AI summary

Packets that are to be transmitted via a plurality of egress interfaces of a network device are stored in a memory of the network device. The packets are stored in a plurality of queues that respectively correspond to the egress interfaces. The network device determines a set of queues, from among the plurality of queues, for which packet dropping is enabled. The network device determines whether a utilization level of the memory meets a threshold. In response to determining that the utilization level of the memory meets the threshold: the network device randomly or pseudorandomly selects a first queue from the set of queues for which packet dropping is enabled, dequeues a first packet from the selected first queue, and deletes the first packet that was dequeued from the selected first queue.