A loop network hub port with an automatic bypass feature. The automatic bypass feature causes the hub port to enter a bypass mode upon detection of a specified loop failure initialization sequence from a node port attached to the hub port. The hub port does not propagate loop failure initialization data generated by the attached node port upon the failure of a data channel from the hub port to the node port. The hub port replaces loop failure initialization data received from the node port with buffer data and conceals the node port failure from the remainder of the loop. Upon detection of the loop failure initialization sequence received from the attached node port, the hub port enters a bypass mode and maintains that bypass mode until a recovery sequence is received from the node port. At that point, the hub port reinserts the node port into the loop.
|
1. A fiber channel system, comprising:
a loop comprising a plurality of connected hub ports arranged in a loop, each hub port connected to another hub port, and a plurality of node ports, each node port connected to a corresponding hub port but separated from the loop, each node port for sending failure initialization data in the form of loop Initialization Primitive (LIP) F8 ordered sets back to its corresponding hub port upon detecting a failure in data being received by the node port, said hub ports each including an error detecting portion which detects LIP F8 ordered sets received from its corresponding node port, and a switch electrically controlled to pass information from said loop through a node port when said node port is operating properly, and to control said switch to bypass said node port when said node port is sending LIP F8 ordered sets indicative of errors.
|
This is a divisional of U.S. application Ser. No. 09/398,523, filed Sep. 15, 1999 (allowed), which is a divisional of U.S. application Ser. No. 09/071,678, filed May 1, 1998 now U.S. Pat. No. 6,188,668 (issued).
The present invention relates to electronic network communications systems, and more specifically to automatic isolation of a node or loop segment in a loop network where a data channel transmitting data from a hub port to the node or loop segment has failed.
Electronic data systems are frequently interconnected using network communication systems. Area-wide networks and channels are two approaches that have been developed for computer network architectures. Traditional networks (e.g., LAN's and WAN's) offer a great deal of flexibility and relatively large distance capabilities. Channels, such as the Enterprise System Connection (ESCON) and the Small Computer System Interface (SCSI), have been developed for high performance and reliability. Channels typically use dedicated short-distance connections between computers or between computers and peripherals.
Features of both channels and networks have been incorporated into a new network standard known as “Fibre Channel”. Fibre Channel systems combine the speed and reliability of channels with the flexibility and connectivity of networks. Fibre Channel products currently can run at very high data rates, such as 266 Mbps or 1062 Mbps. These speeds are sufficient to handle quite demanding applications, such as uncompressed, full motion, high-quality video. ANSI specifications, such as X3.230-1994, define the Fibre Channel network. This specification distributes Fibre Channel functions among five layers. The five functional layers of the Fibre Channel are: FC-0—the physical media layer; FC-1—the coding and encoding layer; FC-2—the actual transport mechanism, including the framing protocol and flow control between nodes; FC-3—the common services layer; and FC-4—the upper layer protocol.
There are generally three ways to deploy a Fibre Channel network: simple point-to-point connections; arbitrated loops; and switched fabrics. The simplest topology is the point-to-point configuration, which simply connects any two Fibre Channel systems directly. Arbitrated loops are Fibre Channel ring connections that provide shared access to bandwidth via arbitration. Switched Fibre Channel networks, called “fabrics”, are a form of cross-point switching.
Conventional Fibre Channel Arbitrated Loop (“FC-AL”) protocols provide for loop functionality in the interconnection of devices or loop segments through node ports. However, direct interconnection of node ports is problematic in that a failure at one node port in a loop typically causes the failure of the entire loop. This difficulty is overcome in conventional Fibre Channel technology through the use of hubs. Hubs include a number of hub ports interconnected in a loop topology. Node ports are connected to hub ports, forming a star topology with the hub at the center. Hub ports which are not connected to node ports or which are connected to failed node ports are bypassed. In this way, the loop is maintained despite removal or failure of node ports.
More particularly, an FC-AL network is typically composed of two or more node ports linked together in a loop configuration forming a single data path. Such a configuration is shown in
When there is a failure at any point in the loop, the loop datapath is broken and all communication on the loop halts.
In a conventional FC-AL system, recovery proceeds according to a standard. Accordingly, when node port 106 detects that it is no longer receiving valid data across data channel 116, node port 106 begins to generate loop initialization primitive (“LIP”) ordered sets, typically LIP (F8, AL_PS) or LIP (F8, F7) (“LIP F8”) ordered sets. “AL_PS” is t arbitrated loop address of the node port which is issuing the LIP F8 ordered sets, in this case, node port 106. The LIP F8 ordered sets propagate around the loop. Each node receiving a LIP F8 primitive sequence stops generating data or other signals and sends a minimum of 12 LIP F8 ordered sets. A sequence of three consecutive LIP F8 ordered sets forms a LIP F8 primitive sequence. At this point, the LIP F8 primitive sequences and ordered sets composing primitive sequences propagate through the broken loop 100 shown in
A conventional partial solution to recovery from a broken node port-to-node port loop is provided by the introduction of a hub within a loop. A hub creates a physical configuration of node ports in a star pattern, but the virtual operation of the node ports continues in a loop pattern. The connection process (i.e., sending data between node ports) and interaction with the hubs is effectively transparent to the node ports connected to the hub which perceive the relationship as a standard FC-AL configuration.
When a failure occurs on a data channel carrying data from a node port to a hub port, the loop is maintained by bypassing the failed node port. In a conventional hub, when a hub port no longer receives data from a node port, the hub port goes into a bypass mode where, rather than passing data received on the data channel from the node port, the hub port passes data received along the internal hub link from the previous hub port. For example, data channel 234 connecting node port 206 to hub port 220 may fail, such as through physical disconnection or interference such that valid data no longer passes from node port 206 to hub port 220. Hub port 220 detects the cessation of valid data from node port 206 and enters bypass mode. In this way, the loop integrity is maintained. Rather than breaking the loop, as was the case illustrated in
The inventors have determined that it would be desirable to provide a hub port that can create an automatic bypass upon detection of a LIP F8 primitive sequence from an attached node port.
The preferred embodiment of the invention provides a hub port in a hub of a loop network which automatically bypasses a node port which is generating a particular loop failure initialization sequence. The hub port contains a detection circuit which enables the hub port to detect loop failure initialization data received from its attached node port. Upon detecting such data from an attached node port, the hub port replaces such data with buffer data to be passed to the next hub port. Upon detecting the completion of a loop failure initialization sequence from an attached node port, the hub port enters a bypass mode. The hub port no longer passes on output from its attached node port and instead forwards along the internal hub link data received from the previous hub port in the hub loop. The bypass is maintained until the hub port receives a primitive sequence indicating the recovery of the attached node port.
One embodiment provides a hub port in a hub of a Fibre Channel arbitrated loop which automatically bypasses a node port which is generating a LIP F8 primitive sequence. The hub port of the preferred embodiment contains a LIP detection circuit which enables the hub port to detect the generation of LIP F8 ordered sets by its attached node port. Upon receiving a LIP F8 ordered set from an attached node port, a hub port of a preferred embodiment generates fill words to be passed to the next hub port. Upon the completion of a LIP F8 primitive sequence from an attached node port, the hub port of the preferred embodiment enters a bypass mode and no longer passes on output from its attached node port and instead forwards data received along the internal hub link from the previous hub port in the hub loop. The bypass is maintained until the hub port receives a LIP primitive sequence other than a LIP F8 primitive sequence from the attached node port.
The preferred embodiment provides a mechanism to automatically bypass a node port or loop segment attached to a hub port, where the node port or loop segment is sending loop failure initialization sequences, such as LIP (F8, AL_PS) or LIP (F8, F7) (“LIP F8”) primitive sequences. The invention is explained below in the context of a Fibre Channel Arbitrated Loop (“FC-AL”) network as an illustration of the preferred embodiment. However, the invention may have applicability to networks with similar characteristics as FC-AL networks.
If a data channel carrying data to a node port or loop segment from a network hub port develops a link failure, the node port or loop segment is isolated from the hub loop and the other node ports on the hub loop are able to continue communication while the failed node port or loop segment is isolated from the loop. The preferred embodiment provides a hub port which detects failures in its connection to a node port by detecting loop failure initialization sequences generated by the node port. The hub port then isolates the node port, allowing the remainder of the loop to function with the link error removed, hidden by the bypass mode of the hub port.
When a hub port of the preferred embodiment receives loop failure initialization data from the attached node port, the hub port does not pass the loop failure initialization data along the loop to the next hub port. The hub port replaces the loop failure initialization data with buffer data which is sent to the next hub port in the loop. If a loop failure initialization sequence is received (i.e., some specified combination of loop failure initialization data), then the source of the loop failure initialization data (i.e., the node port or loop segment which is generating the loop failure initialization data) is isolated until a loop initialization primitive sequence other than a loop failure initialization sequence is received from the node port and detected at the hub port.
For example, in an FC-AL implementation, when a hub port receives LIP F8 ordered sets from the attached node port, the hub port replaces the LIP F8 ordered set with a “current fill word”. If a LIP F8 primitive sequence (e.g., three consecutive identical LIP F8 ordered sets), is effected, then the node port or loop segment which is generating the LIP F8 ordered sets is bypassed. The bypass is maintained until the hub port receives a LIP primitive sequence other than a LIP F8 primitive sequence.
Fill words are used under conventional FC-AL protocols as buffers between data frames. Data received from a node port is typically temporarily stored in a buffer within the hub port. The data typically leaves the buffer in a first in, first out manner (“FIFO”). The data rate of output from the hub port is not necessarily the same as the data rate of input from the node port. As a result, the data in the buffer may “run dry” if the data rate of the node port is slower than the data rate of the hub port. Conventional FC-AL protocols solve this problem by supplying inter-frame fill words when the data in the buffer supplied from the node port is low. Thus, fill words are used to maintain continuity of the data stream along the loop. Typically a sequence of six fill words is used between frames. However, hub ports and node ports may add or delete from the number of fill words present to maintain data integrity as determined by the FC-AL protocols. A continuous stream of data alone is improper under FC-AL protocols and may be a protocol violation error. The “current fill word” is a fill word defined by FC-AL protocols, and may vary depending upon loop traffic. Accordingly, the generation of fill words by the hub port which is receiving LIP F8 ordered sets from the attached node port is consistent with conventional FC-AL protocols.
Under current FC-AL protocols, a LIP F8 primitive sequence includes three consecutive identical LIP F8 ordered sets. Pursuant to the invention in an FC-AL implementation, the bypass of a node port does not occur until a LIP F8 primitive sequence has been received by the hub port. Upon receiving a first LIP F8 ordered set from an attached node port, the hub port “consumes” that LIP F8 ordered set and instead passes a current fill word to the next hub port. If the hub port receives a second consecutive identical LIP F8 ordered set, the hub port again substitutes the current fill word for transmission to the next hub port. If not, the hub port passes along that properly formatted data and returns to normal operation.
If a third consecutive identical LIP F8 ordered set is received by the hub port from the attached node port, the hub port recognizes that a LIP F8 primitive sequence has been received and that the associated node port has failed. At this point, the hub port enters a bypass mode and passes along data from the previous hub port in the loop to the next hub port. This bypass is a similar operation to when the hub port is not attached to a node port at all. In that case, the hub port is also in a bypass mode (for example, where a hub containing n hub ports is connected to some number of node ports less than n). Those hub ports which are not attached to node ports are in a bypass mode and relay information from the previous hub port to the next hub port.
A hub port which has entered bypass mode due to the reception of a LIP F8 primitive sequence stays in bypass mode until the hub port receives a LIP primitive sequence other than a LIP F8 primitive sequence from the attached node port. In an alternative embodiment, upon receiving the LIP F8 primitive sequence the hub port, before entering bypass mode, passes a third current fill word to the next hub port in the loop.
The operation of a hub port in accordance with the preferred embodiment will be explained with reference to the components as illustrated in
An incoming internal hub link 302 enters hub port 300 and is connected to the output of a previous hub port (not shown). Incoming internal hub link 302 is connected to a hub port transmit circuit 304 and an input B of a switching device, such as a multiplexer 306. Hub port transmit circuit 304 receives data from incoming internal hub link 302 and passes that data to a node port 310 through a data channel 308 after converting the data to a form usable by node port 310. Node port 310 represents a connection to an operational device or a loop segment.
Node port 310, after performing any processing proper to its functionality and compliant with appropriate network protocols (e.g., FC-AL protocols), transmits data back to hub port 300 through a data channel 312. Data channel 312 connects to a hub port receive circuit 314. Hub port receive circuit 314 converts the data into a form usable in the hub. Hub port receive circuit 314 contains a loop initialization data detect circuit 316 and a hub port output control circuit 318. In an FC-AL implementation, loop initialization data detect circuit 316 is a LIP detect circuit. A hub port output control line 320 connects hub port output control circuit 318 to a control input of multiplexer 306. Hub port receive circuit 314 is connected to an input A of multiplexer 306 by a hub port output line 322. An input B of multiplexer 306 is connected to incoming internal hub link 302. A current fill word generator 324 is connected to an input C of multiplexer 306 through a current fill word line 326. The output of multiplexer 306 is connected to an outgoing internal hub link 328. Outgoing internal hub link 328 is connected to the input of the next hub port in the hub loop (not shown).
Under ordinary operations, when hub port 300 has an attached node port 310 which is operating properly and in compliance with network protocols such that loop failure initialization sequences are not being generated, hub port output control circuit 318 causes multiplexer 306 to select input A to be output to outgoing internal hub link 328. In this way, the output of node port 310 is passed to outgoing internal hub link 328. Alternatively, if no node port 310 is attached to hub port 300, hub port 300 is in a bypass mode. In bypass mode, hub port output control circuit 318 causes multiplexer 306 to select input B to be output on outgoing internal hub link 328. In this way, the data on incoming internal hub link 302 is passed directly to outgoing internal hub link 328 through multiplexer 306.
When loop initialization data detect circuit 316 detects that the data received by hub port receive circuit 314 from node port 310 is loop failure initialization data, loop initialization data detect circuit 316 sends a fill word flag to hub port output control circuit 318. In an FC-AL implementation, loop initialization data detect circuit 316 is a LIP detect circuit, as noted above. When LIP detect circuit 316 detects that the data received by hub port receive circuit 314 from node port 310 is a LIP F8 ordered set, LIP detect circuit 316 sends a fill word flag to hub port output control circuit 318. In response, hub port output control circuit 318 causes multiplexer 306 to select input C and pass a current fill word from current fill word generator 324 to outgoing internal hub link 328. If hub port receive circuit 314 receives a second consecutive identical LIP F8 ordered set, LIP detect circuit 316 keeps the fill word flag set. Hub port output control circuit 318 maintains the selection of input C of multiplexer 306, causing a second current fill word to be sent from current fill word generator 324 to outgoing internal hub link 328. If a second consecutive identical LIP F8 ordered set is not received, LIP detect circuit 316 clears the fill word flag. Hub port output control circuit 318 sets the selection of multiplexer 306 to input A, causing the data received by hub port received circuit 314 from node port 310 to be output to outgoing internal hub link 328.
If a loop failure initialization sequence is received, loop initialization data detect circuit 316 sets a bypass flag. If the loop failure initialization sequence is not completed, loop initialization data detect circuit 316 clears the fill word flag and hub port output control circuit 318 selects input A of multiplexer 306. In response to the bypass flag, hub port output control circuit 318 changes the input selection of multiplexer 306 to input B. The selection of input B of multiplexer 306 reflects the commencement of bypass mode for hub port 300. In an alternative embodiment, the selection of input B of multiplexer 306 is timed to occur after passing a third current fill word from current fill word generator 324 to outgoing internal hub link 328. In an FC-AL implementation, if a third consecutive identical LIP F8 ordered set is received, LIP detect circuit 316 sets the bypass flag. If a third consecutive identical LIP F8 ordered set is not received, the LIP F8 ordered set received flag is cleared by LIP detect circuit 316 and hub port output control circuit 318 selects input A of multiplexer 306.
Once hub port 300 has entered bypass mode due to the reception of a loop failure initialization sequence from node port 310, hub port 300 maintains bypass mode until a recovery sequence is received by hub port receive circuit 314 from node port 310. Hub port receive circuit 314 also contains detection circuitry which detects the nature of data received by hub port receive circuit 314 (i.e., whether the data is loop failure initialization data, a recovery sequence, etc.). When a recovery sequence (e.g., three consecutive identical LIP ordered sets of the same LIP type, which are not LIP F8 ordered sets) has been detected, the bypass flag is cleared. In response, hub port output control circuit 318 sets the input selection of multiplexer 306 to input A, connecting the output of node port 310 to outgoing internal hub link 328. In an FC-AL implementation, when a LIP primitive sequence other than a LIP F8 primitive sequence is detected, the bypass flag is cleared.
In an FC-AL implementation, LIP detect circuit 316 detects if any data received from node port 310 by hub port receive circuit 314 includes LIP ordered sets. If a LIP ordered set is detected, the LIP detect circuit then determines if the LIP ordered set is a LIP F8 ordered set or not. Once hub port 300 has entered bypass mode, the LIP detect circuit is used to detect the reception of LIP ordered sets from the attached node port. When a LIP primitive sequence has been detected by the LIP detect circuit, and the received LIP primitive sequence is not a LIP F8 primitive sequence, the LIP detect circuit clears the bypass flag.
The automatic bypass of node port 310 upon detecting a loop failure initialization sequence from node port 310 conceals the occurrence of a data channel failure. The loop operation continues without the complete collapse of loop operation as seen in
The preferred embodiment has been described along with several alternative embodiments. However, variations which fall within the scope of the following claims are within the scope of the present invention. Accordingly, the present invention is not limited to the embodiment described above but only by the scope of the following claims.
Baldwin, David, Henson, Karl M., Hashemi, Hossein, Brewer, David
Patent | Priority | Assignee | Title |
7216264, | Jun 30 2000 | EMC IP HOLDING COMPANY LLC | System and method for managing storage networks and for handling errors in such a network |
7302615, | Sep 03 2002 | NEC Corporation | Method and system for analyzing loop interface failure |
7639944, | Jul 06 2005 | HUAWEI TECHNOLOGIES CO , LTD | Method for protecting cross-ring service in optical network |
7971191, | Jun 10 2004 | MICRO FOCUS LLC | System and method for analyzing a process |
8001393, | Feb 16 2007 | Hitachi, Ltd. | Storage control device |
8089864, | Jul 18 2003 | RPX Corporation | Network restoration |
Patent | Priority | Assignee | Title |
4956836, | Mar 28 1988 | PAR Microsystems Corp. | Automatic bypass system for ring type local area network |
5317198, | Jun 26 1990 | Green Wireless LLC | Optically controlled remote by-pass switch |
5436624, | Jan 20 1992 | Madge Network Limited | Communication system with monitoring means connected in parallel to signal carrying medium |
5491696, | Nov 08 1993 | Fujitsu Limited | Synchronous/asynchronous system having function of switching path upon fault |
5495580, | Oct 20 1992 | XLNT Designs, Inc. | Ring network security system with encoding of data entering a subnetwork and decoding of data leaving a subnetwork |
5522047, | Dec 15 1993 | XLNT Designs, Inc. | Graceful insertion of a tree into a ring network |
5535192, | Jan 31 1995 | CISCO TECHNOLOGY, INC , A CORPORATION OF CALIFORNIA | Serial network fault detection, isolation and restorative device |
5546378, | Jul 21 1994 | Alcatel Canada Inc | Fault tolerant FDDI wiring hub |
5581543, | Feb 27 1995 | Motorola, Inc. | Communication network and method which respond to a failed link |
5625478, | Sep 14 1995 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Optically restorable WDM ring network using simple add/drop circuitry |
5638366, | Dec 31 1991 | Mitel Networks Corporation | Data transport for internal messaging |
5638512, | Oct 20 1992 | XLNT Designs, Inc. | Ring network security system with encoding of data entering a subnetwork and decoding of data leaving the subnet work |
5638518, | Oct 24 1994 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Node loop core for implementing transmission protocol in fibre channel |
5659718, | Aug 19 1994 | XLNT Designs, Inc. | Synchronous bus and bus interface device |
5740158, | Oct 01 1993 | Hitachi, Ltd. | ATM communication system |
5754549, | Dec 05 1995 | International Business Machines Corporation | Inexpensive two-way communications switch |
5812754, | Sep 18 1996 | Hewlett Packard Enterprise Development LP | Raid system with fibre channel arbitrated loop |
5822298, | Dec 29 1995 | Fujitsu Limited | Ring transmission system for providing efficient transmission of management data |
5963555, | Sep 03 1996 | Hitachi, LTD | Router apparatus using ATM switch |
5978379, | Jan 23 1997 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Fiber channel learning bridge, learning half bridge, and protocol |
6064679, | May 01 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Hub port without jitter transfer |
6101166, | May 01 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Automatic loop segment failure isolation |
6157652, | May 01 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Hub port with constant phase |
6167026, | May 01 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Programmable error control circuit |
6289002, | May 01 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Automatic isolation in loops |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 04 2001 | Emulex Design & Manufacturing Corporation | (assignment on the face of the patent) | / | |||
Mar 15 2004 | Emulex Corporation | Emulex Design & Manufacturing Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014486 | /0291 | |
Dec 05 2013 | Emulex Design and Manufacturing Corporation | Emulex Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032087 | /0842 |
Date | Maintenance Fee Events |
Nov 30 2009 | REM: Maintenance Fee Reminder Mailed. |
Apr 25 2010 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 25 2009 | 4 years fee payment window open |
Oct 25 2009 | 6 months grace period start (w surcharge) |
Apr 25 2010 | patent expiry (for year 4) |
Apr 25 2012 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 25 2013 | 8 years fee payment window open |
Oct 25 2013 | 6 months grace period start (w surcharge) |
Apr 25 2014 | patent expiry (for year 8) |
Apr 25 2016 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 25 2017 | 12 years fee payment window open |
Oct 25 2017 | 6 months grace period start (w surcharge) |
Apr 25 2018 | patent expiry (for year 12) |
Apr 25 2020 | 2 years to revive unintentionally abandoned end. (for year 12) |