Autonomous mapping of protected data streams to fibre channel frames
First Claim
1. An apparatus for transmitting data between a host and a target over a frame-based communications network, comprising:
- a local processor configured for receiving a data transmission request from the host or the target to transmit data over the frame-based communications network;
one or more hardware-based frame transmit engines coupled to the processor, each frame transmit engine configured for, in response to the request received at the processor, automatically mapping the data into frames to be transmitted without involving the processor, wherein each frame transmit engine is further configured for;
determining one or more addresses, byte counts and a protection scheme of the data to be transmitted in a particular sequence of frames,determining a frame size of the frames to be transmitted,determining one or more free frame buffers for storing the frames prior to transmission,generating and storing headers for the frames to be transmitted, andcombining the headers, data and check bytes determined by the protection scheme into the frames for transmission over the network; and
a direct memory access (DMA) engine coupled to the one or more frame transmit engines and configured for reading the data to be transmitted in accordance with the addresses and byte counts determined by one of the frame transmit engines, calculating the check bytes for the data in accordance with the protection scheme, and storing the data and check bytes into the one or more free frame buffers in a local memory accessible to the processor.
7 Assignments
0 Petitions
Accused Products
Abstract
A hardware-based offload engine is disclosed for mapping protected data into frames. For a write operation, the HBA determines host addresses and the size of data to be read from those addresses. The HBA also determines the frame size and protection scheme for data to be written. A frame transmit engine reads each host descriptor in the host data descriptor list to determine the location and byte count of the data to be read. A DMA engine reads the protection information/scratch area to determine the exact data size used to fill each frame and the protection scheme, and retrieves one or more free frame buffers. Check bytes are inserted alongside the data and stored in free frame buffers. After each frame is filled, the frame transmit engine also generates and stores header information for that frame, and then combines header, data and check bytes for transmission over the network.
-
Citations
20 Claims
-
1. An apparatus for transmitting data between a host and a target over a frame-based communications network, comprising:
-
a local processor configured for receiving a data transmission request from the host or the target to transmit data over the frame-based communications network; one or more hardware-based frame transmit engines coupled to the processor, each frame transmit engine configured for, in response to the request received at the processor, automatically mapping the data into frames to be transmitted without involving the processor, wherein each frame transmit engine is further configured for; determining one or more addresses, byte counts and a protection scheme of the data to be transmitted in a particular sequence of frames, determining a frame size of the frames to be transmitted, determining one or more free frame buffers for storing the frames prior to transmission, generating and storing headers for the frames to be transmitted, and combining the headers, data and check bytes determined by the protection scheme into the frames for transmission over the network; and a direct memory access (DMA) engine coupled to the one or more frame transmit engines and configured for reading the data to be transmitted in accordance with the addresses and byte counts determined by one of the frame transmit engines, calculating the check bytes for the data in accordance with the protection scheme, and storing the data and check bytes into the one or more free frame buffers in a local memory accessible to the processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 20)
-
-
12. A method for transmitting data between a host and a target over a frame-based communications network, the host coupled to a host bus adapter including a local processor and a frame transmit engine coupled thereto, the frame transmit engine configured to automatically map the data into frames to be transmitted without any involvement of the local processor, the frame transmit engine further configured to perform the method comprising:
-
determining one or more addresses and byte counts of the data to be transmitted in a particular sequence of frames, determining a protection scheme and a frame size of the host data to be transmitted in the particular sequence of frames, and determining one or more free frame buffers for storing the frames prior to transmission; communicating with a direct memory access (DMA) engine configured for reading the data to be transmitted in accordance with the determined addresses and byte counts, calculating check bytes for the data in accordance with the protection scheme, and storing the data and check bytes into the one or more free frame buffers; generating and storing headers for the frames to be transmitted; and combining the headers, data and check bytes into the frames for transmission over the network. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification