Method and system for reducing deadlock in fibre channel fabrics using virtual lanes
First Claim
1. A method for processing fibre channel frames, comprising:
- (a) providing a plurality of virtual lanes to a fibre channel switch element having a plurality of ports, each of the virtual lane configured to transmit one or more frames between a source and a destination;
(b) receiving a fibre channel frame at a receive segment of one of the plurality of ports of the fibre channel switch element;
(c) determining a hop count for the frame based on a destination identifier value (D_ID) included in a header of the fibre channel frame at the receive segment, with a hop count value indicative of a frame destined for another port of the fibre channel switch element;
(d) assigning a virtual lane for the frame based on the determined hop count at the receive segment;
(e) modifying the assigned virtual lane at the transmit segment of one of the plurality of ports of the fibre channel switch element if the assigned virtual lane by the receive segment is not indicative of a frame destined for another port of the fibre channel switch element, and if the assigned virtual lane is indicative of a frame destined for another port of the fibre channel switch element, no virtual lane is assigned to the frame at the transmit segment;
(e) determining if the assigned virtual lane at the transmit segment has available credit to transmit the fibre channel frame; and
(f) transmitting the fibre channel frame using the assigned virtual lane at the transmit segment, if credit is available.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and system for processing fibre channel frames is provided. The method includes, assigning a virtual lane for a frame based on a hop count for the frame; determining if the assigned virtual lane has available credit; and transmitting the frame if credit is available. The system includes, a fibre channel fabric switch element including a receive port for receiving fibre channel frames, which includes a look up table to assign a virtual lane based on a hop count of the frame; and a transmit port that receives a primitive with the assigned virtual lane by the receive port and the transmit port includes a credit control module that determines if an assigned virtual lane can transmit a frame based on available credit.
378 Citations
27 Claims
-
1. A method for processing fibre channel frames, comprising:
-
(a) providing a plurality of virtual lanes to a fibre channel switch element having a plurality of ports, each of the virtual lane configured to transmit one or more frames between a source and a destination; (b) receiving a fibre channel frame at a receive segment of one of the plurality of ports of the fibre channel switch element; (c) determining a hop count for the frame based on a destination identifier value (D_ID) included in a header of the fibre channel frame at the receive segment, with a hop count value indicative of a frame destined for another port of the fibre channel switch element; (d) assigning a virtual lane for the frame based on the determined hop count at the receive segment; (e) modifying the assigned virtual lane at the transmit segment of one of the plurality of ports of the fibre channel switch element if the assigned virtual lane by the receive segment is not indicative of a frame destined for another port of the fibre channel switch element, and if the assigned virtual lane is indicative of a frame destined for another port of the fibre channel switch element, no virtual lane is assigned to the frame at the transmit segment; (e) determining if the assigned virtual lane at the transmit segment has available credit to transmit the fibre channel frame; and (f) transmitting the fibre channel frame using the assigned virtual lane at the transmit segment, if credit is available. - View Dependent Claims (2, 3, 4, 24)
-
-
5. A method for processing fibre channel frames using a fibre channel switch element having a plurality of ports, each port having a receive segment and a transmit segment, comprising:
-
(a) providing a plurality of virtual lanes to the fibre channel switch element, each of the virtual lanes configured to transmit one or more fibre channel frames between a source and a destination; (b) receiving a fibre channel frame at a receive segment of one of the plurality of ports of the fibre channel switch element; (c) determining a hop count for the fibre channel frame at the receive segment, based on a destination identifier value (D_ID) included in a header of the fibre channel frame, with a hop count value indicative of a frame destined for another port of the fibre channel switch element; (d) assigning a virtual lane to the received fibre channel frame at the receive segment, based on the determined hop count for the frame; (e) sending a primitive to a transmit segment with the assigned virtual lane to transmit the fibre channel frame to a destination; and (f) modifying the assigned virtual lane at the transmit segment if the assigned virtual lane by the receive segment is not indicative of a frame destined for another port of the fibre channel switch element, and if the assigned virtual lane is indicative of frame destined for another port of the fibre channel switch element , no virtual lane is assigned at the transmit segment. - View Dependent Claims (6, 7, 8, 9, 25)
-
-
10. A system for processing fibre channel frames, comprising:
-
a fibre channel switch element having a plurality of ports, wherein each port includes a receive segment for receiving fibre channel frames and a transmit segment for transmitting fibre channel frames; a plurality of virtual lanes for the fibre channel switch element, each of the plurality of virtual lanes configured to transmit one or more fibre channel frames between a source and a destination; and a look up table to assign a virtual lane to a fibre channel frame received at the receive segment of a port from among the plurality of ports;
wherein the virtual lane is assigned based on a hop count, and the hop count is based on a destination identifier value (D_ID) included in a header of the received fibre channel frame, with a hop count value indicative of a frame destined for another port of the fibre channel switch element;wherein after the virtual lane is assigned based on the hop count value by the receive segment, the receive segment sends a primitive to a transmit segment, the primitive including information regarding the assigned virtual lane; wherein the transmit segment modifies the assigned virtual lane so as to assign a virtual lane to fibre channel frame if the assigned virtual lane is different than the value indicative of a frame destined for another port of the fibre channel switch element, and if the assigned virtual lane is indicative of a frame destined for another port of the fibre channel switch element, no virtual lane is assigned at the transmit segment; and wherein the transmit segment includes a credit control module that determines if the assigned virtual lane can transmit a frame based on available credit. - View Dependent Claims (11, 12, 13, 14, 15, 16, 26)
-
-
17. A fibre channel fabric switch element for processing fibre channel frames, comprising:
-
a plurality of ports for receiving and transmitting fibre channel frames, wherein each port includes a receive segment for receiving fibre channel frames and a transmit segment for transmitting fibre channel frames; a plurality of virtual lanes for the fibre channel switch element, each of the plurality of virtual lanes configured to transmit one or more fibre channel frames between a source and a destination; and a look up table to assign a virtual lane to a fibre channel frame received at the receive segment of a port from among the plurality of ports;
wherein the virtual lane is assigned based on a hop count, the hop count is based on a destination identifier value (D_ID) included in a header of the received fibre channel frame, with a hop count value indicative of a frame destined for another port of the fibre channel switch element;wherein after the virtual lane is assigned based on the hop count, the receive segment sends a primitive to a transmit segment, the primitive including information regarding the assigned virtual lane; wherein the transmit segment modifies the assigned virtual lane so as to assign a virtual lane to fibre channel frame if the hop count value is different than the value indicative of a frame destined for another port of the fibre channel switch element, and if the assigned virtual lane is indicative of a frame destined for another port of the fibre channel switch element, no virtual lane is assigned at the transmit segment; and wherein the transmit segment includes a credit control module that determines if the assigned virtual lane can transmit a frame based on available credit. - View Dependent Claims (18, 19, 20, 21, 22, 23, 27)
-
Specification