Packet Reassembly Using CAM Lookup for Switched Fabric Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing packet segmentation and reassembly processes in switching fabric networks are time-consuming and introduce significant latency due to high algorithmic complexity, affecting network forwarding efficiency.

Innovation Solution

A process utilizing a content addressable memory (CAM) to generate a reassembly key from packet headers, maintaining a reassembly table for efficient lookup and storage of member cells, and using sequence numbers for offset determination in a reassembly buffer to reassemble packets with reduced latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional packet segmentation and reassembly processes are used in switching fabric networks, then packets can be correctly reassembled from member cells, but the algorithmic complexity is high (O(mn)) causing significant latency in packet forwarding

Engineering Contradiction:
Improvepacket forwarding latencyVSAvoidreassembly algorithm complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The invention segments the reassembly process into distinct phases: generating a reassembly key from cell header information, performing O(1) CAM lookup with the key to retrieve packet context, and then reassembling cells using sequence numbers. This segmentation transforms the complex O(mn) search problem into simple O(1) lookup operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention introduces a reassembly key as an intermediary element that bridges the cell header information and the packet context in CAM. The reassembly key (derived from source/destination addresses, port numbers, and protocol information) serves as a mediator that enables efficient O(1) lookup without requiring complex multi-parameter searches.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complex multi-parameter searching is performed to find packet buffer context, then accurate packet reassembly can be achieved, but the processing time increases significantly

Engineering Contradiction:
Improvepacket reassembly accuracyVSAvoidcontext search time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The invention performs preliminary actions by pre-generating reassembly keys from cell header information and pre-storing packet contexts in CAM with their corresponding reassembly keys. This preliminary organization of data enables O(1) lookup time while maintaining reassembly accuracy through the use of sequence numbers for proper cell ordering.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If variable length packets are segmented into fixed length cells, then network transport efficiency is improved, but the reassembly process becomes more complex due to varying packet sizes

Engineering Contradiction:
Improvenetwork transport efficiencyVSAvoidreassembly logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention introduces dynamic elements to handle variable packet sizes: sequence numbers that dynamically identify cell position within packets of any length, and a reassembly buffer that dynamically allocates space based on packet size. The reassembly key remains static and simple, while the reassembly phase adapts to varying packet lengths through sequence number-based placement.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10581761B2Segmentation and reassembly of network packets for switched fabric networks
Publication Date: 2020.03.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10581761B2 patent drawing
  • US10581761B2 patent drawing
  • US10581761B2 patent drawing

AI summary

Reassembly of member cells into a packet comprises receiving an incoming member cell of a packet from a switching fabric wherein each member cell comprises a segment of the packet and a header, generating a reassembly key using selected information from the incoming member cell header wherein the selected information is the same for all member cells of the packet, checking a reassembly table in a content addressable memory to find an entry that includes a logic key matching the reassembly key, and using a content index in the found entry and a sequence number of the incoming member cell within the packet, to determine a location offset in a reassembly buffer area for storing the incoming member cell at said location offset in the reassembly buffer area for the packet for reassembly.