CRC calculation for data with dynamic header
First Claim
1. A transmission interface, comprising:
- a packet to be transmitted across the transmission interface, the packet comprising a header, a first cyclic redundancy check associated with the header, a data portion, and a second cyclic redundancy check; and
a device for transmitting the packet across the transmission interface, the device including an engine for computing cyclic redundancy checks, wherein the device;
generates the first cyclic redundancy check by;
initializing the engine with a seed;
performing a first modular arithmetic operation on the header of the packet, using a generator polynomial, to produce a residue; and
performing a second modular arithmetic operation on the residue using a header polynomial.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for performing CRC calculations on packets with dynamic headers is disclosed. The header may be changed during transmission across a network. When the header is changed, a CRC associated with the header is recalculated such that a residue of the initial seed value is always obtained. A final CRC covers the entire packet including the header and its header CRC, or just the data portion of the packet. The final CRC remains valid and unchanged during transmission of the packet, allowing an endpoint along the network to confirm the validity of the entire packet. By only changing the CRC associated with the changed portion of the packet (the header CRC), the introduction of errors during transmission of the packet is minimized.
44 Citations
22 Claims
-
1. A transmission interface, comprising:
-
a packet to be transmitted across the transmission interface, the packet comprising a header, a first cyclic redundancy check associated with the header, a data portion, and a second cyclic redundancy check; and a device for transmitting the packet across the transmission interface, the device including an engine for computing cyclic redundancy checks, wherein the device; generates the first cyclic redundancy check by; initializing the engine with a seed; performing a first modular arithmetic operation on the header of the packet, using a generator polynomial, to produce a residue; and performing a second modular arithmetic operation on the residue using a header polynomial. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
generating a first cyclic redundancy check of a dynamic portion of a packet using a seed; generating a second cyclic redundancy check of a static portion of the packet; transmitting the packet across an interface to a receiving device; receiving a packet portion comprising the dynamic portion and the first cyclic redundancy check; and generating a third cyclic redundancy check of the packet portion to produce a first residue; wherein the first residue equals the seed following error-free transmission of the packet across the interface. - View Dependent Claims (17, 18)
-
-
19. A system comprising:
-
an engine initialized using a seed, wherein the engine performs modular arithmetic on incoming packets using a generator polynomial; a host port comprising the engine, wherein the host port engine; generates a first cyclic redundancy check for a first portion of the packet; and generates a second cyclic redundancy check for a second portion of the packet; and a router comprising the engine, wherein the router is remote from the host port and the host port transmits packets to the router, wherein the router engine; performs modular arithmetic on the first cyclic redundancy check and the first portion to produce a residue equal to the seed where the packet is transmitted without error. - View Dependent Claims (20, 21, 22)
-
Specification