Frame-level fibre channel CRC on switching platform
First Claim
1. A fibre channel interface to a fibre channel communications line comprising:
- a) an external interface connected to the communications line so as to receive and transmit fibre channel frames having headers and data payloads over the communications line;
b) a fibre channel controller converting frames received from the external interface into data and for converting data into frames to be transmitted by the external interface; and
c) a CRC module connected between the external interface and the fibre channel controller, the CRC module connected so as to monitor data flowing from the external interface to the fibre channel controller and connected so as to have data flowing from the fibre channel controller to the external interface pass through the CRC module;
the CRC module havingi) a first CRC generator that generates a CRC value based on a starting value and data to be analyzed,ii) a first frame header processor with circuitry to analyze headers and transmit data payloads to the CRC generator as data to be analyzed,iii) a first memory in communication with the first CRC generator, andiv) a frame-level CRC component having a buffer, the data flowing from the fibre channel controller being stored temporarily in the buffer before being passed to the external interface;
d) wherein the fibre channel interface operates in a first mode by generating a sequence-level CRC across multiple frames by storing intermediate CRC values for a sequence in the first memory for later use by the first CRC generator as the starting value when analyzing a next frame in the sequence; and
e) wherein the fibre channel interface operates in a second mode wherein a newly generated frame level CRC value generated by the fibre channel controller is replaced in the buffer of the frame-level CRC component by an previous frame level CRC value.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is presented for performing a sequence-level CRC calculation on fiber channel communications within a switching platform domain. A CRC generator searches the data communication for frames that contain the type of data for which a sequence-level CRC is desired, such as for a sequence containing SCSI data. If found, and the type of data allows multiple frames per sequence, the present invention creates a CRC value for the sequence. An intermediate CRC value is stored in a queue to allow the simultaneous calculation of sequence level CRC values for multiple frames. With inbound data, the sequence-level CRC is appended to the end of the sequence data. With outbound data, the calculated value is compared with the appended, expected value, With single-frame fiber channel protocols, the frame-level CRC value is obtained directly from the frames entering the switching platform domain. This value is placed in a local queue, from which it is appended to the data payload by a processor for transmission within the switching platform. When the single frame is leaving the switching platform domain, the flow of data leaving the switching platform domain is monitored and the frame-level CRC value calculated by the fiber channel controller is replaced with the original frame-level CRC value.
26 Citations
17 Claims
-
1. A fibre channel interface to a fibre channel communications line comprising:
-
a) an external interface connected to the communications line so as to receive and transmit fibre channel frames having headers and data payloads over the communications line; b) a fibre channel controller converting frames received from the external interface into data and for converting data into frames to be transmitted by the external interface; and c) a CRC module connected between the external interface and the fibre channel controller, the CRC module connected so as to monitor data flowing from the external interface to the fibre channel controller and connected so as to have data flowing from the fibre channel controller to the external interface pass through the CRC module;
the CRC module havingi) a first CRC generator that generates a CRC value based on a starting value and data to be analyzed, ii) a first frame header processor with circuitry to analyze headers and transmit data payloads to the CRC generator as data to be analyzed, iii) a first memory in communication with the first CRC generator, and iv) a frame-level CRC component having a buffer, the data flowing from the fibre channel controller being stored temporarily in the buffer before being passed to the external interface; d) wherein the fibre channel interface operates in a first mode by generating a sequence-level CRC across multiple frames by storing intermediate CRC values for a sequence in the first memory for later use by the first CRC generator as the starting value when analyzing a next frame in the sequence; and e) wherein the fibre channel interface operates in a second mode wherein a newly generated frame level CRC value generated by the fibre channel controller is replaced in the buffer of the frame-level CRC component by an previous frame level CRC value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a switching platform having
a) a communications bus; -
b) a system buffer connected to the communications bus; c) a first interface connected the communications bus; d) a fibre channel interface connected to a fibre channel communications line and the communications bus; and e) a processor connected to the communications bus, the processor translating data between the first interface and the fibre channel interface using the system buffer as temporary storage; an improved fibre channel interface wherein the fibre channel interface comprises; i) a fibre channel controller for generating fibre channel frames including a frame-level CRC value from data received from the communications bus and for extracting the data payload from frames received from the fibre channel communications line; ii) a CRC generator that generates a CRC value based on a staffing value and data to be analyzed; iii) a frame header processor that monitors communications between the fibre channel controller and the fibre channel communications line at the level of a fibre channel frame, the frame header processor having circuitry to analyze a header within the frame to determine the type of data within the frame and a sequence to which the frame belongs, the frame header processor being in communication with the CRC generator so as to transmit a data payload of the frame to the CRC generator as data to be analyzed; iv) memory in communication with the CRC generator that stores intermediate CRC values for later use by CRC generator as the starting value when analyzing a next frame in the sequence; v) a frame-level CRC component having a buffer, the data flowing from the fibre channel controller being stored temporarily in the buffer before being passed to the external interface; wherein the fibre channel interface operates in a first mode by generating a sequence-level CRC across multiple frames by storing intermediate CRC values for a sequence in the memory for later use by the first CRC generator as the starting value when analyzing a next frame in the sequence; and wherein the fibre channel interface operates in a second mode wherein a newly generated frame level CRC value generated by the fibre channel controller is replaced in the buffer of the frame-level CRC component by a previous frame level CRC value forwarded to the fibre channel interface over the communications bus. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
Specification