TECHNIQUES FOR SEGMENTED CRC DESIGN IN HIGH SPEED NETWORKS
First Claim
1. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;
receiving a set of one or more data lines, each data line in the set of data lines having a width and comprising a portion of the message, wherein at least one data line in the set of data lines is a residue line containing a portion of the message that is smaller than the width of the residue line;
shifting the portion of the message in the residue line from a first boundary of the residue line to a second boundary of the residue line;
generating a data line CRC value for each data line in the set of data lines; and
generating a message CRC value for the message based on the data line CRC values.
7 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide techniques for efficient generation of CRC values in a network environment. Specific embodiments of the present invention enable CRC processing circuits that can generate CRC values at high data throughput rates (e.g., 100 Gbps or greater), while being capable of being implemented on currently available FPGAs. Accordingly, embodiments of the present invention may be used in network devices such as routers, switches, hubs, host network interfaces and the like to support high speed data transmission standards such as 100G Ethernet and beyond.
-
Citations
16 Claims
-
1. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;receiving a set of one or more data lines, each data line in the set of data lines having a width and comprising a portion of the message, wherein at least one data line in the set of data lines is a residue line containing a portion of the message that is smaller than the width of the residue line; shifting the portion of the message in the residue line from a first boundary of the residue line to a second boundary of the residue line; generating a data line CRC value for each data line in the set of data lines; and generating a message CRC value for the message based on the data line CRC values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
- CRC”
-
11. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;receiving a set of one or more data lines, each data line in the set of data lines having a width and comprising a portion of the message, wherein at least one data line in the set of data lines is a residue line containing a portion of the message that is smaller than the width of the residue line, and wherein each data line in the set of data lines has a data granularity of X bits; calculating a CRC value for each data line in the set of data lines using a set of CRC generators, each CRC generator in the set of CRC generators being configured to calculate a CRC value for an input, wherein the input for each CRC generator is larger than X bits in size; and generating a CRC value for the message based on the data line CRC values.
- CRC”
-
12. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;receiving a set of one or more data lines, each data line in the set of data lines having a width and comprising a portion of the message, wherein at least one data line in the set of data lines is a residue line containing a portion of the message that is smaller than the width of the residue line; calculating a CRC value for each data line in the set of data lines using a set of CRC generators, each CRC generator in the set of CRC generators being configured to calculate a CRC value for an input, wherein the input for each CRC generator is the same size; and generating a CRC value for the message based on the data line CRC values.
- CRC”
-
13. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;receiving a set of one or more data lines, each data line in the set of data lines comprising a portion of the message; calculating a CRC value for each data line in the set of data lines using a set of CRC generators, the calculating being independent of the position of the data line relative to the other data lines in the set of data lines; and generating a CRC value for the message based on the data line CRC values. - View Dependent Claims (14, 15)
- CRC”
-
16. A method performed by a network device for calculating a cyclical redundancy check (“
- CRC”
) value for a message, the method comprising;receiving a set of one or more data lines, each data line in the set of data lines having a width of X bits and comprising a portion of the message, wherein at least one data line in the set of data lines is a residue line containing a portion of the message that is smaller than the width of the residue line, and wherein each data line in the set of data lines has a data granularity of Y bits; calculating a CRC value for each data line in the set of data lines using a set of CRC generators, the number of CRC generators in the set of CRC generators being less than X divided by Y; and generating a CRC value for the message based on the data line CRC values.
- CRC”
Specification