Fiber channel learning bridge, learning half bridge, and protocol
First Claim
1. A half bridge apparatus for use in a full bridge for operation in a Fibre Channel Arbitrated Loop network, comprising:
- a memory for storing a forwarding table; and
means for switching coupled between a local Fibre Channel Arbitrated Loop segment and a remote Fibre Channel Arbitrated Loop segment for coupling to a remote half bridge, said means for switching being coupled to said memory and having a local return Fibre Channel Arbitrated Loop Segment which can be switched by said means for switching so as to be coupled to said local Fibre Channel Arbitrated Loop segment thereby making said local Fibre Channel Arbitrated Loop segment and said local segment return Fibre Channel Arbitrated Loop Segment a complete Fibre Channel Arbitrated Loop through said switching means, said means for switching for monitoring traffic on said Fibre Channel Arbitrated Loop segments and the destination addresses of OPN primitives in said traffic and drawing conclusions as to the locations of nodes having the destination addresses within OPN primitives in said traffic from the sequence of FC-AL primitives that arrive on said local and remote Fibre Channel Arbitrated Loop segments, and for storing data in said memory that indicates whether or not a node is on said local Fibre Channel Arbitrated Loop segment when a conclusion regarding the location of said node is reached, and for using said data in said forwarding table in memory to control switching to couple said local return Fibre Channel Arbitrated Loop Segment to said local Fibre Channel Arbitrated Loop segment and routing traffic therethrough in appropriate circumstances where both a source node and destination node of a loop tenancy are located on said local Fibre Channel Arbitrated Loop segment, and for automatically replacing the source addresses of half duplex OPNs with a selected one of either a hexadecimal F7 or hexadecimal F8 address;
and wherein FC-AL means Fibre Channel Arbitrated Loop and wherein an OPN primitive is a Fibre Channel Arbitrated Loop primitive which is defined in the Fibre Channel Arbitrated Loop standards and is output by an FC-AL node indicating the node is ready for frame transmission to a specified destination address embedded in the third character of the primitive signal, and optionally having a source address embedded in the fourth character of the primitive signal if the node is also ready for frame reception.
10 Assignments
0 Petitions
Accused Products
Abstract
A learning half bridge and bridge for a Fibre Channel Arbitrated Loop and switching protocol. A half bridge can be coupled to a local loop segment and a remote loop segment. The half bridge includes transmit and receive ports implementing predetermined switching and conflict resolution rules and a memory storing a forwarding table. Typically the switching rules are implemented using state machines. The state machines implement a switching protocol that controls transitions between states which control switching connections, writing of data to memory and reading of data from memory and preemption of conflicting OPN primitives. Each half bridge includes a local return segment that can be switched by the state machines to bypass the remote loop segment if both the source node and destination node are on the local loop segment so as to make the local loop segment a complete Fibre Channel Arbitrated Loop. Each half bridge learns the locations of nodes by watching the direction of flow, the loop segment from which certain primitives arrived and sequence of OPN, RRDY and CLS primitives propagating on the loop segments and records data in the forwarding table in memory reflecting the locations of nodes about which conclusions have been drawn in accordance with learning rules. A learning bridge is comprised of two half bridges having their remote loop segments cross coupled. Full bridges can be combined with accelerated or nonaccelerated hubs. Conflicting OPNs are preempted using a highest priority address rule.
-
Citations
10 Claims
-
1. A half bridge apparatus for use in a full bridge for operation in a Fibre Channel Arbitrated Loop network, comprising:
-
a memory for storing a forwarding table; and means for switching coupled between a local Fibre Channel Arbitrated Loop segment and a remote Fibre Channel Arbitrated Loop segment for coupling to a remote half bridge, said means for switching being coupled to said memory and having a local return Fibre Channel Arbitrated Loop Segment which can be switched by said means for switching so as to be coupled to said local Fibre Channel Arbitrated Loop segment thereby making said local Fibre Channel Arbitrated Loop segment and said local segment return Fibre Channel Arbitrated Loop Segment a complete Fibre Channel Arbitrated Loop through said switching means, said means for switching for monitoring traffic on said Fibre Channel Arbitrated Loop segments and the destination addresses of OPN primitives in said traffic and drawing conclusions as to the locations of nodes having the destination addresses within OPN primitives in said traffic from the sequence of FC-AL primitives that arrive on said local and remote Fibre Channel Arbitrated Loop segments, and for storing data in said memory that indicates whether or not a node is on said local Fibre Channel Arbitrated Loop segment when a conclusion regarding the location of said node is reached, and for using said data in said forwarding table in memory to control switching to couple said local return Fibre Channel Arbitrated Loop Segment to said local Fibre Channel Arbitrated Loop segment and routing traffic therethrough in appropriate circumstances where both a source node and destination node of a loop tenancy are located on said local Fibre Channel Arbitrated Loop segment, and for automatically replacing the source addresses of half duplex OPNs with a selected one of either a hexadecimal F7 or hexadecimal F8 address; and wherein FC-AL means Fibre Channel Arbitrated Loop and wherein an OPN primitive is a Fibre Channel Arbitrated Loop primitive which is defined in the Fibre Channel Arbitrated Loop standards and is output by an FC-AL node indicating the node is ready for frame transmission to a specified destination address embedded in the third character of the primitive signal, and optionally having a source address embedded in the fourth character of the primitive signal if the node is also ready for frame reception.
-
-
2. A bridge for a Fibre Channel Arbitrated Loop, comprising:
-
a first half bridge comprising a transmit port, a receive port and a memory coupled to said transmit and receive ports for storing data of a forwarding table, said transmit and receive ports for coupling to a local FC-AL loop segment and to a local FC-AL return segment; a second half bridge comprising a transmit port, a receive port and a memory coupled to said transmit and receive ports for storing data of a forwarding table, said transmit and receive ports for coupling to a local FC-AL loop segment and to a local FC-AL return segment; and wherein said first and second half bridges each have a remote transmit FC-AL output and a remote receive FC-AL input for coupling to FC-AL remote segments which couple the receive port of said first half bridge to the transmit port of said second half bridge and couple the receive port of said second half bridge to the transmit port of said first half bridge; and wherein FC-AL means Fibre Channel Arbitrated Loop.
-
-
3. A transmit port for a half bridge for use in a full bridge in a Fibre Channel Arbitrated Loop hereafter referred to as FC-AL, environment, comprising:
-
a local transmit port output; an Insertion/Substitution /Deletion FIFO Circuit having a data input and a data output and having a plurality of control signal inputs; a transmit Port State Machine coupled to said plurality of control signal inputs of said Insertion/Substitution /Deletion FIFO Circuit; a remote receive port input; an FC-AL local segment return input; a switch having one output and first and second inputs, said output coupled to said data input of said Insertion/Substitution/Deletion FIFO, said first input coupled to said FC-AL local segment return input, said second input coupled to said remote receive port input, and having a switch control input coupled to said transmit Port State Machine for receiving a signal which controls whether said first or second input is coupled to said output; a latch having a data input coupled to said remote receive port input and having a data output coupled to said data input of said Insertion/Substitution /Deletion FIFO Circuit, and having a data output for coupling to an address input of a memory; a Remote Decode Circuit having an input coupled to said remote receive port input and having a plurality of control outputs coupled to said transmit Port State Machine; and a Local Decode Circuit having an input coupled to said FC-AL local segment return input and having a plurality of control outputs coupled to said transmit Port State Machine.
-
-
4. A receive port for a half bridge for use in a full bridge in a Fibre Channel Arbitrated Loop, hereafter referred to as FC-AL, network, comprising:
-
a remote transmit port output; an Insertion/Substitution /Deletion FIFO Circuit having a data input and a data output and having a plurality of control signal inputs; an receive Port State Machine coupled to said plurality of control signal inputs of said Insertion/Substitution/Deletion FIFO Circuit; a local receive port input; an FC-AL local segment return input; a switch having one input and first and second outputs, said input coupled to said data output of said Insertion/Substitution/Deletion FIFO, said first output coupled to said FC-AL local segment return input, said second output coupled to said remote transmit port input, and having a switch control input coupled to said receive Port State Machine for receiving a signal which controls whether said first or second output is coupled to said input; a latch having a data input coupled to said local receive port input and having a data output coupled to said data input of said Insertion/Substitution/Deletion FIFO Circuit, and having a data output for coupling to an address input of a memory; and a Decode Circuit having an input coupled to said local receive port input and having a plurality of control outputs coupled to said receive Port State Machine.
-
-
5. A half bridge apparatus for use in a full bridge in a Fibre Channel Arbitrated Loop computer network, said half bridge for bridging loop traffic communications between segments of a Fibre Channel Arbitrated Loop, hereafter referred to as FC-AL, network comprising at least two loop segments each of which is coupled to one or more nodes, each said node having a unique address which is a destination address when said node is to receive loop traffic communications and which is a source address when said node transmits loop traffic communications, comprising:
-
a transmit port means for receiving Fibre Channel Arbitrated Loop traffic at either a first remote traffic input for coupling to a remote FC-AL loop segment or a second local bypass input for coupling to an FC-AL local segment return, and selectively connecting said loop traffic from either said first remote traffic input or said second local bypass input to a third local loop output for coupling to a local FC-AL segment, and for activating one or more of a first set of control signals and for receiving one or more of a second set of control signals and making transitions to appropriate switching states and activating predetermined control signals in response to activations of predetermined ones of said first and second sets of control signals in accordance with predetermined state transition and switching rules, and wherein said loop traffic includes OPN primitives which, are defined in the Fibre Channel Arbitrated Loop national standards and is output by an FC-AL node indicating the node is ready for frame transmission to a specified destination address embedded in the third character of the primitive signal, and optionally having a source address embedded in the fourth character of the primitive signal if the node is also ready for frame reception, said OPN primitive being transmitted in order to establish said loop tenancy, said transmit port means having an address output port, and also for storing the destination address of each OPN primitive received by said transmit port means and driving the lines of an address bus coupled to said address output port with said stored destination address each time an OPN primitive is received by said transmit port means; a multiplexer having a first address input coupled to said address output of said transmit port means by a first address bus, and having a second address input for coupling to a second address bus, and having an address output, and having a switch control input for receiving a switch control signal controlling which of the addresses on said first or second address buses are coupled to said address output; a memory having a plurality of storage locations, each said storage location being capable of storing at least one bit of data, at least some of said plurality of storage locations being mapped on a one for one basis to all possible destination addresses for nodes on said Fibre Channel Arbitrated Loop network, said memory having an address port coupled to said address output of said multiplexer and having a data port coupled to a data bus, and having read and write control inputs for receiving read and write control signals, said memory for placing the contents of whatever storage location is mapped to the address on said address bus on said data bus whenever said read and write control signals indicate a read is desired, and for setting the contents of whatever storage location is mapped to the address on said address bus to logic 1 or logic 0 appropriately in accordance with said read and write control signals; a receive port means coupled to said second address input of said multiplexer via said second address bus, and coupled to said memory via said data bus and coupled to said read and write control inputs of said memory and coupled to said one or more control signals of said first set of control signals generated by said transmit port means, said receive port means having a local receive port for receiving FC-AL traffic from a local FC-AL loop segment, and having a local bypass output for coupling to an FC-AL local segment return, and having a remote transmit output for coupling to a remote FC-AL loop segment, said receive port means for receiving loop traffic at said local receive port and selectively switching said loop traffic to either said local bypass output or said remote transmit output and for activating predetermined ones of said second set of control signals and said read and write control signals in accordance with activation of predetermined ones of said first set of control signals and in accordance with predetermined state transition and switching rules for said receive port means, said receive port means also for storing the source address of any OPN primitive received at said local receive port in a latch and automatically converting any half duplex OPN primitive that contains the destination address in both the third and fourth characters of the primitive signal into a pseudo full duplex OPN primitive by substituting a selected one of either hex F7 or hex F8 in said latch for the fourth character of said OPN primitive if a half duplex OPN is detected and for driving any stored address in said latch onto said second address bus and for activating said switch control signal to control switching by said multiplexer under predetermined conditions in accordance with activations of predetermined ones of said first and second set of control signals and in accordance with said state transition and switching rules, said receive port means also for receiving data output from said memory on said data bus and using said data in conjunction with the states of control signals in said first and second set of control signals to switch so as to control the flow of FC-AL traffic between said local receive input and said local bypass output and said remote transmit output in accordance with said state transition and switching rules.
-
-
6. A Fibre Channel Arbitrated Loop hereafter referred to as FC-AL, network including a bridge, comprising:
-
a local loop segment for carrying FC-AL traffic and having a plurality of nodes thereon and having first and second ends; a remote loop segment for carrying FC-AL traffic and having a plurality of nodes thereon and having first and second ends; a first half bridge having a transmit port coupled to said first end of said local loop segment and an receive port coupled to said second end of said local loop segment and having a local segment return data path coupling said receive port to said transmit port, said transmit port having a Remote receive Port, and said receive port having a Remote transmit Port; a second half bridge having a transmit port coupled to said first end of said remote loop segment and an receive port coupled to said second end of said remote loop segment and having a local segment return data path coupling said receive port to said transmit port, said transmit port having a Remote receive Port which is coupled to said Remote transmit Port of said left half bridge by a first FC-AL data path, and said receive port having a Remote transmit Port coupled to said Remote receive Port of said left half bridge by a second FC-AL data path; and wherein each of said first and second half bridges includes circuitry to learn the locations of the nodes on said local and remote loop segments by monitoring FC-AL traffic and destination addresses included in OPN primitives in said FC-AL traffic on said loop segments and data paths to which each bridge is coupled which are transmitted by FC-AL nodes which desire to open a loop tenancy with the destination node identified by a destination address which comprises the third character of said OPN primitive, and drawing conclusions from the sequence of FC-AL primitives and data frames that arrive in said FC-AL traffic and from the loop segments or data paths on which various primitives or data frames were seen in sequence, and for switching FC-AL traffic through said local segment return data paths whenever a half bridge knows both the source and destination nodes are on the loop segment to which the half bridge is coupled.
-
-
7. A full bridge for connecting loop segments of a Fibre Channel Arbitrated Loop, hereafter referred to as FC-AL, comprising:
-
a first half bridge having local transmit and local receive connectors designed to couple to a first segment of a Fibre Channel Arbitrated Loop, and having a transmit port having an output coupled to said local transmit connector and having a receive port having an input coupled to said local receive connector, said transmit port also having a bypass input coupled to a local return segment and a remote receive input for coupling to a second segment of a Fibre Channel Arbitrated Loop, and said receive port also having a bypass output coupled to said local return segment, and a remote transmit output for coupling to a third segment of a Fibre Channel Arbitrated Loop; a second half bridge having local transmit and local receive connectors designed to couple to a fourth segment of a Fibre Channel Arbitrated Loop, and having a transmit port having a transmit output coupled to said local transmit connector and having a receive port having an input coupled to said local receive connector, said transmit port also having a bypass input coupled to a local return segment and a remote receive input for coupling to said third segment of a Fibre Channel Arbitrated Loop, and said receive port also having a bypass output coupled to said local return segment and a remote transmit output for coupling to said second segment of a Fibre Channel Arbitrated Loop; and wherein each said half bridge comprises; a memory for storing a forwarding table coupled to said receive port and said transmit port; and circuitry in each said receive port and transmit port coupled to said memory and coupled to selected inputs and outputs of said transmit and receive ports, said circuitry for selectively switching connections within said receive port and said transmit port such that said local return segment is coupled local receive connector of said receive port and to said local transmit connector of said transmit port so as to make a complete loop with whatever loop segment is coupled to said local transmit connector of said transmit port and said local receive connector of said port when Fibre Channel Arbitrated Loop traffic is between a source node and a destination node which are both on the local loop segment of a Fibre Channel Arbitrated Loop coupled to said local transmit connector of said transmit port and the local receive connector of said receive port thereby bypassing the other half bridge, said circuitry also for monitoring Fibre Channel Arbitrated Loop traffic arriving at inputs of said receive port and transmit port and the destination addresses of OPN primitives within said traffic, said OPN primitives being primitive signals defined in the Fibre Channel Arbitrated Loop national standards which are transmitted by an FC-AL node which wishes to establish a loop tenancy with another FC-AL node identified by a destination address embedded in the third character of said OPN primitive, and learning the locations of various nodes on said FC-AL network by drawing conclusions from the type and sequence and arrival ports of FC-AL primitives and data frames that arrive and the destination addresses and for storing data in said memory that memorializes said learning by indicating whether or not a node defined by a destination address in an OPN primitive is known to be on said local loop segment coupled between said local transmit connector of said transmit port and said local receive connector of said receive port, and for using said data in said memory to control switching of traffic through said local segment returns when appropriate to reduce latency delays by bypassing nodes on loop segments through traffic does not need to pass to reach the destination node.
-
-
8. A method of forwarding traffic across a bridge in a Fibre Channel Arbitrated Loop, hereafter referred to as FC-AL, network, said bridge comprising a first half bridge and a second half bridge coupled to said first half bridge by a remote loop segment comprised of transmit and receive loop segments, each half bridge also being coupled to a local loop segment and having a local segment return which can be used to keep traffic between nodes on said local loop segment local by bypassing the other half bridge, comprising:
-
in each half bridge, receiving OPN primitives from nodes located on said local loop segment and OPN primitives arriving from the other half bridge via said remote loop segment, said OPN primitives being primitive signals defined in the Fibre Channel Arbitrated Loop national standards which are transmitted by nodes on said FC-AL network which want to establish loop tenancies with another FC-AL node which is identified by a destination address embedded in the third character of said OPN primitive; resolving any conflicting OPN situations by preempting one of said OPN primitives; and forwarding the OPN primitive to the destination node on the remote loop segment if the location of the destination node is known to be on the local loop of the other half bridge or its location is unknown or forwarding the OPN primitive onto the local loop segment to which the half bridge which received it is coupled via the local segment return if the destination node is known to be on the local loop segment of the half bridge that received the OPN.
-
-
9. A method of forwarding data between nodes on a Fibre Channel Arbitrated Loop divided into first and second local loop segments coupled by a bridge comprised of a first half bridge coupled to said first local loop segment and a second half bridge coupled to said first half bridge and coupled to said second local loop segment, each half bridge having a local return segment which can be switched by said half bridge so as to be coupled to the local loop segment coupled to that bridge so as to convert each local loop segment into a complete Fibre Channel Arbitrated Loop, each local loop segment having a plurality of nodes each of which has a unique address which is a destination address when data is being transmitted to that node and which is a source address when data is being transmitted from that node to some other node, comprising:
-
watching propagation of OPN, RRDY and CLS primitives between said first and second local loop segments and drawing conclusions as to on which of said first and second local loop segments various destination addresses and source addresses the locations of which have been learned can be found by examining which primitives arrived from which local loop segment and in what order and recording data in a forwarding table which indicates on which local loop segment nodes with destination addresses whose locations have been learned can be found, and wherein said OPN, RRDY and CLS primitives are primitive signals defined in the Fibre Channel Arbitrated Loop national standards, and wherein said OPN primitive is a primitive which is transmitted by a node which is ready for frame transmission and wishes to open a loop tenancy with a destination node which is identified by a destination address embedded in the third character of said OPN primitive, and wherein said RRDY is a primitive which is transmitted from an FC-AL node indicating that a single frame of data was received at the node which transmitted the RRDY and that the node has buffer capacity for further frame reception, and wherein said CLS prmitive is a primitive transmitted by an FC-AL node in a loop tenancy indicating that the current loop tenancy is to be terminated; switching said local return segments in said first half bridge appropriately such that when both the source address and destination address of a transaction are on the first local loop segment, said local return segment of said first half bridge is coupled to said first local loop segment so as to convert it to a complete Fibre Channel Arbitrated Loop; switching said local return segments in said second half bridge appropriately such that when both the source address and destination address of a transaction are on the second local loop segment, said local return segment of said second half bridge is coupled to said second local loop segment so as to convert it to a complete Fibre Channel Arbitrated Loop.
-
-
10. A learning bridge for forwarding data and primitives in a Fibre Channel Arbitrated Loop, hereafter sometimes referred to by selectively coupling first and second local loop segments which, if coupled together, form a single Fibre Channel Arbitrated loop, said bridge comprised of a first half bridge coupled to said first local loop segment and a second half bridge coupled to said first half bridge and coupled to said second local loop segment, each half bridge having a local return segment which can be switched by said half bridge so as to be coupled to the local loop segment coupled to that half bridge so as to convert each local loop segment into a complete Fibre Channel Arbitrated Loop, each local loop segment having one or more nodes thereon each of which has a unique address which is a destination address when data is being transmitted to that node and which is a source address when data is being transmitted from that node to some other node, said learning bridge further comprising switching circuitry for learning the locations of the destination addresses of nodes on said first and second local loop segments by watching OPN, RRDY and CLS primitives propagating between said first and second local loop segments and recording data in a forwarding table which indicates whether each destination address whose location has been learned is on said first local loop segment or said second local loop segment, said switching circuitry also for drawing conclusions as to the locations of nodes having particular source addresses by watching primitive traffic on said first and second local loop segments and switching said local return segments appropriately to make said first local loop segment a complete Fibre Channel Arbitrated Loop when said source address and destination address are both located on said first local loop segment, and for switching said local return segments appropriately to make said second local loop segment a complete Fibre Channel Arbitrated Loop when said source address and destination address are both located on said second local loop segment, and wherein said OPN, RRDY and CLS primitives are primitive signals defined in the Fibre Channel Arbitrated Loop national standards, and wherein said OPN primitive is a primitive which is transmitted by a node which is ready for frame transmission and wishes to open a loop tenancy with a destination node which is identified by a destination address embedded in the third character of said OPN primitive, and wherein said RRDY is a primitive which is transmitted from an FC-AL node indicating that a single frame of data was received at the node which transmitted the RRDY and that the node has buffer capacity for further frame reception, and wherein said CLS prmitive is a primitive transmitted by an FC-AL node in a loop tenancy indicating that the current loop tenancy is to be terminated.
Specification