Packet CRC Regeneration Using Precomputed Partial Checks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for recalculating the cyclical redundancy check (CRC) in packets require complete recomputation, leading to high computational logic complexity, increased clock cycles, latency, and a high probability of glitches, especially when only a portion of the packet header is modified.

Innovation Solution

A network device that pre-computes CRC values for different packet sizes and stores them for efficient regeneration by selecting and multiplying pre-computed CRCs with modified fields, reducing the need for full packet recomputation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but device complexity and computation time increase

Engineering Contradiction:
ImproveCRC accuracyVSAvoidlogic gates footprint
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent divides the packet into segments (header and payload) and further divides the CRC computation into partial computations. When only the header is modified, only the header portion is re-computed and combined with the original payload CRC, rather than re-computing the entire packet CRC from scratch.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-computes and stores CRC values for different packet configurations in lookup tables during system initialization. This preliminary action allows the intermediate device to quickly retrieve and combine pre-computed values rather than performing complete CRC computation during packet forwarding.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but processing speed decreases

Engineering Contradiction:
ImproveCRC accuracyVSAvoidpacket processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the CRC computation process into independent partial computations for different packet portions. By computing only the modified header portion and combining it with the pre-stored payload CRC, the processing time is significantly reduced compared to complete packet re-computation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

CRC values for various packet configurations are pre-computed and stored in lookup tables before runtime. During packet forwarding, the intermediate device performs quick table lookups and combinations rather than executing lengthy computation algorithms, thereby maintaining high processing speed.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but power consumption increases

Engineering Contradiction:
ImproveCRC accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the computation workload to only process the modified header portion rather than the entire packet. This segmentation reduces the number of active logic gates and computational operations, thereby reducing power consumption during packet forwarding operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By pre-computing and storing CRC values in lookup tables during system initialization, the patent eliminates the need for energy-intensive real-time computation during packet forwarding. The intermediate device only performs low-power table lookups and simple combination operations.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but latency increases

Engineering Contradiction:
ImproveCRC accuracyVSAvoidcomputation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the packet processing into independent segments that can be handled separately. When the header is modified, only the header CRC is re-computed and combined with the pre-stored payload CRC, eliminating the time required to re-process the unchanged payload portion and reducing overall latency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

CRC values are pre-computed and cached in lookup tables during system initialization. During packet forwarding, the intermediate device performs rapid table lookups and combines results using simple operations, avoiding the time-consuming complete re-computation process and minimizing added latency.

Inventive Principle:
Principle #10Preliminary action

5Reliability

If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but glitch probability increases

Engineering Contradiction:
ImproveCRC accuracyVSAvoidglitch probability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the computation into smaller, independent operations on the modified header portion rather than a single large computation on the entire packet. This segmentation reduces the number of logic gate transitions and XOR operations, thereby reducing the probability of glitches occurring during computation.

Inventive Principle:
Principle #1Segmentation

6Device complexity

If pre-computed CRCs are used with multiplication, then computation logic is reduced, but mathematical complexity increases

Engineering Contradiction:
Improvecomputation logicVSAvoidmathematical complexity
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent pre-computes CRC values for various packet configurations and stores them in lookup tables during system initialization. This preliminary computation transforms complex runtime mathematical operations into simple table lookups and bit-wise combinations, reducing the mathematical complexity required during packet forwarding.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8352829B1Regeneration of a packet CRC
Publication Date: 2013.01.08 JUNIPER NETWORKS INC
  • US8352829B1 patent drawing
  • US8352829B1 patent drawing
  • US8352829B1 patent drawing

AI summary

Techniques relate to the regeneration of a cyclical redundancy check (CRC) value of a data packet in a manner that avoids a complete CRC recomputation based on the entire packet after only a portion of a packet has been modified. When modifying and forwarding a packet, a network device identifies only the changed portions of a packet and computes an updated CRC for the packet based on the original CRC, the modified portions, and the length from the modified field to end of packet.