Method and system for reducing latency and congestion in fibre channel switches
First Claim
1. A method for routing fibre channel frames using a fibre channel switch element having a plurality of ports, each port including a receive segment for receiving a fibre channel frame and a transmit segment for transmitting a fibre channel frame, comprising:
- storing a relative age of a first fibre channel frame with respect to a second fibre channel frame;
wherein the first fibre channel frame and the second fibre channel frame are received by the receive segment of a port from among the plurality of ports; and
the first frame is stored in a first memory slot of a receive buffer having a plurality of memory slots and the second frame is stored in a second memory slot of the receive buffer;
wherein the relative age is stored in an aging table and the relative age indicates how long a fibre channel frame has been waiting at a memory slot compared to other fibre channel frames that are waiting in other memory slots at any given time;
determining if more than one transmit segment is requesting fibre channel frames stored in the plurality of memory slots;
if only one transmit segment requests a fibre channel frame stored at a memory slot, then routing the frame to the transmit segment without using the aging table;
if more than one transmit segment is requesting fibre channel frames then using the aging table to determine which fibre channel frame is the oldest among the plurality of fibre channel frames stored in the plurality of memory slots;
transmitting the oldest fibre channel frame from a memory slot based on the relative age obtained from the aging table; and
setting age bits in the aging table when fibre channel frames are written in the receive segment; and
the relative age for a fibre channel frame is determined based on a value of the age bits;
wherein the aging table includes a grid having a plurality of rows and a plurality of columns and the grid stores the age bits, and wherein each row and column of the aging table is identified by a memory slot number.
7 Assignments
0 Petitions
Accused Products
Abstract
A method and system for routing fiber channel frames using a fiber channel switch element is provided. The switch element includes, a port with a buffer having more than one memory slot for receiving fiber channel frames, wherein the port tracks a relative age of a first memory slot with respect to at least another memory slot; and frames are transmitted from a memory slot based on the relative age. The method includes, determining a relative age of a first memory slot with respect to at least another memory slot; and transmitting a frame from a memory slot based on the relative age. The method also includes, sending frames that have resided in a memory slot for a greater period compared to frames residing in at least another memory slot; and setting age bits in plural memory slots when frames are written and the relative age is determined based on the age bits. An aging table may be used to store the age bits of the plural memory slots.
321 Citations
10 Claims
-
1. A method for routing fibre channel frames using a fibre channel switch element having a plurality of ports, each port including a receive segment for receiving a fibre channel frame and a transmit segment for transmitting a fibre channel frame, comprising:
-
storing a relative age of a first fibre channel frame with respect to a second fibre channel frame; wherein the first fibre channel frame and the second fibre channel frame are received by the receive segment of a port from among the plurality of ports; and
the first frame is stored in a first memory slot of a receive buffer having a plurality of memory slots and the second frame is stored in a second memory slot of the receive buffer;wherein the relative age is stored in an aging table and the relative age indicates how long a fibre channel frame has been waiting at a memory slot compared to other fibre channel frames that are waiting in other memory slots at any given time; determining if more than one transmit segment is requesting fibre channel frames stored in the plurality of memory slots; if only one transmit segment requests a fibre channel frame stored at a memory slot, then routing the frame to the transmit segment without using the aging table; if more than one transmit segment is requesting fibre channel frames then using the aging table to determine which fibre channel frame is the oldest among the plurality of fibre channel frames stored in the plurality of memory slots; transmitting the oldest fibre channel frame from a memory slot based on the relative age obtained from the aging table; and
setting age bits in the aging table when fibre channel frames are written in the receive segment; and
the relative age for a fibre channel frame is determined based on a value of the age bits;
wherein the aging table includes a grid having a plurality of rows and a plurality of columns and the grid stores the age bits, and wherein each row and column of the aging table is identified by a memory slot number. - View Dependent Claims (2, 3)
-
-
4. A fibre channel switch element for routing fibre channel frames, comprising:
-
a plurality of ports, each port having a receive segment for receiving a fibre channel frame and a transmit segment for transmitting a fibre channel frame, where each receive segment includes a buffer having a plurality of memory slots for receiving the fibre channel frames, wherein each port includes an aging table for storing relative age of a frame stored at a memory slot and the relative age indicates how long a fibre channel frame has been waiting at a memory slot compared to how long other fibre channel frames are waiting in other memory slots at any given time; and wherein before transferring a fibre channel frame, the receive segment of the port determines if more than one transmit segment is requesting fibre channel frames stored in the plurality of memory slots; and
if only one transmit segment requests a fibre channel frame stored at a memory slot, then the frame is routed without using the aging table;
but if more than one transmit segment is requesting fibre channel frames then the receive segment uses the aging table to determine which fibre channel frame is the oldest among the plurality of fibre channel frames stored in the plurality of memory slots; and
the oldest fibre channel frame is transmitted from a memory slot based on the relative age obtained from the aging table, wherein age bits are set when fibre channel frames are written in the receive segment of each port and the relative age for the fibre channel frames is determined based on a value of the age bits;
wherein the aging table includes a grid having a plurality of rows and plurality of columns; and
the grid stores the age bits, and wherein each row and column of the aging table is identified by a memory slot number. - View Dependent Claims (5, 6)
-
-
7. A method for routing fibre channel frames using a fibre channel switch element having a plurality of ports, each port including a receive segment for receiving a fibre channel frame and a transmit segment for transmitting a fibre channel frame, comprising:
-
storing a relative age of a first fibre channel frame with respect to a second fibre channel frame; wherein the first fibre channel frame and the second fibre channel frame are received by the receive segment of a port from among the plurality of ports; and
the first frame is stored in a first memory slot of a receive buffer having plurality of memory slots and the second frame is stored in a second memory slot of the receive buffer;wherein the relative age is stored in an aging table and the relative age indicates how long a fibre channel frame has been waiting at a memory slot compared to other fibre channel frames that are waiting in other memory slots at any given time; determining if more than one transmit segment is requesting fibre channel frames stored in the plurality of memory slots; if only one transmit segment requests a fibre channel frame stored at a memory slot, then routing the frame to the transmit segment without using the aging table; if more than one transmit segment is requesting fibre channel frames then using the aging table to determine which fibre channel frame is the oldest among the plurality of fibre channel frames stored in the plurality of memory slots; and transmitting the oldest fibre channel frame from a memory slot based on the relative age obtained from the aging table;
wherein if there are N number of memory slots, then (N*N)−
N)/2 bits are used to populate the aging table.
-
-
8. A fibre channel switch element for routing fibre channel frames, comprising:
-
a plurality of ports, each port having a receive segment for receiving a fibre channel frame and a transmit segment for transmitting a fibre channel frame, where each receive segment includes a buffer having a plurality of memory slots for receiving the fibre channel frames, wherein each port includes an aging table for storing a relative age of a frame stored at a memory slot and the relative age indicates how long a fibre channel frame has been waiting at a memory slot compared to how long other fibre channel frames are waiting in other memory slot at any given time; and wherein before transferring a fibre channel frame, the receive segment of the port determines if more than one transmit segment is requesting fibre channel frames stored in the plurality of memory slots; and
if only one transmit segment requests a fibre channel frame stored at a memory slot, then the frame is routed without using the aging table;
but if more than on transmit segment is requesting fibre channel frames then the receive segment uses the aging table to determine which fibre channel frame is the oldest among the plurality of fibre channel frames stored in the plurality of memory slots; and
the oldest fibre channel frame is transmitted from a memory slot based on the relative age obtained from the aging table;
wherein if there are N number of memory slots, then ((N*N)−
N)/2) bits are used to populate the aging table.
-
-
9. A port for a switch element operationally coupled to a network for sending and receiving network frames, comprising:
-
a receiving segment for receiving a network frame; a transmit segment for transmitting a network frame; wherein the receive segment includes; (a) a buffer having a plurality of memory slots for receiving the network frames; and (b) an aging table for storing a relative age of a network frame stored at a memory slot and the relative age indicates how long a network frame has been waiting at a memory slot compared to how long other network frames are waiting in other memory slots from among the plurality of memory slots, at any given time; wherein before transferring a network frame, the port determine if more than one transmit segment is requesting network frames stored in the plurality of memory slots; and
if only one transmit segment requests a network frame stored at a memory slot, then the network frame is routed without using the aging table;
but if more than one transmit segment is requesting network frames then the receive segment uses the aging table to determine which network frame is the oldest among the plurality of network frames stored in the plurality of memory slots; and
the oldest fibre channel frame is transmitted from a memory slot based on the relative age obtained from the aging table, wherein age bits are set in the aging table when network frames are written in the receive segment and the relative age for the network frames is determined based on a value of the age bits, and wherein the aging table includes a grid having a plurality of rows and a plurality of columns identified by memory slot numbers and the grid stores the age bits.
-
-
10. A port for a switch element operationally coupled to network for sending and receiving network frames, comprising:
-
a receive segment for receiving a network frame; a transmit segment for transmitting a network frame; wherein the receive segment includes; (a) a buffer having a plurality of memory slots for receiving the network frames; and (b) an aging table for storing a relative age of a network frame stored at a memory slot and the relative age indicates how long a network frame has been waiting at a memory slot compared to how long other network frames are waiting in other memory slots from among the plurality of memory slots, at any given time; wherein before transferring a network frame, the port determines if more than one transmit segment is requesting network frames stored in the plurality of memory slots; and
if only one transmit segment requests a network frame stored at a memory slot, then the network frame is routed without using the aging table;
but if more than one transmit segment is requesting network frames then the receive segment uses the aging table to determine which network frame is the oldest among the plurality of network frames stored in the plurality of memory slots; and
the oldest fibre channel frame is transmitted from a memory slot based on the relative age obtained from the aging table, wherein age bits are set in the aging table when network frames are written in the receive segment of the relative age for the network frames is determined based on a value of the age bits, wherein if there are N number of memory slots, then ((N*N)−
N)/2 bits are used to populate the aging table.
-
Specification