Packet CRC Regeneration Using Precomputed Partial Checks
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Reliability
If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but device complexity and computation time increase
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.
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.
2Reliability
If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but processing speed decreases
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.
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.
3Reliability
If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but power consumption increases
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.
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.
4Reliability
If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but latency increases
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.
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.
5Reliability
If complete packet CRC recomputation is performed, then CRC accuracy is maintained, but glitch probability increases
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.
6Device complexity
If pre-computed CRCs are used with multiplication, then computation logic is reduced, but mathematical complexity increases
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.
Data Source
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.


