Ingress Fabric Endpoint Packet Flow Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In packet-based computer networks, congested packet flows can bottleneck uncongested flows due to strict First-In-First-Out (FIFO) ordering, leading to reduced throughput and inefficient memory usage in routers with multi-stage switch fabrics.

Innovation Solution

Implementing a technique where an ingress fabric endpoint assigns packets to fast or slow paths based on congestion status, allowing uncongested packet flows to bypass congested ones, while maintaining FIFO ordering within each flow but not across flows, thereby optimizing memory usage and throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If strict FIFO ordering is enforced across all packet flows in the switch fabric, then packet flow ordering integrity is maintained, but throughput is reduced due to bottlenecking by congested flows

Engineering Contradiction:
Improvepacket flow ordering integrityVSAvoidnetwork device throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the single packet stream into multiple independent packet flows, each maintained in separate FIFO queues. This allows different flows to be processed independently, so that congestion in one flow does not block processing of other flows, thereby maintaining ordering integrity within each flow while improving overall throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of flow identification by assigning unique identifiers to different packet flows. This allows the system to differentiate between packets from different sources/destinations and apply flow-specific processing, enabling parallel handling of multiple flows through the switch fabric without strict global FIFO ordering.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If packets are buffered in internal memory for fast processing, then processing speed is improved, but memory resources are consumed and scalability is limited

Engineering Contradiction:
Improvepacket processing speedVSAvoidmemory resource requirements
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the memory buffering function by implementing separate FIFO queues for different packet flows. This allows the system to manage memory resources more efficiently by allocating buffer space per-flow rather than requiring a large monolithic buffer, improving scalability and resource utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic memory allocation where buffer space is allocated and deallocated based on actual packet flow demands. The system can adaptively adjust the number and size of FIFO queues for different flows, allowing efficient use of internal memory while maintaining fast processing speeds.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11496398B2Switch fabric packet flow reordering
Publication Date: 2022.11.08 JUNIPER NETWORKS INC
  • US11496398B2 patent drawing
  • US11496398B2 patent drawing
  • US11496398B2 patent drawing

AI summary

An ingress fabric endpoint coupled to a switch fabric within a network device reorders packet flows based on congestion status. In one example, the ingress fabric endpoint receives packet flows for switching across the switch fabric. The ingress fabric endpoint assigns each packet for each packet flow to a fast path or a slow path for packet switching. The ingress fabric endpoint processes, to generate a stream of cells for switching across the switch fabric, packets from the fast path and the slow path to maintain a first-in-first-out ordering of the packets within each packet flow. The ingress fabric endpoint switches a packet of a first packet flow after switching a packet of a second packet flow despite receiving the packet of the first packet flow before the packet of the second packet flow.