Network Device Purge Queue for Bad Packet Segregation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network devices face performance issues due to the handling of bad packets, which occupy buffer space and affect line rate performance, as they are typically queued with good packets, preventing parallel transmission and wasting output port bandwidth.

Innovation Solution

Implementing a purge queue at each output port to segregate and efficiently return bad packets to the free pool, utilizing spare bandwidth without impacting line rate performance, by adding an extra queue for bad packets and returning cells in parallel with good packet transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If bad packets are queued with good packets in the same output queue, then buffer space is utilized, but line rate performance deteriorates due to prevention of parallel transmission

Engineering Contradiction:
Improvebuffer space utilizationVSAvoidline rate performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides the output queue into two separate queues: a good packet queue and a bad packet queue (purge queue). This segmentation allows good packets and bad packets to be handled independently, enabling parallel transmission of good packets while efficiently returning bad packets to the free pool, thus resolving the contradiction between buffer utilization and line rate performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts bad packets from the common output queue and places them in a separate purge queue. This extraction removes the harmful effect of bad packets blocking the transmission of good packets, allowing the system to maintain high line rate performance while still managing buffer space effectively.

Inventive Principle:
Principle #2Taking out (Extraction)

2Device complexity

If bad packets are returned to free pool sequentially, then buffer management is simplified, but output port bandwidth is wasted

Engineering Contradiction:
Improvebuffer management complexityVSAvoidoutput port bandwidth waste
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent enables continuous transmission of good packets while simultaneously returning bad packets to the free pool through the separate purge queue. This continuous parallel operation eliminates idle time on the output port, ensuring that bandwidth is not wasted while maintaining simple buffer management through dedicated queue structures.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If a separate purge queue is added for bad packets, then line rate performance is maintained, but device complexity increases

Engineering Contradiction:
Improveline rate performanceVSAvoidqueue structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

While adding a purge queue does increase structural elements, the segmentation creates a clean separation of concerns that simplifies the logic for handling bad packets. The increased structure is offset by the elimination of complex error handling logic that would be needed in a shared queue system, maintaining overall system simplicity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8218546B2Interleaved processing of dropped packets in a network device
Publication Date: 2012.07.10 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8218546B2 patent drawing
  • US8218546B2 patent drawing
  • US8218546B2 patent drawing

AI summary

A network device for processing packets includes at least one ingress module for performing switching functions on a packet, a memory management unit for storing the packet and at least one egress module for transmitting the packet to at least one port. The at least one egress module is configured to maintain multiple queues for the at least one port, including a purge queue, and to store the packet in the purge queue when an error condition is determined when the end of the packet is received by the at least one ingress module.