Quality of service using virtual channel translation
First Claim
1. A method for sending Fibre Channel data frames through a Fibre Channel switch, the Fibre Channel switch comprising a plurality of small switches, the Fibre Channel data frames having a source and a destination, the destination being used for routing the Fibre Channel data frame, comprising:
- receiving the Fibre Channel data frame from the source at a first small switch;
choosing a first virtual channel from a set of possible virtual channels, each virtual channel of the set of possible virtual channels being available for use with general data flow;
providing information in addition to the Fibre Channel data frame to identify the first virtual channel; and
sending the Fibre Channel data frame and the additional information identifying the first virtual channel from the first small switch to a second small switch,wherein;
the additional information identifying the first virtual channel is included in an inter-frame fill word; and
the inter-frame fill word is sent from the first small switch to the second small switch prior to the Fibre Channel data frame.
7 Assignments
0 Petitions
Accused Products
Abstract
Virtual channels are used to improve quality of service through a large port count switch. Data frames are sent from one small switch to another small switch within the large port count switch on virtual channels. The use of virtual channels helps prevent congestion caused by a first external source device sending data to a first external destination device from affecting a second external source device sending data to a second external destination device.
94 Citations
40 Claims
-
1. A method for sending Fibre Channel data frames through a Fibre Channel switch, the Fibre Channel switch comprising a plurality of small switches, the Fibre Channel data frames having a source and a destination, the destination being used for routing the Fibre Channel data frame, comprising:
-
receiving the Fibre Channel data frame from the source at a first small switch; choosing a first virtual channel from a set of possible virtual channels, each virtual channel of the set of possible virtual channels being available for use with general data flow; providing information in addition to the Fibre Channel data frame to identify the first virtual channel; and sending the Fibre Channel data frame and the additional information identifying the first virtual channel from the first small switch to a second small switch, wherein; the additional information identifying the first virtual channel is included in an inter-frame fill word; and the inter-frame fill word is sent from the first small switch to the second small switch prior to the Fibre Channel data frame.
-
-
2. A method for sending Fibre Channel data frames through a Fibre Channel switch, the Fibre Channel switch comprising a plurality of small switches, the Fibre Channel data frames having a source and a destination, the destination being used for routing the Fibre Channel data frame, comprising:
-
receiving the Fibre Channel data frame from the source at a first small switch; choosing a first virtual channel from a set of possible virtual channels, each virtual channel of the set of possible virtual channels being available for use with general data flow; providing information in addition to the Fibre Channel data frame to identify the first virtual channel; and sending the Fibre Channel data frame and the additional information identifying the first virtual channel from the first small switch to a second small switch, wherein; the first small switch has a set of source ports capable of connecting to external devices; the Fibre Channel data frame is received at the first small switch from the source through a first source port of the set of external ports; and the first virtual channel is chosen from the set of possible virtual channels based on the identity of the first source port. - View Dependent Claims (3, 4, 5, 6)
-
-
7. A method for sending Fibre Channel data frames through a Fibre Channel switch, the Fibre Channel switch comprising a plurality of small switches, the Fibre Channel data frames having a source and a destination, the destination being used for routing the Fibre Channel data frame, comprising:
-
receiving the Fibre Channel data frame from the source at a first small switch; choosing a first virtual channel from a set of possible virtual channels, each virtual channel of the set of possible virtual channels being available for use with general data flow; providing information in addition to the Fibre Channel data frame to identify the first virtual channel; sending the Fibre Channel data frame and the additional information identifying the first virtual channel from the first small switch to a second small switch determining the destination of the Fibre Channel data frame; and retrieving an identity of a port from a routing table, the port identity being associated with the destination in the routing table, wherein; the Fibre Channel data frame and the additional information identifying the first virtual channel are sent from the first small switch to the second small switch through the port; the Fibre Channel switch further comprises a processor connected to each of the plurality of small switches; and the processor sends at least one routing table entry to each of the plurality of small switches, each of the small switches storing the entry in the routing table, the entry comprising a destination and a port identity associated with the destination.
-
-
8. A method for sending Fibre Channel data frames through a Fibre Channel switch, the Fibre Channel switch comprising a plurality of small switches, the Fibre Channel data frames having a source and a destination, the destination being used for routing the Fibre Channel data frame, comprising:
-
receiving the Fibre Channel data frame from the source at a first small switch; choosing a first virtual channel from a set of possible virtual channels, each virtual channel of the set of possible virtual channels being available for use with general data flow; providing information in addition to the Fibre Channel data frame to identify the first virtual channel; sending the Fibre Channel data frame and the additional information identifying the first virtual channel from the first small switch to a second small switch receiving the Fibre Channel data frame from the first small switch at the second small switch; choosing a second virtual channel from a set of possible virtual channels; providing information in addition to the original Fibre Channel data frame to identify the second virtual channel; and sending the Fibre Channel data frame and the additional information identifying the second virtual channel from the second small switch to a third small switch, wherein; the Fibre Channel switch further comprises a processor connected to each of the plurality of small switches; and the processor sends at least one routing table entry to each of the plurality of small switches, each of the small switches storing the entry in the routing table, the entry comprising a destination and a virtual channel associated with the destination.
-
-
9. A Fibre Channel small switch operable to receive and output Fibre Channel data frames using virtual channels, comprising:
-
a plurality of ports including a plurality of source ports capable of connecting to external devices; a plurality of buffers, each buffer being associated with a respective virtual channel; a memory storing an identity of a virtual channel associated with each source port and available for general data flow; and logic operable to determine an identification of a destination of the Fibre Channel data frame and to determine an identification of a virtual channel available for general data flow on which to output received data; and
in response to the small switch receiving the Fibre Channel data frame through a first source port of the plurality of source ports, to retrieve a first virtual channel identifier identifying a first virtual channel associated with the first source port from the memory, to provide information in addition to the Fibre Channel data frame to identify the first virtual channel, and to output the Fibre Channel data frame and the additional information identifying the first virtual channel. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for processing a Fibre Channel data frame at a small Fibre Channel switch, the small Fibre Channel switch having a plurality of ports, comprising:
-
receiving the Fibre Channel data frame through a first one of the plurality of ports; determining a virtual channel of a plurality of virtual channels available for general data flow on which the Fibre Channel data frame was received; storing the Fibre Channel data frame in one of a plurality of buffers, the buffer being associated with the virtual channel on which the Fibre Channel data frame was received; determining an identity of a destination of the Fibre Channel data frame; determining which port to output the Fibre Channel data frame through; determining an identity of a virtual channel to output the Fibre Channel data frame on; providing information in addition to the original Fibre Channel data frame that identifies the virtual channel on which the Fibre Channel data frame is output; and outputting the Fibre Channel data frame and the additional information through the determined port. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A Fibre Channel switch operable to receive and output Fibre Channel data frames using virtual channels, comprising:
-
a plurality of small switches, each small switch comprising; a memory; and a plurality of ports including a plurality of external ports for connection to external devices and a plurality of internal ports for connection to other small switches; a plurality of buffers, each buffer being associated with a respective virtual channel; a memory storing an identity of a virtual channel associated with each external port and available for general data flow; and logic operable to determine an identification of a destination of the Fibre Channel data frame and to determine an identification of a virtual channel on which to output received Fibre Channel data frame; and a processor connected to each of the plurality of small switches; wherein each small switch is connected to a subset of the plurality of small switches via internal ports. - View Dependent Claims (31, 32, 33)
-
-
34. A Fibre Channel switch operable to receive and output Fibre Channel data frames using virtual channels, the switch comprising:
-
a plurality of ports including a plurality of source ports for coupling to external devices to receive Fibre Channel data frames from the external devices; a plurality of buffers, each buffer being associated with a respective virtual channel; and logic operable to determine an identification of a destination of the Fibre Channel data frames for routing purposes based on the destination address of the Fibre Channel data frame, to determine an identification of a virtual channel available for general data flow on which to output received Fibre Channel data frames, the determination of the virtual channel based on the source port receiving the Fibre Channel data frames, and to direct the received Fibre Channel data frame to the buffer associated with the identified virtual channel. - View Dependent Claims (35, 36, 37)
-
-
38. A Fibre Channel switch for switching Fibre Channel data frames, the switch comprising:
-
a first small Fibre Channel switch; and a second small Fibre Channel switch coupled to the first small Fibre Channel switch, wherein each small Fibre Channel switch includes; a plurality of ports including a plurality of external ports for coupling to external devices and a plurality of internal ports for connection to a small Fibre Channel switch; a plurality of buffers, each buffer associated with a respective virtual channel; and logic operable to determine an identification of a destination of a Fibre Channel data frame for routing purposes based on the destination address of the Fibre Channel data frame and to determine an identification of a virtual channel available for general data flow to apply to received Fibre Channel data frames, wherein the identification of the virtual channel can be done by one of at least two bases, wherein the first small Fibre Channel switch uses a first basis to identify the virtual channel and the second small Fibre Channel switch uses a second, different basis to identify the virtual channel, wherein the first basis to identify the virtual channel utilizes the external port which receives the Fibre Channel data frame; and wherein the second basis to identify the virtual channel utilizes the external port which transmits the Fibre Channel data frame.
-
-
39. A Fibre Channel switch for switching Fibre Channel data frames, the switch comprising:
-
a first small Fibre Channel switch; and a second small Fibre Channel switch coupled to the first small Fibre Channel switch, wherein each small Fibre Channel switch includes; a plurality of ports including a plurality of external ports for coupling to external devices and a plurality of internal ports for connection to a small Fibre Channel switch; a plurality of buffers, each buffer associated with a respective virtual channel; and logic operable to determine an identification of a destination of a Fibre Channel data frame for routing purposes based on the destination address of the Fibre Channel data frame and to determine an identification of a virtual channel available for general data flow to apply to received Fibre Channel data frames, wherein the identification of the virtual channel can be done by one of at least two bases, wherein the first small Fibre Channel switch uses a first basis to identify the virtual channel and the second small Fibre Channel switch uses a second, different basis to identify the virtual channel, wherein each buffer is further associated with an external port so that the plurality of buffers is organized with buffers for each virtual channel being associated with each external port, and wherein the logic directs the received Fibre Channel data frame to a buffer associated with the identified virtual channel and with the output external port, which is determined based on an output port routing determination from the identified destination of the Fibre Channel data frame. - View Dependent Claims (40)
-
Specification