1. Field of the Invention
The present invention relates to networking systems, and more particularly to systems using fibre channel fabrics for interconnecting fibre channel devices.
2. Background of the Invention
Fibre channel is a set of American National Standard Institute (ANSI) standards, which provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre channel provides an input/output interface to meet the requirements of both channel and network users.
Fibre channel supports three different topologies: point-to-point, arbitrated loop and fibre channel fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The fibre channel fabric topology attaches host systems directly to a fabric, which are then connected to multiple devices. The fibre channel fabric topology allows several media types to be interconnected.
Fibre channel is a closed system that relies on multiple ports to exchange information on attributes and characteristics to determine if the ports can operate together. If the ports can work together, they define the criteria under which they communicate.
In fibre channel, a path is established between two nodes where the path's primary task is to transport data from one point to another at high speed with low latency, performing only simple error detection in hardware. The fibre channel switch provides circuit/packet switched topology by establishing multiple simultaneous point-to-point connections.
Fibre channel fabric devices include a node port or “N_Port” that manages fabric connections. The N_port establishes a connection to a fabric element (e.g., a switch) having a fabric port or F_port. Fabric elements include the intelligence to handle routing, error detection, recovery, and similar management functions.
A fibre channel switch is a multi-port device where each port manages a simple point-to-point connection between itself and its attached system. Each port can be attached to a server, peripheral, I/O subsystem, bridge, hub, router, or even another switch. A switch receives a message from one port and automatically routes it to another port. Multiple calls or data transfers happen concurrently through the multi-port fibre channel switch.
Fibre channel switches may use multiple modules (also referred to as “blades”) connected by fibre channel ports. Conventionally, a multi-module switch is integrated as a single switch and appears to other devices in the fibre channel fabric as a single switch.
Fibre channel standard FC-SW-2, Revision 5.4, incorporated herein in its entirety, provides a Fabric Shortest Path First (“FSPF”) protocol (Section 8 of FC-SW-2). FSPF is a link state path selection protocol that uses a path computation algorithm for selecting a path from a source to a destination port based on the cost of the path and forwarding frames to a specific destination.
In Fibre Channel, the most commonly used application is SCSI. SCSI over Fibre Channel (usually referred to as SCSI-FCP) requires in-order delivery of frames. This means that Fibre Channel switches must select a fixed path from a source port to a destination port, even if multiple paths are available.
Fabrics may have multiple routes to the same destination with equal cost within the FSPF protocol. A switch may choose any of these equivalent paths for routing frames. Some switches or Fabrics may want to choose specific routes for reasons not specified in the Fibre Channel standards. For example, a user may wish to balance the load between several paths for the traffic pattern seen on that Fabric. A multi-module Fibre Channel switch may want to have the same routing pattern between modules for predictability and to avoid bottlenecks. This results in preferred routing for the switch.
However, preferred routing has drawbacks. The predetermined preferred routing assumes that all connections are working and it fails if some connections are not working. In addition, preferred routing set up by a user may have errors that can cause a Fabric to malfunction. If a preferred route is not one of the FSPF lowest cost routes, other switches may choose routes that are not consistent.
Therefore, what is required is a process and system that provides a flexible, self-correcting routing technique so that a preferred route is used if viable, and if not, an alternate route can be used.
In one aspect of the present invention, a method for selecting a routing path in a fibre channel system is provided. The process determines if a preferred route is available for a source and destination port, compares the preferred route with a standard calculated Fabric Shortest Path First (FSPF) routes, and uses the preferred route if its cost is similar to one of the lowest cost FSPF routes. The process uses one of the FSPF routes if it is lower cost than the preferred route or if a preferred route is not available.
In one aspect of the present invention, using preferred routes does not risk Fabric malfunction if failures or user error occurs, and hence provides flexibility in frame routing.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof concerning the attached drawings.
The foregoing features and other features of the present invention will now be described with reference to the drawings of a preferred embodiment. In the drawings, the same components have the same reference numerals. The illustrated embodiment is intended to illustrate, but not to limit the invention. The drawings include the following Figures:
Definitions:
The following definitions are provided as they are typically (but not exclusively) used in the fibre channel environment, implementing the various adaptive aspects of the present invention.
“Fibre Channel ANSI Standard”: The standard describes the physical interface, transmission and signaling protocol of a high performance serial link for support of other high level protocols associated with IPI, SCSI, IP, ATM and others.
“FC-1”: Fibre channel transmission protocol, which includes serial encoding, decoding and error control.
“FC-2”: Fibre channel signaling protocol that includes frame structure and byte sequences.
“FC-3”: Defines a set of fibre channel services that are common across plural ports of a node.
“FC-4”: Provides mapping between lower levels of fibre channel, IPI and SCSI command sets, HIPPI data framing, IP and other upper level protocols.
“Fabric”: A system which interconnects various ports attached to it and is capable of routing fibre channel frames by using destination identifiers provided in FC-2 frame headers.
“Fabric Topology”: This is a topology where a device is directly attached to a fibre channel fabric that uses destination identifiers embedded in frame headers to route frames through a fibre channel fabric to a desired destination.
Port: A general reference to N. Sub.--Port or F.Sub.--Port.
The Fibre Channel Specification used to build one embodiment of the present invention includes:
FC-SW-2 standard as published by the American National Standard Institute.
To facilitate an understanding of the preferred embodiment, the general architecture and operation of a fibre channel system will be described. The specific architecture and operation of the preferred embodiment will then be described with reference to the general architecture of the fibre channel system.
The devices of
Switch 101 includes an E_Port that enables a path to another switch 102. An inter-switch link (“ISL”) enables N_Ports to operationally couple to other N-Ports in a fabric.
Switch 102A also includes a processor 302 (Intel i960 processor, Pentium Class™ or any other microprocessor may be used) coupled to a bus 302A. Processor 302 executes the process steps, described below by loading the steps from memory 303. Memory 303 includes preferred route data 305 and FSPF route data 304.
Turning in detail to
In step S401, the process determines if a preferred route is available for the source and/or destination port(s). A preferred route may be pre-programmed for a specific port in a table or may be input by a switch management module (not shown), or calculated by processor 302. The preferred routes may be stored as a table in memory 303 for a particular switch product, calculated for a particular switch product, or created by a switch management module.
If a preferred route is not available, in step S402, the process uses any one of the lowest cost routes determined by the FSPF protocol, as defined by FC-SW-2.
If a preferred route is available, then in step S403, the process compares the cost of the preferred route with the FSPF routes. If the preferred route cost is similar to one of the lowest cost FSPF route(s), then the process uses the preferred route in step S404.
If the FSPF route is lower cost, then the process moves to step S402, where the FSPF routing is used.
Typically, firmware used by processor 302 firmware implements the foregoing routing steps. However, dedicated hardware may use the foregoing process steps to efficiently execute the foregoing process steps.
It is noteworthy that the foregoing process steps may be used for routing frames between internal modules of a multi-module switch or for routing frames between external ports. The adaptive aspects of the foregoing invention are not limited to multi-module or non-multi-module switches.
In one aspect of the present invention, the process allows the switch to try to use preferred routes but prevents problems if the fixed routes are not viable because of failures or errors, and hence provides flexibility in frame routing.
Although the present invention has been described with reference to specific embodiments, these embodiments are illustrative only and not limiting. Many other applications and embodiments of the present invention will be apparent in light of this disclosure and the following claims.
Number | Name | Date | Kind |
---|---|---|---|
4162375 | Schilichte | Jul 1979 | A |
4200929 | Davidjuk et al. | Apr 1980 | A |
4382159 | Bowditch | May 1983 | A |
4425640 | Philip et al. | Jan 1984 | A |
4546468 | Christmas et al. | Oct 1985 | A |
4569043 | Simmons et al. | Feb 1986 | A |
4725835 | Schreiner et al. | Feb 1988 | A |
4821034 | Anderson et al. | Apr 1989 | A |
4980857 | Walter et al. | Dec 1990 | A |
5051742 | Hullett et al. | Sep 1991 | A |
5115430 | Hahne et al. | May 1992 | A |
5144622 | Takiyasu et al. | Sep 1992 | A |
5367520 | Cordell | Nov 1994 | A |
5590125 | Acampora et al. | Dec 1996 | A |
5598541 | Malladi | Jan 1997 | A |
5610745 | Bennett | Mar 1997 | A |
5623492 | Teraslinna | Apr 1997 | A |
5666483 | McClary | Sep 1997 | A |
5687172 | Cloonan et al. | Nov 1997 | A |
5701416 | Thorson et al. | Dec 1997 | A |
5706279 | Teraslinna | Jan 1998 | A |
5748612 | Stoevhase et al. | May 1998 | A |
5812525 | Teraslinna | Sep 1998 | A |
5818842 | Burwell et al. | Oct 1998 | A |
5821875 | Lee et al. | Oct 1998 | A |
5828475 | Bennett et al. | Oct 1998 | A |
5835752 | Chiang et al. | Nov 1998 | A |
5954796 | McCarty et al. | Sep 1999 | A |
5978359 | Caldara et al. | Nov 1999 | A |
5987028 | Yang et al. | Nov 1999 | A |
5999528 | Chow et al. | Dec 1999 | A |
6014383 | McCarty | Jan 2000 | A |
6021128 | Hosoya et al. | Feb 2000 | A |
6026092 | Abu-Amara et al. | Feb 2000 | A |
6031842 | Trevitt et al. | Feb 2000 | A |
6047323 | Krause | Apr 2000 | A |
6055618 | Thorson | Apr 2000 | A |
6061360 | Miller et al. | May 2000 | A |
6081512 | Muller et al. | Jun 2000 | A |
6108738 | Chambers et al. | Aug 2000 | A |
6108778 | LaBerge | Aug 2000 | A |
6118776 | Berman | Sep 2000 | A |
6128292 | Kim et al. | Oct 2000 | A |
6144668 | Bass et al. | Nov 2000 | A |
6160813 | Banks et al. | Dec 2000 | A |
6201787 | Baldwin et al. | Mar 2001 | B1 |
6229822 | Chow et al. | May 2001 | B1 |
6240096 | Book | May 2001 | B1 |
6253267 | Kim et al. | Jun 2001 | B1 |
6289002 | Henson et al. | Sep 2001 | B1 |
6308220 | Mathur | Oct 2001 | B1 |
6324181 | Wong et al. | Nov 2001 | B1 |
6330236 | Ofek et al. | Dec 2001 | B1 |
6353612 | Zhu et al. | Mar 2002 | B1 |
6401128 | Stai et al. | Jun 2002 | B1 |
6411599 | Blanc et al. | Jun 2002 | B1 |
6411627 | Hullett et al. | Jun 2002 | B1 |
6418477 | Verma | Jul 2002 | B1 |
6421711 | Blumenau et al. | Jul 2002 | B1 |
6424658 | Mathur | Jul 2002 | B1 |
6449274 | Holden et al. | Sep 2002 | B1 |
6452915 | Jorgensen | Sep 2002 | B1 |
6467008 | Gentry et al. | Oct 2002 | B1 |
6470026 | Pearson et al. | Oct 2002 | B1 |
6532212 | Soloway et al. | Mar 2003 | B1 |
6570850 | Gutierrez et al. | May 2003 | B1 |
6594231 | Byham et al. | Jul 2003 | B1 |
6597691 | Anderson et al. | Jul 2003 | B1 |
6597777 | Ho | Jul 2003 | B1 |
6614796 | Black et al. | Sep 2003 | B1 |
6697359 | George | Feb 2004 | B1 |
6697368 | Chang et al. | Feb 2004 | B2 |
6718497 | Whitby-Strevens | Apr 2004 | B1 |
6744772 | Eneboe et al. | Jun 2004 | B1 |
6760302 | Ellinas et al. | Jul 2004 | B1 |
6785241 | Lu et al. | Aug 2004 | B1 |
6807181 | Weschler | Oct 2004 | B1 |
6816750 | Klaas | Nov 2004 | B1 |
6859435 | Lee et al. | Feb 2005 | B1 |
6865157 | Scott et al. | Mar 2005 | B1 |
6886141 | Kunz et al. | Apr 2005 | B1 |
6941357 | Nguyen et al. | Sep 2005 | B2 |
6941482 | Strong | Sep 2005 | B2 |
6952659 | King et al. | Oct 2005 | B2 |
6968463 | Pherson et al. | Nov 2005 | B2 |
7000025 | Wilson | Feb 2006 | B1 |
7002926 | Eneboe et al. | Feb 2006 | B1 |
7010607 | Bunton | Mar 2006 | B1 |
7039070 | Kawakatsu | May 2006 | B2 |
7039870 | Takaoka et al. | May 2006 | B2 |
7047326 | Crosbie et al. | May 2006 | B1 |
7050392 | Valdevit | May 2006 | B2 |
7055068 | Riedl | May 2006 | B2 |
7061871 | Sheldon et al. | Jun 2006 | B2 |
7092374 | Gubbi | Aug 2006 | B1 |
7110394 | Chamdani et al. | Sep 2006 | B1 |
7124169 | Shimozono et al. | Oct 2006 | B2 |
7151778 | Zhu et al. | Dec 2006 | B2 |
7171050 | Kim | Jan 2007 | B2 |
7185062 | Lolayekar et al. | Feb 2007 | B2 |
7194538 | Rabe et al. | Mar 2007 | B1 |
7200108 | Beer et al. | Apr 2007 | B2 |
7215680 | Mullendore et al. | May 2007 | B2 |
7221650 | Cooper et al. | May 2007 | B1 |
7248580 | George et al. | Jul 2007 | B2 |
7269131 | Cashman et al. | Sep 2007 | B2 |
20010011357 | Mori | Aug 2001 | A1 |
20010038628 | Ofek et al. | Nov 2001 | A1 |
20020034178 | Schmidt et al. | Mar 2002 | A1 |
20020103913 | Tawil et al. | Aug 2002 | A1 |
20020104039 | DeRolf et al. | Aug 2002 | A1 |
20020124124 | Matsumoto et al. | Sep 2002 | A1 |
20020147560 | Devins et al. | Oct 2002 | A1 |
20020147843 | Rao | Oct 2002 | A1 |
20020156918 | Valdevit et al. | Oct 2002 | A1 |
20020172195 | Pekkala et al. | Nov 2002 | A1 |
20020191602 | Woodring et al. | Dec 2002 | A1 |
20020196773 | Berman | Dec 2002 | A1 |
20030016683 | George et al. | Jan 2003 | A1 |
20030021239 | Mullendore et al. | Jan 2003 | A1 |
20030026267 | Oberman et al. | Feb 2003 | A1 |
20030026287 | Mullendore et al. | Feb 2003 | A1 |
20030035433 | Craddock et al. | Feb 2003 | A1 |
20030046396 | Richter et al. | Mar 2003 | A1 |
20030072316 | Niu et al. | Apr 2003 | A1 |
20030079019 | Lolayekar et al. | Apr 2003 | A1 |
20030084219 | Yao et al. | May 2003 | A1 |
20030086377 | Berman | May 2003 | A1 |
20030091062 | Lay et al. | May 2003 | A1 |
20030103451 | Lutgen et al. | Jun 2003 | A1 |
20030117961 | Chuah et al. | Jun 2003 | A1 |
20030120983 | Vieregge et al. | Jun 2003 | A1 |
20030137941 | Kaushik et al. | Jul 2003 | A1 |
20030174789 | Waschura et al. | Sep 2003 | A1 |
20030179709 | Huff | Sep 2003 | A1 |
20030179748 | George et al. | Sep 2003 | A1 |
20030189930 | Terrell et al. | Oct 2003 | A1 |
20030189935 | Warden et al. | Oct 2003 | A1 |
20030195983 | Krause | Oct 2003 | A1 |
20030229808 | Heintz et al. | Dec 2003 | A1 |
20040013092 | Betker et al. | Jan 2004 | A1 |
20040013125 | Betker et al. | Jan 2004 | A1 |
20040015638 | Bryn | Jan 2004 | A1 |
20040024831 | Yang et al. | Feb 2004 | A1 |
20040028038 | Anderson et al. | Feb 2004 | A1 |
20040057389 | Klotz et al. | Mar 2004 | A1 |
20040081186 | Warren et al. | Apr 2004 | A1 |
20040081394 | Biren et al. | Apr 2004 | A1 |
20040085955 | Walter et al. | May 2004 | A1 |
20040100944 | Richmond et al. | May 2004 | A1 |
20040109418 | Fedorkow et al. | Jun 2004 | A1 |
20040123181 | Moon et al. | Jun 2004 | A1 |
20040141521 | George | Jul 2004 | A1 |
20040153914 | El-Batal | Aug 2004 | A1 |
20040174813 | Kasper et al. | Sep 2004 | A1 |
20040208201 | Otake | Oct 2004 | A1 |
20040267982 | Jackson et al. | Dec 2004 | A1 |
20050023656 | Leedy | Feb 2005 | A1 |
20050036499 | Dutt et al. | Feb 2005 | A1 |
20050117522 | Basavaiah et al. | Jun 2005 | A1 |
20050177641 | Yamagami | Aug 2005 | A1 |
20060047852 | Shah et al. | Mar 2006 | A1 |
20060074927 | Sullivan et al. | Apr 2006 | A1 |
20060184711 | Pettey | Aug 2006 | A1 |
Number | Date | Country |
---|---|---|
0649098 | Sep 1994 | EP |
0856969 | Jan 1998 | EP |
WO-9836537 | Aug 1998 | WO |
WO03088050 | Oct 2003 | WO |