This application is related to U.S. patent application Ser. No. 10/430,491, (U.S. Publication No. US-2004-0100910-A1, published May 27, 2004), filed May 5, 2003 and titled METHODS AND DEVICES FOR EXCHANGING PEER PARAMETERS BETWEEN NETWORK DEVICES, by Desai et al., which is incorporated herein by reference for all purposes.
This invention pertains to Fibre Channel networks and the devices and methods implemented therein. More specifically, the invention pertains to devices and methods for gracefully shutting down a Fibre Channel link after learning or deciding that the link should go down.
The fiber channel standard incorporates a buffer-to-buffer flow control mechanism to avoid frame drops in the network. Many devices are not designed to work properly if frames are dropped or re-ordered when the flow of data traffic is disrupted. Therefore the recovery process is often tedious and costly. Such traffic disruption may occur in many ways, including link failure, administrative shutdown of interfaces, configuration of interfaces, etc. For a link failure physical event, frame drops are likely unavoidable. However, for administrative actions that cause a link to shut down, it may be possible to bring down the link gracefully so that frame drops or re-ordering can be avoided or reduced to acceptable levels. In the current art, however, this feature is not available and even when a network link is down as a result of a planned administrative action, the process is not graceful and many packets may be lost.
One type of fiber channel link where the problem can arise is an inter-switch link (ISL) connecting two switches. When an ISL is being brought down, associated activities may be performed in any order and generally without coordination of the two switches connected by the ISL. As a result frames may be unnecessarily dropped or re-ordered.
A further problem arises because a finite amount of time is required to inform the affected switches on a network fabric that a particular link has gone down. In the time it takes this information to reach to the relevant switches and be acted upon, the switches may forward multiple frames to the downed link. A switch on link may actually attempt to forward received frames on the downed link simply because the switch has not had ample opportunity to update its internal frame forwarding table to account for the network disruption. Further, at the time the link goes down there may be multiple frames queued in the switch buffer on the link. In an attempt to send those frames over the link, they may be dropped.
What is needed is a protocol and associated apparatus for gracefully shutting down a Fibre Channel link when it is known ahead of time that the link will be going down.
The present invention addresses this need by providing a graceful port shutdown protocol that synchronizes actions between peer switches on a link. The synchronization ensures that peers take certain actions in concert before actually bringing down the link. A specialized parameter exchange protocol may be employed for the communication between the peer switches, but this is not necessary. In some embodiments, the synchronized shutdown protocol includes the following operations: updating frame forwarding parameters to ensure that frames are no longer routed to the link, ensuring that no further frames remain queued for transmission over the link in either peer switch, and optionally clearing any ACLs or other access local settings from at least one of the peer switches. After these operations have been performed, the link may be shutdown.
One aspect of the invention pertains to a general method, implemented on a Fibre Channel switch coupled to an inter-switch link, for gracefully shutting down the inter-switch link. The method may be characterized by the following operations: (a) determining that the inter-switch link is to be shut down; (b) modifying forwarding parameters to ensure that no further frames are forwarded from the switch onto the link; (c) communicating with a peer switch on the other side of the inter-switch link to synchronize actions between the two switches on the inter-switch link; (d) ensuring that no frames remain queued on the switch for transmission on the inter-switch link; and (e) shutting down the inter-switch link. Typically, each of operations, (a)-(d) is performed prior to shutting down the link, and in many embodiments operations (a)-(d) are performed in the order presented.
In some embodiments, shutdown protocol also requires aborting and/or completing any pending changes for the inter-switch link. Examples of such changes include changes to physical settings such as the transmission speed of the link as well as logical settings such as a port channel configuration involving the link. In a preferred embodiment, this additional operation is performed after (a) and before or during (b).
The synchronizing actions may be implemented in many different ways. In one example, they involve (a) informing the peer switch that the inter-switch link is being shut down; and (b) receiving an acknowledgment from the peer switch indicating that the peer switch has taken or will take actions in preparation for shutting down the inter-switch link. In a specific embodiment, the synchronizing is performed using communications in an EPP protocol.
Modification of the forwarding parameters may include updating a forwarding table on the switch in question. If the information about the link change is required at other switches on a network (switches not on the link to be shutdown), the method may include informing other switches on a network that the inter-switch link will shut down. This is information is provided in a format intended to cause the other switches to update their forwarding tables.
Various techniques may be employed for ensuring that no frames remain queued on the switch (operation (d)). For example, the process may wait for a defined period of time to allow any queued frames to drain onto the inter-switch link. Alternatively, the method may deterministically confirm that there are no queued packets in the switch for transmission on the inter-switch link. This could take the form of a query regarding the state of the relevant queue(s).
Further, the protocol may require an indication from the peer switch that the link can be shut down. This may take the form of a message from the peer received after or while ensuring that no frames remain queued on the switch. In a specific embodiment, this is accomplished by, for example, (i) informing the peer switch that the link can be shut down; and (ii) receiving confirmation from the peer switch that it is prepared for the link to come down.
A related aspect of the invention pertains to a graceful shutdown protocol implemented on a Fibre Channel network. Such protocol may be characterized by the following sequence of operations: (a) determining that the inter-switch link is to be shut-down; (b) modifying forwarding parameters in both switches to ensure that no further frames are forwarded from the switches onto the inter-switch link; (c) sending one or more communications between the switches coupled to the link to ensure that both switches will participate in a graceful shut down protocol of the inter-switch link; (d) ensuring that no frames remain queued in at least one of the switches for transmission on the inter-switch link; (e) after (d), sending a communication to the second switch informing it that the link can be shut down; (f) receiving confirmation from the second switch that it is prepared for the inter-switch link to shut down; and (g) shutting down the inter-switch link.
Still another aspect of the invention pertains to computer program products including machine-readable media on which are stored program instructions for implementing at least some portion of the methods described above. Any of the methods of this invention may be directed, in whole or in part, by executing program instructions provided on such computer readable media. In addition, the invention pertains to various combinations of data and data structures generated and/or used as described herein.
These and other features and advantages of the present invention will be described in more detail below with reference to the associated figures.
Introduction
The graceful port shutdown protocol of this invention coordinates among various components involved in the process of administratively bringing down a link at both ends of an Inter-Switch Link (ISL) connecting two switches. Execution of the protocol avoids or reduces frame drops and/or reordering. This protocol requires peer switches to perform the various actions when bringing down an ISL in a synchronized manner. In one implementation, this protocol uses the Exchange Peer Protocol (EPP) as the underlying transport to carry the graceful port shutdown protocol frames.
Without executing the protocol of this invention, administratively bringing down a link typically involves the following local actions performed in a non-coordinated fashion:
(1) Updating the forwarding table entries to remove the link in question from the forwarding path. This makes sure that no new frames arriving at the impacted switch are sent out through the port.
(2) Cleaning up the programmed ACL entries from the affected port. This causes frames coming from the neighboring switch on the port to get dropped on ingress.
(3) Turning off the laser. This will physically bring down the link.
In the absence of a graceful port shutdown protocol, these tasks are performed in parallel by the two switches. Before the peer switch has removed its forwarding table entries and drained all packets scheduled to go out on this port, frames will continue to be received on the ISL port. If at this time, the ACL entries have been removed, these frames will be dropped on ingress (when received by this switch) because of ACL lookup failure. Similarly, if the laser is shut down before the peer switch has removed its forwarding entries and drained all packets scheduled to go out on this port, these frames will be dropped by the peer switch because of the destination port being down.
In some embodiments of the invention, a synchronized shutdown between the switches at either end of the link in question may involve the following features: (a) disallowing any further operations relevant to the settings or status of the link, (b) modifying relevant parameters to ensure that no further frames are forwarded on the link, (c) concluding that no further frames are still queued for transmission over the link, and (d) bringing down the link (e.g., turning off the relevant laser used to transmit optical data over the link).
In a specific embodiment of the invention, a shutdown protocol enforces the following sequence of actions:
(1) First the port in question is removed from the forwarding tables on both the switches. This ensures that any new frames coming in will not be routed through this port.
(2) Second the protocol then waits for a sufficient time to ensure that all the frames that are already present in the switches and have been queued to go out on this port have been drained out.
(3) Next, the ACL entries are removed from the linecards. As there are no more frames to be received on this port, it is now safe to perform this action.
(4) Finally, the link is brought down.
Two example topologies where the invention can come into play are depicted in
Now if Li5 is shut down due to user action, switches 121 and 123 become aware of this first. They will, in accordance with this invention, update their frame forwarding parameters (e.g., by performing FSPF Link State Record update) followed by new route computations. New routes are rapidly installed in switches 121 and 123 requiring that frames go back to switch 117 (since switch 123 understands that switch 117 has reachability for switch 121). This should not be a problem so long as switch 117 quickly learns the new route as well and so forwards all frames to switch 119, without sending any frames to switch 123.
There could be a transient problem existing during the time between when switch 123 updates its routing parameters and when switch 117 does likewise. Traffic taking link Li3 will travel to switch 123, be forwarded back to switch 117, which will send it back to switch 123 because its forwarding parameters have not yet been updated. Thus, a transient network loop will be created. However, as soon switch 117 can perform new route computations (or otherwise update its forwarding parameters), it will use Li2 alone to send traffic to switch 119 and the transient loop is resolved. The greatest risk in this case is that frames could be dropped if the loop is not resolved quickly. In normal routing protocols (e.g., FSPF) rapid convergence will prevent this situation.
Note that while both of the topologies described above contain alternative paths between two end nodes, the invention can be applied in any topology in which a link is about to go down. It should also be noted that the various links shown in the figures represent physical and/or logical links between adjacent switches. The invention applies regardless of whether the link in question is a physical link or a logical link.
Shutdown Protocol and Communications Format
In addition, the switch that was notified of the shutdown may now modify its parameters to ensure that no further frames are forwarded on the link. See block 207. In a conventional Fibre Channel network, this would most notably involve updating all forwarding tables in the switch in question to remove references to the link as a potential forwarding path on the network fabric. Typically, this protocol does not wait for the other switches in the network (which are not directly connected to the link that is going down) to update their forwarding parameters.
Depending on the type of link being shut down, the forwarding parameters are modified locally at the two link switches only or together with other switches on the fabric. In Fibre Channel networks, the FSPF protocol is commonly employed to propagate forwarding parameter changes across the switches on the network fabric. There may be scenarios in which the link being shut down is merely one physical component of a collection of physical links that together comprise a logical link known to other switches on the fabric. In this situation, shut down of the physical link will not constitute a complete shut down of the logical link. Therefore, it may be unnecessary to cause other switches on the fabric to update their forwarding parameters as well. The switch may also choose to inform other control plane applications that the link is going down and that they should stop sending any frames on this link. One example of such an application is a Fibre Channel zoning application.
In one embodiment, the forwarding infrastructure is modified by updating a Link State Record by one thread in FSPF. This is then notified to another thread in FSPF which performs route computation. The new route is then installed on all linecards of the switch. If appropriate for the type of link shutting down, the link state change is also flooded across the network. In one embodiment, the local switch first makes all relevant forwarding updates in all of its affected linecards before proceeding with the other steps in the protocol. It is desirable to have this information updated on all switches. In a particular embodiment, the routing protocol implemented in Fibre Channel networks (FSPF) uses reliable flooding and does not acknowledge receipt of route updates.
Next, as illustrated at a block 208, Switch 1 waits a defined period of time to ensure that all queued frames for the link in question are drained across the link. The duration of this waiting period will be architecture dependent. For example, the duration will be about 1 millisecond to 5 seconds from the time when the forwarding parameters are updated (approximately 500 milliseconds in a specific example). In an alternative implementation, a deterministic mechanism may be employed to specifically confirm that no frames remain queued on the link. For example, logic executed on the switch backplane could query to the relevant port for the status of its queue.
In the depicted embodiment, after Switch 1 waits the defined period, it informs the switch at the other end of the link (Switch 2) that the link will be going down. This is depicted in block 209. A feature of the graceful shut down described herein is synchronization of the shut down procedure between switches at the two ends of the link.
After informing the other switch on the link that the link is going down, Switch 1 waits to receive an acknowledgment from the other side before taking additional steps toward shut down. The acknowledgment can take many forms but it should indicate, at least implicitly, that the peer switch is preparing to take the necessary actions to shut down the link in concert with the notifying switch.
Upon receipt of the communication from Switch 1 that the link is going down, Switch 2 initiates a parallel sequence of operations. As shown in blocks 212, 214, and 216, Switch 2 first aborts or completes any changes relevant to the link, then modifies its forwarding parameters, and thereafter waits a defined period of time to ensure that all queued frames for the link in question are drained across the link. These operations are similar to operations 205, 207 and 208 undertaken by Switch 1.
Switch 2 may be designed or configured to conduct, at this point, certain housekeeping tasks to ensure that the link can be brought up gracefully. See optional block 218. As an example, the switch may clear out any entries in any access control lists that it maintains. Such controls may vary over the time while the link is down. Therefore, it is preferable to have all of the controls cleared out so that a fresh list can be generated when a link comes back up. In some switch designs, access control lists (ACLs) are used to deny acceptance of frames at the switch itself. In one implementation, by default, no frames are allowed to pass until appropriate entries are provided in the access control list. Therefore, if the access control list were cleared prematurely, while frames were still being forwarded over the link to the switch in question, those frames would be improperly dropped. Therefore, the housekeeping operations referenced at block 218 are performed only after the switch in question is sure that no further frames are being forwarded over the link from the switch at the end of the link.
After concluding that no frames remain queued for the link and optionally clearing any ACLs, Switch 2 has done all that it needs to do from a local perspective in preparation for the link to be shut down. So at this point, the switch informs its peer (Switch 1) that its shutdown processing is complete. See block 220.
In some embodiments, Switch 1 may be conducting its shutdown operations in parallel with Switch 2. When intermittent communications between the switches do not occur, Switch 2 does not know which stage Switch 1 has reached in the overall process. So it is possible that the communication sent at block 220 will be received at Switch 1 while Switch 1 is conducting a shutdown operation. After receiving a message from Switch 2, Switch 1 can then proceed to perform the housekeeping tasks shown in block 225.
The message sent by Switch 2 at block 220 informs Switch 1 that Switch 2 is prepared to have the link shut down, and no further communication is required. Thus, Switch 1 recognizes that there should be no further packets coming to it over the link from the other switch and that it is now safe to shut down the link.
Finally, after coordinating with the peer switch, modifying forwarding parameters, ensuring that no packets remain queued for the link and optionally clearing any ACLs, it will be appropriate to actually shut down the link. This is indicated at a block 227. In a typical embodiment, this simply means turning off a laser, which provides the transmission medium on which data is carried.
Interaction diagrams presenting details of a communication protocol between peer switches on a link to be shut down will now be described. These diagrams illustrate the use of EPP as the communication protocol employed between the two switches at opposite ends of the link. EPP (“Exchange Peer Parameters”) is a two-phase protocol in which (1) information is exchanged about peer port configurations of interest and (2) results of the exchange of information are applied to hardware and/or software of the peer ports, as needed. The first phase is referred to a “SYNC” phase and the second phase is referred to as a “COMMIT” phase. The EPP protocol may be employed for diverse purposes such as, for example, transitioning port channel configurations and negotiating ISL trunk parameters for supporting multiple VSANs. EPP is described in U.S. patent application Ser. No. 10/430,491, filed May 5, 2003, entitled, “METHODS AND DEVICES FOR EXCHANGING PEER PARAMETERS BETWEEN NETWORK DEVICES”, Publication No. US-2004-0100910-A1, published on May 27, 2004, which was previously incorporated by reference. It is important to note that EPP is but one example of a communication protocol that can be employed for this purpose. In some examples, the communication protocol need not even be a two-phase protocol; some single-phase protocols can work equally well. As an example, the existing FC SW-ILS definition in Fibre Channel can be used. FC SW-ILS is request response based protocol set with delivery acknowledgement. A new SW-ILS command can also be reserved and used to perform this operation.
In the examples that follow, the relevant communications between the two peer switches can be summarized as follows: synchronize locking of the ports on each end of the link, begin informing the forwarding infrastructure that the port is being shut down (done in a way allowing sufficient delay to drain all previously queued frames on the ports) and acknowledge that both ports are ready to have the link shut down.
For purposes of the depicted protocol there is an “originator switch” which begins the EPP protocol communications and a “target switch” which follows the EPP protocol in response to an initial communication from the originator switch. The types of EPP communications sent follows a set sequence dictated by the originator switch. Typically, the originator switch is the switch on the link that first learns that the link will be shutting down. To account for the possibility that both switches recognize that the link is shutting down, EPP uses switch WWN (Fibre Channel World Wide Name) based collision detection/resolution to deterministically define the behavior in case of a EPP cross-over. This is similar to the mechanism employed in other protocols like ELP in the Fibre Channel standard. When using a SW-ILS based protocol to implement graceful shutdown, the same collision detection/resolution strategy can be used.]
Target switch 303 then sends an EPP accept message, SW_ACC (SYNC) message 313. This effectively informs originator switch 301 that the target is prepared to go forward with the protocol. The originator responds with an ACK1 message 315, acknowledging that it has received SW_ACC message 313. Receipt of message 315 then triggers target switch 303 to take some specific actions relevant to its frame forwarding parameters. See action 317. Typically this involves informing the Fibre Channel FSPF/forwarding infrastructure that the port is being brought down. As indicated, this may involve updating forwarding table entries in the target switch. The target switch may also notify switches on links other than the link to be shut down.
In addition updating its frame forwarding parameters, target switch 303 may lock its port with respect to actions on the port. After updating the forwarding table entries, the target switch will ensure that all frames destined to go out on this port are drained. In this embodiment, this is accomplished by waiting for 500 ms. This also ensures that the frames on the originator switch have also been drained. After performing this action, it may also update its ACLs and/or take other steps toward housecleaning. Collectively, the operations at 317 correspond to operations 212-218 and 305 described above.
After switch 303 has completed modifying its forwarding parameters and completed any other internal operations as appropriate and notified any other affected switches that are not attached to the link (i.e., operation 317 is completed), it sends an EPP_COMMIT message 319 to originator switch 301. Receipt of message 319 informs the originator switch that the target switch has proceeded with modification of its forwarding parameters. Immediately upon receipt of the EPP_COMMIT message, the originator acknowledges receipt with an ACK1 message 323. This message 319 may trigger originator switch 310 to clear its ACLs and perform any other housekeeping operations. See operation 321.
After completing any appropriate actions at 321, originator switch 301 sends a SW_ACC (COMMIT) message 325 to target switch 303. This informs the target that the originator is ready for the link to shut down. Assuming that the target switch 303 is also prepared have link shut down, it simply sends an ACK1 message 327. This then effectively tells the originator that it is now safe to shut down the link.
After the ACK1 message has been received by the originator, all traffic has ceased on the link and the originator initiates the final action. Normally that means that the physical link can be shut down. See operation 329. However, as explained elsewhere herein the final action can be something else such as blocking a VSAN.
In the above procedure, note that the link remains available and possibly passes data traffic from the originator switch to the target switch during the entire period from initial notification that the link is shutting down (305) to when the originator switch sends the SW_ACC (COMMIT) message 325. Thereafter, the link no longer receives data traffic from the originator to the target. Further, the link may receive data traffic from the target to the originator up to the time when the target transmits EPP_COMMIT message 319. Thereafter no data traffic flows from the target to the originator. However, the link does not actually shut down until reaching 329. Note that the SYNC operation also serves as a lock on the port and guards it against any configuration while it is being brought down.
Application to Both Physical and Logical Links
The shutdown protocol described herein supports logical as well as physical links. Examples of supported physical links include physical links functioning as independent inter-switch links and physical links forming part of a logical port channel. Examples of supported logical links include FCIP tunnels, which behave as logical ISLs between two switches and port channels, which are an aggregation of multiple physical links or FCIP tunnels.
If less than all physical links comprising the logical link are shut down, the logical link still exists. Hence, it may be unnecessary to update forwarding decisions at any locations other than the two physical switches that straddle the link. Other switches on the fabric recognize only the logical link and not the physical link. As the logical link still exists, they need not update their forwarding parameters.
In addition to the above examples, for a trunking inter-switch link which is carrying traffic for multiple VSANs, if one or more of the VSANs is removed, the graceful port shutdown protocol can be run as part of the trunk protocol to ensure that there is no frame loss resulting from this action.
The operation depicted in
As with the exchange depicted in
After the originator switch locks its port and updates forwarding parameters as indicated as 405, it sends an EPP_SYNC message 407 to target switch 403. Receipt of this SYNC message triggers the target switch to reply with an ACK1 message 409 and then send an SW_ACC (SYNC) message 411 over the link to originator switch 401. The originator then directly responds over the link with an ACK1 message 415 acknowledging receipt of the SW_ACC (SYNC) message.
Upon receiving the acknowledgment message 415, the target switch may perform a corresponding lock of its port and modification of its forwarding parameters by, for example, notifying FSPF that a VSAN identified for removal is being blocked. See operation 417. FSPF will then update the forwarding table at target switch 403 as well as flooding the network with a notification of the forwarding update.
After target switch 403 concludes the operation equivalent to 317 in
This effectively concludes the modifications necessary to block transmission of frames for the VSAN in question from being transmitted over the link in question. However, the logic associated with the allowed VSAN list must also be updated. Thus, the depicted protocol employs a second EPP exchange for this purpose. The transition from the shut down stage to the VSAN list modification stage is indicated by an operation 431 on originator switch 401. For this purpose, originator 401 begins a second EPP exchange by sending an EPP_SYNC message 433. Again, this message is sent on the logical port on of the link associated with the control VSAN. Upon receiving EPP_SYNC 433, the target switch 403 replies with an ACK1 message 435.
Thereafter, target switch 403 sends an EPP accept message (SW_ACC (SYNC) message 437. The originator switch 401 receives this acceptance and immediately replies with an ACK1 message 439. This triggers the target switch to configure itself to remove the VSAN in question from its allowed VSAN list. See operation 441 (HWCONFIG (V)).
After completing the configuration to remove the VSAN in question from its allowed VSAN list, the target switch transmits an EPP_COMMIT message 433 to the originator switch. Upon receipt of this message, the originator replies immediately with an ACK1 message 435 and begins its own configuration to remove the VSAN in question from its allowed VSAN list. See operation 437 (HWCONFIG (VI)) on originator switch 401.
After completing its configuration of its VSAN list, switch 401 sends an SW_ACC (COMMIT) message 439 to the target switch. The target replies with an ACK1 message 451 and sends a state change notification to other components in the system. See operation 453 (“NOTIFY (VII)”) on target switch 403.
Upon receipt of the ACK1 message 451, the originator switch 401 sends its own state change notification to other appropriate components in the system. See operation 455 (“NOTIFY (VIII)”). This then effectively concludes removal of the VSAN in question from the list of allowed VSANs for the trunking E_port associated with the link in question. Note that the link can be a single physical link or a port channel comprised of multiple physical links. Note also that while this specific implementation showed use of EPP protocol exchanges to accomplish the result, many other communication protocols for exchanging peer parameters could be employed to the same effect.
A similar sequence of exchanges can be employed to transition from a trunking E_port which carries transmission for multiple VSANs (or other logical entities on a physical topology) to a non-trunking_port. This operation can also be accomplished with two EPP exchanges. The first would ensure that all data traffic was stopped on the link undergoing the transition. This is accomplished with a series of messages and local operations shown as reference numbers 405-427 in
At this point in the protocol, the target switch begins making its internal changes. First, it determines which VSANs are going down and then updates its forwarding parameters for these VSANs. See operation 467. The target switch then proceeds with the changes by waiting an appropriate length of time for any queued frames to drain onto the trunking link. If appropriate, it also updates/clears any ACLs as described above. Finally, it updates a new VSAN list on the trunk port by updating the information maintained on the port and programming any hardware as needed.
After completing the various changes collectively represented as operation 467, the target switch 403′ sends an EPP_COMMIT message 469, which is acknowledged by an ACK1 message 471 from originator switch 401′. The originator then updates its ACLs and provides a new VSAN list for its trunk port. See operation 473. From this point, the originator follows with an accept message (SW_ACC 475). When the target replies with an ACK1 message 477, the originator concludes the process
Device Implementation
Generally, the techniques of the present invention may be implemented on software and/or hardware. For example, they can be implemented in an operating system kernel, in a separate user process, in a library package bound into network applications, on a specially constructed machine, or on a network interface card. In a specific embodiment of this invention, the technique of the present invention is implemented in software such as an operating system or in an application running on an operating system.
A software or software/hardware hybrid implementation of the techniques of this invention may be implemented on a general-purpose programmable machine selectively activated or reconfigured by a computer program stored in memory. Such a programmable machine may be a network device designed to handle network traffic, such as, for example, a router or a switch, particularly a Fibre Channel switch. Such network devices may have multiple network interfaces including frame relay and ISDN interfaces, for example.
For example, the methods of this invention may be implemented in specially configured network devices such as the MDS 9000 family of switches manufactured by Cisco Systems, Inc. of San Jose, Calif. A generalized architecture for some such machines will appear from the description given below. In an alternative embodiment, the techniques of this invention may be implemented on a general-purpose network host machine such as a personal computer or workstation. Further, the invention may be at least partially implemented on a card (e.g., an interface card) for a network device or a general-purpose computing device.
Referring now to
CPU 562 may include one or more processors 563 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 563 is specially designed hardware for controlling the operations of network device 560. In a specific embodiment, a memory 561 (such as non-volatile RAM and/or ROM) also forms part of CPU 562. However, there are many different ways in which memory could be coupled to the system. Memory block 561 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.
The interfaces 568 are typically provided as interface cards (sometimes referred to as “line cards”). Generally, they control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 560. Among the interfaces that may be provided are Fibre Channel interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided, such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like. Generally, these interfaces may include ports appropriate for communication with the appropriate media. In some cases, they may also include an independent processor and, in some instances, volatile RAM. The independent processors may control such communications intensive tasks as packet switching, media control and management. By providing separate processors for the communications intensive tasks, these interfaces allow the master microprocessor 562 to efficiently perform routing computations, network diagnostics, security functions, etc.
Although the system shown in
Regardless of the network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 565) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.
Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media; semiconductor memory media; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
While the invention has been particularly shown and described with reference to specific embodiments thereof, it will be understood by those skilled in the art that changes in the form and details of the disclosed embodiments may be made without departing from the spirit or scope of the invention. For instance, while the above protocol has been described for inter-switch link applications, it may be easily extended to work with devices attached to fabric ports if such protocol is supported by the respective device vendors. Further the shutdown protocol of this invention may be extended to network technologies other than Fibre Channel. Considering these and other variations, the scope of the invention should be determined with reference to the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5428471 | McDermott | Jun 1995 | A |
5506838 | Flanagan | Apr 1996 | A |
5617421 | Chin et al. | Apr 1997 | A |
5675741 | Aggarwal et al. | Oct 1997 | A |
5682479 | Newhall et al. | Oct 1997 | A |
5708659 | Rostoker et al. | Jan 1998 | A |
5740159 | Ahmad et al. | Apr 1998 | A |
5740171 | Mazzola et al. | Apr 1998 | A |
5742604 | Edsall et al. | Apr 1998 | A |
5764636 | Edsall | Jun 1998 | A |
5809285 | Hilland | Sep 1998 | A |
5818603 | Motoyama | Oct 1998 | A |
5819112 | Kusters | Oct 1998 | A |
5862125 | Russ | Jan 1999 | A |
5959972 | Hamami | Sep 1999 | A |
5959990 | Frantz et al. | Sep 1999 | A |
5964841 | Rekhter | Oct 1999 | A |
5999930 | Wolff | Dec 1999 | A |
6035105 | McCloghrie et al. | Mar 2000 | A |
6046985 | Aldred | Apr 2000 | A |
6101497 | Ofek | Aug 2000 | A |
6160813 | Banks et al. | Dec 2000 | A |
6188668 | Brewer et al. | Feb 2001 | B1 |
6188694 | Fine et al. | Feb 2001 | B1 |
6202135 | Kedem et al. | Mar 2001 | B1 |
6205488 | Casey et al. | Mar 2001 | B1 |
6208623 | Rochberger et al. | Mar 2001 | B1 |
6208649 | Kloth | Mar 2001 | B1 |
6209059 | Ofer et al. | Mar 2001 | B1 |
6219699 | McCloghrie et al. | Apr 2001 | B1 |
6226771 | Hilla et al. | May 2001 | B1 |
6243358 | Monin | Jun 2001 | B1 |
6260120 | Blumenau et al. | Jul 2001 | B1 |
6262977 | Seaman et al. | Jul 2001 | B1 |
6266705 | Ullum et al. | Jul 2001 | B1 |
6269381 | St. Pierre et al. | Jul 2001 | B1 |
6269431 | Dunham | Jul 2001 | B1 |
6295296 | Tappan | Sep 2001 | B1 |
6295575 | Blumenau et al. | Sep 2001 | B1 |
6330614 | Aggarwal et al. | Dec 2001 | B1 |
6337861 | Rosen | Jan 2002 | B1 |
6388995 | Gai et al. | May 2002 | B1 |
6408001 | Chuah et al. | Jun 2002 | B1 |
6426952 | Francis et al. | Jul 2002 | B1 |
6438612 | Ylonen et al. | Aug 2002 | B1 |
6473421 | Tappan | Oct 2002 | B1 |
6493349 | Casey | Dec 2002 | B1 |
6529963 | Fredin et al. | Mar 2003 | B1 |
6532212 | Soloway et al. | Mar 2003 | B1 |
6597663 | Rekhter | Jul 2003 | B1 |
6604407 | Kano | Aug 2003 | B2 |
6643287 | Callon et al. | Nov 2003 | B1 |
6661773 | Pelissier et al. | Dec 2003 | B1 |
6674760 | Walrand et al. | Jan 2004 | B1 |
6728220 | Behzadi | Apr 2004 | B2 |
6728848 | Tamura et al. | Apr 2004 | B2 |
6766482 | Yip et al. | Jul 2004 | B1 |
6775230 | Watanabe et al. | Aug 2004 | B1 |
6804776 | Lothberg et al. | Oct 2004 | B1 |
6848007 | Reynolds et al. | Jan 2005 | B1 |
6859435 | Lee et al. | Feb 2005 | B1 |
6879560 | Cahn | Apr 2005 | B1 |
6904053 | Berman | Jun 2005 | B1 |
6915358 | Horton et al. | Jul 2005 | B2 |
6920133 | Boodaghians | Jul 2005 | B1 |
6920153 | Ellis et al. | Jul 2005 | B2 |
6920154 | Achler | Jul 2005 | B1 |
6947379 | Gleichauf et al. | Sep 2005 | B1 |
6959151 | Cotter et al. | Oct 2005 | B1 |
6975589 | Luft et al. | Dec 2005 | B2 |
6985490 | Czeiger et al. | Jan 2006 | B2 |
7006525 | Jha | Feb 2006 | B1 |
7026288 | Judice et al. | Apr 2006 | B2 |
7027406 | Shabtay et al. | Apr 2006 | B1 |
7046679 | Sampath | May 2006 | B2 |
7050392 | Valdevit | May 2006 | B2 |
7061858 | Di Benedetto et al. | Jun 2006 | B1 |
7072298 | Paul et al. | Jul 2006 | B2 |
7079544 | Wakayama et al. | Jul 2006 | B2 |
7082140 | Hass | Jul 2006 | B1 |
7085846 | Jenne et al. | Aug 2006 | B2 |
7155494 | Czeiger et al. | Dec 2006 | B2 |
7161935 | Alonso et al. | Jan 2007 | B2 |
7206288 | Cometto et al. | Apr 2007 | B2 |
7221652 | Singh et al. | May 2007 | B1 |
7275103 | Thrasher et al. | Sep 2007 | B1 |
7301898 | Martin et al. | Nov 2007 | B1 |
7302494 | Hayashi et al. | Nov 2007 | B2 |
7319669 | Kunz et al. | Jan 2008 | B1 |
7328260 | Muthiyan et al. | Feb 2008 | B1 |
7330892 | Ibrahim | Feb 2008 | B2 |
7376755 | Pandya | May 2008 | B2 |
7443799 | Varanasi et al. | Oct 2008 | B2 |
7447224 | Dropps | Nov 2008 | B2 |
20010049739 | Wakayama | Dec 2001 | A1 |
20020009081 | Sampath et al. | Jan 2002 | A1 |
20020075873 | Lindhorst-Ko et al. | Jun 2002 | A1 |
20020085493 | Pekkala et al. | Jul 2002 | A1 |
20020101868 | Clear et al. | Aug 2002 | A1 |
20020110125 | Banks et al. | Aug 2002 | A1 |
20020133740 | Oldfield et al. | Sep 2002 | A1 |
20020150039 | Valdevit | Oct 2002 | A1 |
20020152338 | Elliott et al. | Oct 2002 | A1 |
20020156918 | Valdevit et al. | Oct 2002 | A1 |
20020156924 | Czeiger et al. | Oct 2002 | A1 |
20020159463 | Wang | Oct 2002 | A1 |
20020176434 | Yu et al. | Nov 2002 | A1 |
20020188754 | Foster et al. | Dec 2002 | A1 |
20030012204 | Czeiger et al. | Jan 2003 | A1 |
20030016624 | Bare | Jan 2003 | A1 |
20030101239 | Ishizaki | May 2003 | A1 |
20030107987 | Kinstler | Jun 2003 | A1 |
20030118053 | Gai et al. | Jun 2003 | A1 |
20030145116 | Moroney et al. | Jul 2003 | A1 |
20030149848 | Ibrahim et al. | Aug 2003 | A1 |
20030163727 | Hammons et al. | Aug 2003 | A1 |
20030189929 | Matsuzaki et al. | Oct 2003 | A1 |
20030198247 | Gardner et al. | Oct 2003 | A1 |
20030225875 | Revanuru et al. | Dec 2003 | A1 |
20040100910 | Desai et al. | May 2004 | A1 |
20040151174 | Del Signore et al. | Aug 2004 | A1 |
20040151188 | Maveli et al. | Aug 2004 | A1 |
20040230787 | Blumenau et al. | Nov 2004 | A1 |
20040233921 | Krieg et al. | Nov 2004 | A1 |
20050018606 | Dropps | Jan 2005 | A1 |
20050018663 | Dropps et al. | Jan 2005 | A1 |
20050018701 | Dropps | Jan 2005 | A1 |
20050036499 | Dutt et al. | Feb 2005 | A1 |
20050080903 | Valenci | Apr 2005 | A1 |
20050088969 | Carlsen et al. | Apr 2005 | A1 |
20050108444 | Flauaus | May 2005 | A1 |
20050117562 | Wrenn | Jun 2005 | A1 |
20050177634 | Scudder et al. | Aug 2005 | A1 |
20050249123 | Finn | Nov 2005 | A1 |
20050267965 | Heller | Dec 2005 | A1 |
20060034302 | Peterson | Feb 2006 | A1 |
20060038263 | Eigner et al. | Feb 2006 | A1 |
20060092932 | Ghosh et al. | May 2006 | A1 |
20060117212 | Meyer et al. | Jun 2006 | A1 |
20060153186 | Bector et al. | Jul 2006 | A1 |
20060159081 | Dropps | Jul 2006 | A1 |
20070153816 | Cometto et al. | Jul 2007 | A1 |
20080028096 | Henderson et al. | Jan 2008 | A1 |
20080316942 | Desai et al. | Dec 2008 | A1 |
Number | Date | Country |
---|---|---|
0772121 | May 1997 | EP |
1134938 | Sep 2001 | EP |
1187406 | Mar 2002 | EP |
2-209044 | Aug 1990 | JP |
10-293633 | Nov 1998 | JP |
2000-22699 | Feb 2000 | JP |
2001-154929 | Jun 2001 | JP |
2001-320420 | Nov 2001 | JP |
2001-345865 | Dec 2001 | JP |
WO 0031925 | Jun 2000 | WO |
WO0119027 | Mar 2001 | WO |
WO 0195565 | Dec 2001 | WO |
WO 02071224 | Dec 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20060087963 A1 | Apr 2006 | US |