System and method for optimizing frame routing in a network

Information

  • Patent Grant
  • 7334046
  • Patent Number
    7,334,046
  • Date Filed
    Monday, August 5, 2002
    22 years ago
  • Date Issued
    Tuesday, February 19, 2008
    16 years ago
Abstract
A method for routing Fibre Channel frames in a Fibre Channel system is provided. The method compares a cost associated with a pre-programmed preferred route when the pre-programmed preferred route has been pre-programmed to route Fibre Channel frames between a source Fibre Channel port and a destination Fibre Channel port; with a cost of at least one route for routing Fibre channel frames between the source Fibre Channel port and the destination port determined by using a standard Fibre Channel Fabric Shortest Path First (FSPF) protocol, and using the pre-programmed-preferred route to route Fibre Channel frames if the cost associated with the pre-programmed preferred route is lower than the cost associated with the at least one route determined by the standard Fibre Channel FSPF protocol.
Description
BACKGROUND

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.


SUMMARY OF THE INVENTION

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.





BRIEF DESCRIPTION OF THE 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:



FIG. 1, as described above, shows a block diagram of a fibre channel system using a fibre channel fabric;



FIG. 2 is a block diagram showing multi-module switch;



FIG. 3 is block diagram of a switch module in a multi-module switch environment, according to one aspect of the present invention; and



FIG. 4 is a flow diagram of executable process steps for selecting a routing path for fibre channel frames.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

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.



FIG. 1 is a block diagram of a fibre channel system 100 implementing the methods and systems in accordance with the adaptive aspects of the present invention. System 100 includes plural devices that are interconnected. Each device includes one or more ports, classified as node ports (N_Ports), fabric ports (F_Ports), and expansion ports (E_Ports). Node ports may be located in a node device, e.g. server 103, disk array 105 and storage device 104. Fabric ports are located in fabric devices such as switch 101 and 102. Arbitrated loop 105 may be operationally coupled to switch 101 using arbitrated loop ports (FL_Ports).


The devices of FIG. 1 are operationally coupled via “links” or “paths”. A path may be established between two N_ports, e.g. between server 103 and storage 104. A packet-switched path may be established using multiple links, e.g. an N-Port in server 103 may establish a path with disk array 105 through switch 102.


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.



FIG. 2 is a block diagram that shows plural switch modules (or blades) 102A-102F (or 103) integrated into a single multi-module switch 200. Internal ports between the switch modules operate on a multi-blade protocol, while external ports operate under FC-SW-2 protocol.



FIG. 3 is a block diagram of a blade in a multi-module switch, e.g. blade 102A, that implements the adaptive aspects of the present invention. Switch module 102A includes plural external ports (F_Ports operationally coupled to other devices, e.g. server 103; or E_Ports coupled to other switch modules) 300A through 300D; and internal ports 301A-301D that operate under the multi-blade protocol.


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.



FIG. 4 is a flow diagram of executable process steps for routing packets in a fibre channel switch environment. The process allows for choosing the most efficient and optimum path for routing frame packets.


Turning in detail to FIG. 4, in step S400, a fibre channel switch sets routing needs for a source and destination port and then determines the route to use for a specified source port and destination switch.


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.

Claims
  • 1. A method for routing Fibre Channel frames in a Fibre Channel system, comprising: storing a pre-programmed preferred route in a memory accessible to a processor of a Fibre Channel switch element to route Fibre Channel frames from a source Fibre Channel port to a destination Fibre Channel port;comparing a cost associated with the pre-programmed preferred route; with a cost associated with a lowest cost route that is determined by using a standard Fibre Channel Fabric Shortest Path First (FSPF) protocol;using the pre-programmed-preferred route to route the Fibre Channel frames if the cost associated with the pre-programmed preferred route is equal to or lower than the cost associated with the lowest cost route determined by the standard Fibre Channel FSPF protocol; andusing a route determined by the standard Fibre Channel FSPF protocol if a preferred route has not been pre-programmed.
  • 2. The method of claim 1, wherein the pre-programmed preferred route is specified to route frames between external Fibre Channel switch element ports.
  • 3. The method of claim 1, wherein the pre-programmed preferred route is specified to route frames between internal modules of a multi-module Fibre Channel switch.
  • 4. The method of claim 1, wherein the pre-programmed preferred route is pre-programmed by using a switch management module.
  • 5. A Fibre Channel switch element, comprising: a processor executing firmware code for comparing a cost associated with a pre-programmed preferred route stored in a memory that is accessible to the processor, with a cost associated with a lowest cost route determined by using a standard Fibre Channel Fabric Shortest Path First (FSPF) protocol, wherein the pre-programmed preferred route is pre-programmed to route frames between a source Fibre Channel port and a destination Fibre Channel port and the pre-programmed preferred route is used if the cost associated with the pre-programmed preferred route is equal to or lower than the cost associated with the lowest cost route determined by the standard Fibre Channel FSPF protocol.
  • 6. The switch element of claim 5, wherein the pre-programmed preferred route is specified to route frames between external Fibre Channel switch element ports.
  • 7. The switch element of claim 5, wherein the lowest cost route determined by using the standard Fibre Channel FSPF protocol is used to route Fibre Channel frames if the pre-programmed preferred route has not been pre-programmed in the memory.
  • 8. The switch element of claim 5, wherein the pre-programmed preferred route is specified to route frames between internal modules of a multi-module Fibre Channel switch.
  • 9. The switch element of claim 5, wherein the pre-programmed preferred route is pre-programmed by using a switch management module.
  • 10. A Fibre Channel network, comprising: a Fibre Channel switch element with a processor executing firmware code for comparing a cost associated with a pre-programmed preferred route stored in a memory accessible by the processor with a cost associated with a lowest cost route determined by using a standard Fibre Channel Fabric Shortest Path First (FSPF) protocol, wherein the pre-programmed preferred route is pre-programmed to route frames between a source Fibre Channel port and a destination Fibre Channel port; and the pre-programmed preferred route is used if the cost associated with the pre-programmed preferred route is equal to or lower than the cost associated with the lowest cost route determined by the standard Fibre Channel FSPF protocol.
  • 11. The switch element of claim 10, wherein the pre-programmed preferred route is specified to route frames between external Fibre Channel switch element ports.
  • 12. The switch element of claim 10, wherein the lowest cost route determined by the standard Fibre Channel FSPF protocol is used to route frames if a preferred route has not been pre-programmed.
  • 13. The switch element of claim 10, wherein the pre-programmed preferred route is specified for a particular switch.
  • 14. The switch element of claim 10, wherein the preferred route is stored as a table in the memory accessible to the processor.
US Referenced Citations (164)
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
Foreign Referenced Citations (4)
Number Date Country
0649098 Sep 1994 EP
0856969 Jan 1998 EP
WO-9836537 Aug 1998 WO
WO03088050 Oct 2003 WO