Patent Publication Number: US-8116330-B2

Title: Bridge apparatus and methods for coupling multiple non-fibre channel devices to a fibre channel arbitrated loop

Description:
BACKGROUND 
     1. Field of the Invention 
     The invention relates generally to Fibre Channel environments and more specifically relates to a bridge apparatus and methods for interconnecting a plurality of non-Fibre Channel devices to a Fibre Channel arbitrated loop (FC-AL) through a bridge device. 
     2. Discussion of Related Art 
     Storage systems have evolved from utilizing bus parallel bus connections with host systems to high speed serial communication structures and protocols. Serial communication structures and protocols advantageously provide high-speed combined with lower cost cabling and longer distance cabling restrictions while further providing improved noise immunity as compared with costly parallel bus structure cabling. In particular, Fibre Channel media and protocols utilizing fiber optic communication media have been popular for some time. The fiber optic communication media provided high speed and substantial noise immunity as compared to any electrical coupling (parallel or serial). Fibre Channel standards are well known to those of ordinary skill in the art and documented standards for various aspects of the Fibre Channel architecture are readily available at sites such as www.t11.org. 
     Serial attached SCSI (SAS) and serial advanced technology attachment (SATA) communication protocols have largely supplanted Fibre Channel as the preferred media and protocols for coupling computing systems to storage devices in high performance storage area networks. SAS and SATA provide substantially lower cost alternatives to older Fibre Channel techniques while maintaining similar performance levels. Thus SAS and SATA storage devices are far more common and cost effective at present as compared to Fibre Channel storage devices. 
     In some storage applications where older, legacy, storage networks utilized Fibre Channel as the preferred coupling for high-performance storage networks, users may have substantial investment in the host bus adapters and other related storage network appliances used to couple host systems to the Fibre Channel storage network. Though SAS and SATA storage devices are relatively inexpensive, it is difficult in such legacy environments to justify the expense of replacing the entire Fibre Channel communication infrastructure (i.e., host bus adapters, fiber optic cabling, Fibre Channel network appliances, etc.) merely for the savings of lower cost storage devices. Some prior developments have therefore provided bridge devices for coupling SAS and SATA storage devices to a Fibre Channel network. 
     In Fibre Channel connectivity, one popular structure/topology is referred to as a Fibre Channel arbitrated loop (FC-AL). In such a topology, all devices are coupled in a ring or loop configuration such that information is passed from device to device until the device particularly addressed by a transaction receives the transactions and processes them. Typically in such a topology a Fibre Channel (FC) host is assigned a static reserved address (typically an address of zero) on the arbitrated loop. Such an FC host acts as a system agent to enable or bypass individual devices utilizing loop port enable (LPE) and loop port bypass (LPB) FC primitive sequences. A device that has been bypassed in the loop topology and does not participate in the transactions exchanged over the loop topology. Rather, such a bypassed device, though physically resident in the loop topology, is logically passive and ignores most Fibre Channel transactions. 
     In a typical FC-AL topology, each device on the loop represents a single target arbitrated loop physical address (T-ALPA). The enabling (setting a device to a non-bypassed state) or bypassing of a loop port using LPE or LPB FC primitive sequences enables or bypasses the single device corresponding to the T-ALPA address in the primitive sequence. For cost efficiency and simplicity, present-day bridging devices that allow coupling of SAS or SATA storage devices to an existing FC-AL topology utilize a single T-ALPA in the loop topology regardless of the number of physical SAS or SATA storage devices coupled with the bridge device. Other higher layer addressing mechanisms are utilized for selecting a particular SAS or SATA device through the bridge device but at the lowest layer of LPE/LPB FC primitive sequences, all devices coupled with the bridge device having a single T-ALPA would be enabled or bypassed. 
     To allow for each individual storage device coupled with a bridge to be individually enabled or bypassed, some prior solutions have provided software/firmware capabilities programmed to execute on a processor within the bridge device to receive the loop port enable and loop port bypass primitive sequences and attempt to enable and bypass individual devices storage devices coupled with the bridge through more complex software analysis. However, the FC primitive sequences (also known as “ordered sets”) exchanged at this lowest level are repeated in rapid succession in accordance with the FC specifications (e.g., the FC-AL specifications requires that at least three consecutive LPB/LPE primitive sequences are transmitted before a recipient acts on the received primitive sequence). Such software/firmware solutions are generally incapable of the performance required to adequately process and respond to the bypass primitive sequences received in such rapid succession in accordance with FC-AL specifications. Thus, prior software solutions are incapable of fully complying with the FC-AL specifications. Various test and real application scenarios applied to present bridge devices may fail to comply with the FC-AL specifications where, for example, a bridge device attempts to process the loop port bypass/enable sequences using software/firmware but fails to do so with adequate performance. 
     By way of example, in one exemplary prior art software/firmware implemented bridge solution, an FC circuit of the bridge detects receipt of an LPB primitive sequence and causes an interrupt of the general purpose processor of the bridge device to analyze and process the received LPB primitive sequence. While the processor is analyzing and processing the received primitive sequence, the FC circuit of the bridge device forces a “fill” word on the FC-AL medium to indicate an idle period while the bridge device processes a received primitive sequence. In one exemplary test, an LPB primitive sequence is sent to an FC-AL device under test immediately followed by a primitive sequence addressing the same device that was just bypassed. For example, an OPEN primitive sequence may be transmitted immediately following the LPB primitive sequence. According to FC-AL standards the device should process both the LPB and the OPEN such that the FC host would receive the OPEN primitive sequence back from the FC-AL topology as not processed by the addressed device (because it was successfully bypassed). If the software/firmware interrupt processing of a present bridge device cannot process the LPB in a timely enough fashion to update its loop port state machine (LPSM) in time to receive and forward the OPEN primitive sequence (as the device would if properly bypassed), the bridge device may not properly process the OPEN primitive sequence and thus may create an apparent error condition. Though such a test scenario may be extreme and rare in practice, it is within the specifications of the FC-AL architecture. Thus, there is no useful capability in present FC to SAS/SATA bridge devices to permit enabling or bypassing of individual SAS/SATA devices coupled with the bridge device. 
     Thus it is an ongoing challenge to enhance the flexibility of enabling and bypassing each of multiple non-FC storage devices coupled with an FC-AL communication medium through a bridge device. 
     SUMMARY 
     The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing apparatus and methods for a bridge device for coupling multiple storage devices with an FC-AL loop in such as manner as to place individual ones of the multiple storage devices into a bypassed or non-bypassed state regardless of the state of other storage devices coupled with the FC-AL loop through the bridge device. 
     In one aspect hereof, a Fibre Channel bridge device is provided. The bridge device includes a Fibre Channel interface circuit for coupling with a Fibre Channel arbitrated loop (FC-AL). The interface is adapted to respond to multiple target arbitrated loop physical addresses (T-ALPAs). The bridge device also includes a back-end interface circuit adapted to couple with a plurality of storage devices. The plurality of storage devices are not FC-AL storage devices. The bridge device further includes a bypass control logic circuit coupled with the Fibre Channel interface circuit and coupled with the back-end interface circuit. The bypass control logic circuit is adapted to map one of the multiple T-ALPAs to each of the plurality of storage devices. The bypass control logic circuit is further adapted to process loop port enable (LPE) and loop port bypass (LPB) Fibre Channel primitive sequences for each of the multiple T-ALPAs so as to bypass and enable individual ones of the plurality of storage devices regardless of the state of others of the plurality of storage devices. 
     Another aspect hereof provides a method operable in a Fibre Channel Arbitrated Loop (FC-AL) interface circuit of an FC-AL bridge device adapted to couple multiple non-FC-AL storage devices to an FC-AL communication medium. The method includes placing a particular storage device coupled with the bridge device into a non-bypassed state in response to receipt by the bridge device of a loop port enable (LPE) primitive sequence received from the FC-AL communication medium identifying the particular storage device. The particular storage device is entered into a non-bypassed state regardless of the bypassed/non-bypassed state of other storage devices coupled with the bridge device. The method also includes placing a particular storage device coupled with the bridge device into a bypassed state in response to receipt by the bridge device of a loop port bypass (LPB) primitive sequence received from the FC-AL communication medium identifying the particular storage device. The particular storage device is entered into a bypassed state regardless of the bypassed/non-bypassed state of other storage devices coupled with the bridge device. 
     Still another aspect hereof provides a bridge device for coupling a plurality of serial attached SCSI (SAS) storage devices and/or serial advanced technology attachment (SATA) storage devices to a Fibre Channel arbitrated loop (FC-AL) communication medium. The bridge device includes a back-end interface circuit adapted to couple with a plurality of SAS/SATA storage devices. The bridge device also includes a Fibre Channel interface circuit coupled with the back-end interface and adapted for coupling with the FC-AL communication medium. The Fibre Channel interface circuit including logic circuits adapted for implementing FC0, FC1, FC2, SCSI-FCP, and FC-AL layers of the Fibre Channel protocols. The FC-AL layer logic circuits including a bypass control logic circuit adapted to map multiple target arbitrated loop physical addresses (T-ALPAs) to corresponding storage devices of the plurality of storage devices. The bypass control logic circuit is further adapted to process loop port enable (LPE) and loop port bypass (LPB) Fibre Channel primitive sequences for each of the multiple T-ALPAs so as to bypass and enable individual ones of the plurality of storage devices regardless of the state of others of the plurality of storage devices. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a system including an exemplary embodiment of an enhanced bridge device in accordance with features and aspects hereof for coupling a plurality of storage devices to an FC-AL loop. 
         FIG. 2  is a block diagram providing exemplary functional details of a bypass control logic circuit of  FIG. 1  in accordance with features and aspects hereof. 
         FIG. 3  is a block diagram of another system including an exemplary embodiment of an enhanced bridge device in accordance with features and aspects hereof for coupling a plurality of storage devices to an FC-AL loop. 
         FIG. 4  is a block diagram of exemplary bypass control logic circuits integrated with FC-AL layer logic circuits in accordance with features and aspects hereof. 
         FIGS. 5 through 8  are flowcharts describing exemplary methods for operating an enhanced bridge device in accordance with features and aspects hereof to couple multiple storage devices to an FC-AL loop. 
     
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram of a bridge device circuit  100  enhanced in accordance with features and aspects hereof to include bypass control logic circuit  104 . As noted above, prior techniques either did not allow individual devices coupled with the bridge to be independently bypassed or relied solely on software implemented within the bridge device handle the loop port state machine (LPSM) bypass logic when coupling a plurality of storage devices to an FC-AL loop. By contrast, bypass control logic circuit  104  provides custom logic circuits for processing the loop port bypass features and primitive sequences for each of the storage devices  110 . 1  through  110 .n coupled through bridge device circuit  100  with FC-AL loop  150 . 
     Bypass control logic circuit  104  is coupled with FC-AL interface circuit  102  to permit integration of processing of bypass control logic circuit  104  with the LPSM circuitry standard within most commercially available FC-AL interface circuits  102 . In one exemplary embodiment, as discussed further herein below, bypass control logic circuit  104  may be integrated within the FC-AL interface circuit  102 . In other embodiments, the bypass control logic circuit  104  may be implemented as a separate component from the FC-AL interface circuit  102  but may require tight coupling of interface signals therebetween to permit logical integration of the bypass control logic circuit function within that of the LPSM processing of the enhanced bridge device circuit  100 . 
     Though the bypass control features hereof are implemented as custom logic circuits ( 104 ), enhanced bridge device  100  may still include processor and memory  108  for controlling overall configuration and administration of the bridge device circuit  100 . Backend interface circuit  106  provides the desired interface to the non-Fibre Channel storage devices  110 . 1  through  110 .n. In one exemplary embodiment the backend interface circuit  106  may provide serial attached SCSI (SAS) and/or serial advanced technology attachment (SATA) interface logic for coupling SAS/SATA storage devices to the enhanced bridge device circuit  100 . 
     As discussed in further detail herein below, bypass control logic  104  (in conjunction with FC-AL interface logic  102 ) permits individual storage devices to be bypassed on the FC-AL loop  150  regardless of the status of other storage devices coupled with the bridge  100 . In other words, enhanced bridge device  100  responds to multiple T-ALPAs addressed by primitive sequences that contain a T-ALPA on the FC-AL loop  150  and allows each T-ALPA to be bypassed individually regardless of the bypassed/non-bypassed status of all other T-ALPAs managed by the bridge device  100 . 
       FIG. 2  is a block diagram providing exemplary additional details of functions performed by the bypass control logic circuit  104  of  FIG. 1 . Bypass control logic circuit  104  includes FC primitive sequence bypass/enable processing function  204  to receive loop port bypass (LPB) and loop port enable (LPE) primitive sequences from the FC-AL communication medium (received in parallel with the LPSM  200  receiving and processing FC-AL primitive sequences). In other words, LPSM  200  processes Fibre Channel primitive sequences in accordance with standard Fibre Channel Arbitrated Loop processing techniques but incorporates enhanced processing for loop port bypass and loop port enable by incorporating functions of element  204 . 
     As noted above, LPSM  200  (normally implemented within a Fibre Channel interface circuit) may be tightly coupled with the bypass control logic circuit  104 . As discussed further herein below, the FC-AL interface circuit and the bypass control logic circuit may be integrated as a single application specific integrated circuit or custom designed circuit in accordance with well known design choices. Bypass control logic circuit  104  includes history bits  202  (e.g., BYPASS and PARTICIPATED history bits typically integrated within and utilized by the LPSM  200  in accordance with Fibre Channel standard specifications). The BYPASS and PARTICIPATE history bits utilized by LPSM  200  may be set and reset in accordance with the LPSM standard processing features provided by the FC-AL specifications but enhanced by utilization of the valid bit sector  208  and the bypass bit vector  210  of bypass control logic circuit  104 . In one exemplary embodiment the valid bit vector  208  and bypass bit vector  210  each comprise an array of bits where each bit corresponds to one of multiple target arbitrated loop physical addresses (T-ALPAs). 
     Mapping element  206  provides functionality to map a particular T-ALPA to a corresponding bit in the valid bit vector  208  and to a corresponding bit in the bypass bit vector  210  to identify appropriate bits when processing loop port bypass and loop port enable primitive sequences in conjunction with the LPSM  200 . In one exemplary embodiment the mapping of a T-ALPA to a corresponding bit in either the valid bit vector  208  or the bypass bit vector  210  provides for simple utilization of the T-ALPA value as an index into each bit vector. Those of ordinary skill in the art will readily recognize numerous other data structures and mapping techniques for mapping each of multiple T-ALPAs to corresponding information indicating whether that T-ALPA is presently valid (i.e., associated with a corresponding storage device) and whether the corresponding T-ALPA is presently in a bypassed state. 
     Valid bit vector  208  and bypass the bit vector  210  may be implemented utilizing any suitable memory structure within the bypass control logic circuit  104 . For example, simple register constructs may be utilized to represent a storage bit corresponding to each of 127 possible T-ALPAs processed by the bypass control logic circuit  104 . Other suitable memory structures may include various types of random access memory (RAM) including, for example, DRAM, static RAMs, video RAMs, nonvolatile RAMs, SDRAMs, etc. FC primitive sequence bypass/enable processing element  204  and any required mapping processing provided by T-ALPA mapping element  206  may be implemented as customized application specific integrated circuitry providing the desired logical function as described further herein below. 
       FIG. 3  is a block diagram providing another exemplary embodiment of an enhanced bridge device circuit  300  for coupling multiple non-Fibre Channel storage devices  110 . 1  through  110 .n to an FC-AL loop communication medium  150 . As above with regard to  FIG. 1 , enhanced bridge device circuit  300  of  FIG. 3  may incorporate processor and memory  108  and backend interface circuit  106  (e.g., a SAS/SATA interface circuit). Enhanced bridge device circuit  300  may also include Fibre Channel interface circuit  302  enhanced in accordance with features and aspects hereof to incorporate bypass control logic circuit  104 . In particular, Fibre Channel interface circuit  302  may include logic circuits for implementing Fibre Channel layers including FC2/SCSI-FCP ( 304 ), FC1 ( 308 ), and FC0 ( 310 ) as well as FC-AL logic circuits ( 306 ) that may incorporate the bypass control logic circuit  104 . 
       FIG. 4  is a block diagram providing exemplary additional details of an FC-AL layer logic circuit  306  as noted above with respect to  FIG. 3 . FC-AL layer logic circuits  306  may incorporate bypass control logic as discussed above. FC-AL layer logic circuits  306  couple with lower-level FC1 and FC0 layer circuits  308  and  310 , respectively, and couple with FC2 layer circuits  304 . As noted in  FIG. 4 , FC2 layer circuits  304  may include SCSI-FCP layer protocols. Though the layers may in fact be implemented as separate and distinct logic components, for simplicity of this discussion they are depicted as a single higher layer logic element. Thus as used herein, “FC2” (element  304 ) represents FC2 layer logic, SCSI-FCP layer logic and any other higher layer Fibre Channel protocol and application circuits and processes. Fibre Channel data received from lower level FC1 and FC0 layer circuits  308  and  310  is applied to path  420  passing through the FC-AL layer logic circuits  306  bound for FC2 layer circuits  304 . In the process, ordered set decode logic  408  monitors or snoops the Fibre Channel received data applied to path  420  looking for relevant ordered sets (Fibre Channel arbitrated loop primitive sequences) to be processed by the FC-AL layer logic circuits  306 . As is well known to those of ordinary skill in the art, only certain ordered sets (primitive sequences) are relevant to enhanced features and aspects hereof in the loop port state machine (LPSM processing circuit  400  of  FIG. 4 ). In particular, for example, loop port bypass (LPB), loop port enable (LPE), and loop initialization protocol (LIP) primitive sequences and the open (OPN) primitive are of interest to the LPSM processing within the FC-AL circuit  400  as regards enhanced features and aspects hereof. Those of ordinary skill in the art will recognize a variety of other primitive sequences that are processed by the LPSM in accordance with FC-AL standards. 
     When ordered set decode  408  detects such relevant primitive sequences, T-ALPA decode logic circuit  406  decodes the T-ALPA address within the received ordered set to determine the T-ALPA value to be used as an index in the state processing associated with the multiple T-ALPAs managed by the enhanced bridge circuit. The decoded T-ALPA may then be applied to the FC-AL LPSM circuit  400  and the device state and history bit parameters  402  for use as an index into the various state tables or maps (e.g., bit vectors) used for storing information regarding each of the multiple T-ALPAs managed by the enhanced bridge device. Device state and history bit parameters  402  represents circuitry to retrieve the appropriate valid and bypass information from valid and bypass maps  404  (e.g., bit vectors). For example, the decoded T-ALPA index value may be used to select an appropriate bit of information indicating whether the T-ALPA is presently known to be valid (i.e., presently associated with one of the non-FC storage devices) and whether that particular T-ALPA, if valid, is presently in a bypassed state. The valid and bypass bits representing the present state of the decoded T-ALPA address index are then applied to FC-AL LPSM  400  for further processing. In addition, device state in history bit parameters  402  may use the valid and bypass information retrieved from maps  404  to adjust (e.g., set or clear as appropriate) the various history bits maintained within LPSM  410  of the FC-AL LPSM  400 . The actual physical location for storage of the LPSM history bits is a matter of design choice in that it may be implemented within the circuitry for the FC-AL LPSM  400  or may be stored external to the LPSM circuitry such as within the device state in history bit parameters  402  and made available to the LPSM  400  circuitry. Such design choices will be readily apparent to those of ordinary skill in the art based on the desired level of integration of the bypass control logic with the standard LPSM circuitry. 
     Using the LPSM history bits  410 , FC-AL LPSM  400  determines the present status of the REPEAT history bit and applies it to multiplexer  412  (as label “A”) to select from one of two sources for data to be applied to the Fibre Channel transmit data path  430 . Multiplexer  412  receives a first input from the Fibre Channel received data path  420  and a second input from the higher level FC2 layer circuits  304  via path  432 . Selection logic (“A”) represents the computation of the REPEAT history bit indicating that a Fibre channel transmission received on the receive data signal path  420  is to be repeated and the applied to the Fibre Channel transmit path  430 . If the REPEAT history bit is presently not set, a transmission from the FC2 layer circuits  304  applied to path  432  as an input to multiplexer  412  is then applied to the Fibre Channel transmit path  430  for application to the lower level FC1 ( 308 ) and FC0 ( 310 ) layers. Thus the device state and history bits determined by element  402  are used for controlling the FC-AL LPSM. However, by contrast with prior techniques where the and LPSM processes only a single T-ALPA or other prior techniques for bridge devices relying on software to control the bypass logic, the enhanced FC-AL circuits  306  with bypass control utilize logic circuits  400  through  412  to implement the requisite bypass logic for multiple T-ALPAs under control of a single bridge device. 
     In particular, each of the multiple T-ALPAs processed by the enhanced FC-AL layer circuits ( 306 ) may be in one of four states based on the valid bit and bypass bit corresponding to each T-ALPA as follows: 
     
       
         
           
               
               
               
               
             
               
                   
               
               
                   
                   
                 Repeat 
                   
               
               
                   
                   
                 State 
               
               
                   
                   
                 !Valid 
               
               
                 Valid 
                 Bypass 
                 or 
               
               
                 Bit 
                 Bit 
                 Bypass 
                 Description 
               
               
                   
               
             
            
               
                 0 
                 0 
                 1 
                 Non-Participating. Corresponding T-ALPA 
               
               
                   
                   
                   
                 is not participating on the Loop and does not 
               
               
                   
                   
                   
                 respond to any received primitive sequences 
               
               
                   
                   
                   
                 or transmit requests directed to it. 
               
               
                 1 
                 0 
                 0 
                 Participating. Corresponding T-ALPA is 
               
               
                   
                   
                   
                 enabled on the loop and responds to all 
               
               
                   
                   
                   
                 received primitive sequences and “frame 
               
               
                   
                   
                   
                 transmit” requests directed to it. 
               
               
                 1 
                 1 
                 1 
                 Participating Bypassed. Corresponding T- 
               
               
                   
                   
                   
                 ALPA is in logical bypass mode and only 
               
               
                   
                   
                   
                 responds to received LPEyx directed to it or 
               
               
                   
                   
                   
                 an LPEfx. Any transmit requests using this 
               
               
                   
                   
                   
                 T-ALPA are ignored. If a LIP is received and 
               
               
                   
                   
                   
                 all valid T-ALPAs are in the bypass state the 
               
               
                   
                   
                   
                 LPSM ignores the LIP. 
               
               
                 0 
                 1 
                 1 
                 Non-Participating Bypassed. 
               
               
                   
                   
                   
                 Corresponding T-ALPA is not participating 
               
               
                   
                   
                   
                 on the Loop and does not respond to all 
               
               
                   
                   
                   
                 received primitive sequences or transmit 
               
               
                   
                   
                   
                 requests directed to it. 
               
               
                   
               
            
           
         
       
     
     In addition to the state represented by the valid and bypass bits for each T-ALPA, enhancements in accordance with features and aspects hereof control the various history bits used by the LPSM to control the bypass logic of the FC-AL layer circuits. Specifically, in one exemplary embodiment, the BYPASS, PARTICIPATE, REPEAT, and REPLICATE history bits of the LPSM as specified by the FC-AL LPSM standards may be determined as follows: 
     
       
         
           
               
               
             
               
                   
               
               
                 History Bit 
                 Description 
               
               
                   
               
             
            
               
                 BYPASS 
                 This history bit is set when an LPB is received addressed to a valid T- 
               
               
                   
                 ALPA and all other T-ALPAs are already in the logical bypassed state 
               
               
                   
                 This history bit is cleared when: 
               
               
                   
                 a. An LPE is received to a valid T-ALPA that is presently is in the 
               
               
                   
                 logical bypassed state. OR 
               
               
                   
                 b. A request is made to initialize and the LPSM transitions to the 
               
               
                   
                 Initializing state (as specified in the FC-AL standards). OR 
               
               
                   
                 c. A request is made to non-participate and the LPSM transitions to 
               
               
                   
                 the Initializing state (as specified in the FC-AL standards). OR 
               
               
                   
                 d. A request is made to go to old port and the LPSM transitions to the 
               
               
                   
                 Old Port state (as specified in the FC-AL standards). 
               
               
                 PARTICIPATE 
                 This history bit is set when at least one T-ALPA is valid (i.e., 
               
               
                   
                 associated with a storage device as evidenced by the valid bit vector). 
               
               
                   
                 The valid T-ALPAs are determined and corresponding valid bits are 
               
               
                   
                 set during the initialization process of the bridge device. 
               
               
                   
                 This history bit is cleared when: 
               
               
                   
                 a. The LPSM is in monitoring state and an LIP is received while 
               
               
                   
                 BYPASS history bit is set (as specified in the FC-AL standards). OR 
               
               
                   
                 b. The LPSM is in Monitoring or Initialize state and a request to non- 
               
               
                   
                 participate is made by higher layer control software/firmware (as 
               
               
                   
                 specified in the FC-AL standards). OR 
               
               
                   
                 c. The LPSM is in initializing state and a request to go to old port is 
               
               
                   
                 made by higher layer control software/firmware (as specified in the 
               
               
                   
                 FC-AL standards). OR 
               
               
                   
                 d. The LPSM is in initializing state and a request to bypass is made 
               
               
                   
                 by higher layer control software/firmware (as specified in the FC-AL 
               
               
                   
                 standards). 
               
               
                 REPEAT 
                 !PARTICIPATE or BYPASS 
               
               
                 REPLICATE 
                 This history bit is set if any OPNyr, or OPNfr is received addressed to 
               
               
                   
                 any valid non-bypassed T-ALPA. 
               
               
                   
                 This history bit is cleared under all the conditions specified in the FC- 
               
               
                   
                 AL-2 specification. 
               
               
                   
               
            
           
         
       
     
     Still further, individual primitive sequences that relate to the bypass state of the bridge device&#39;s LPSM may be processed as follows: 
     
       
         
           
               
               
               
               
             
               
                   
               
               
                 Primitive/ 
                   
                 T-ALPA = !valid 
                   
               
               
                 Primitive 
                 T-ALPA = valid 
                 (Non- 
               
               
                 Sequence 
                 (Participating) 
                 Participating) 
                 T-ALPA = Bypassed 
               
               
                   
               
             
            
               
                 OPNyx 
                 y = T-ALPA 
                 Any ALPA that is 
                 y = T-ALPA 
               
               
                   
                 a. y is OPENED 
                 in the invalid state 
                 a. OPNyx is 
               
               
                   
                 full duplex 
                 does not respond 
                 ignored 
               
               
                 OPNyy 
                 y = T-ALPA 
                 to any received 
                 y = T-ALPA 
               
               
                   
                 a. y is OPENED 
                 primitive sequence 
                 a. OPNyx is 
               
               
                   
                 half duplex 
                 that is directed to a 
                 ignored 
               
               
                 OPNyr 
                 y = T-ALPA 
                 specific ALPA. 
                 y = T-ALPA 
               
               
                   
                 a. Open y 
                   
                 a. OPNyx is 
               
               
                   
                 (replicate) 
                   
                 ignored 
               
               
                 OPNfr 
                 f = all 
                   
                 y = fr 
               
               
                   
                 a. If any ALPA is 
                   
                 a. No affect to T- 
               
               
                   
                 valid in the bit map go 
                   
                 ALPA in bypass 
               
               
                   
                 to the OPEN replicate 
               
               
                   
                 mode 
               
               
                 LPByx 
                 y = T-ALPA 
                   
                 y = T-ALPA 
               
               
                   
                 a. The T-ALPA 
                   
                 a. The T-ALPAs 
               
               
                   
                 has it&#39;s corresponding 
                   
                 corresponding bypass 
               
               
                   
                 bypass map bit set 
                   
                 map bit is set 
               
               
                   
                 b. Interrupt is set, 
                   
                 b. Interrupt is set, 
               
               
                   
                 yx is captured 
                   
                 yx is captured 
               
               
                   
                 c. The LPSM 
                   
                 c. The LPSM 
               
               
                   
                 bypass history variable 
                   
                 bypass history bit 
               
               
                   
                 is set. 
                   
                 remains set. 
               
               
                 LPBfx 
                 y = all 
                   
                 f = all 
               
               
                   
                 a. All Valid T- 
                   
                 a. All T-ALPA 
               
               
                   
                 ALPAs have their 
                   
                 corresponding bypass 
               
               
                   
                 corresponding bypass 
                   
                 bits remain set 
               
               
                   
                 bit set. 
                   
                 b. Interrupt is set, 
               
               
                   
                 b. Interrupt is set, yx 
                   
                 yx is captured 
               
               
                   
                 is captured 
                   
                 c. The LPSM 
               
               
                   
                 c. The LPSM bypass 
                   
                 history bit remains 
               
               
                   
                 history variable is set if 
                   
                 set 
               
               
                   
                 any valid T-ALPA is 
               
               
                   
                 set in the valid map. 
               
               
                 LPEyx 
                 y = T-ALPA 
                   
                 y = T-ALPA 
               
               
                   
                 a. Interrupt is set, yx is 
                   
                 a. Corresponding 
               
               
                   
                 captured. 
                   
                 T-ALPA bypass bit 
               
               
                   
                 b. The LPSM bypass 
                   
                 map is cleared 
               
               
                   
                 history variable is 
                   
                 b. Interrupt is set, 
               
               
                   
                 cleared. 
                   
                 yx is captured 
               
               
                 LPEfx 
                 f = all 
                   
                 f = all 
               
               
                   
                 a. Interrupt is set, yx 
                   
                 a. Interrupt is set, 
               
               
                   
                 is captured. The LPSM 
                   
                 yx is captured 
               
               
                   
                 bypass history bit is 
                   
                 b. The entire bypass 
               
               
                   
                 unconditionally cleared 
                   
                 bit map is cleared 
               
               
                   
                   
                   
                 c. The LPSM 
               
               
                   
                   
                   
                 bypass history 
               
               
                   
                   
                   
                 variable is 
               
               
                   
                   
                   
                 unconditionally 
               
               
                   
                   
                   
                 cleared. 
               
            
           
           
               
               
            
               
                 LIP(F7, F7) 
                 LIP Received Interrupt set. The entire valid bit map is cleared to the 
               
               
                 LIP(F7, x) 
                 invalid state by Software 
               
               
                 LIP(F8, F7) 
                 If the LPSM bypass history variable bit is set the LIP is ignored by 
               
               
                 LIP(F8, x) 
                 the LPSM 
               
               
                 LIPyx 
                 If y = ALPA Reset LIP Received Interrupt set. The entire valid bit 
               
               
                   
                 map is cleared to the invalid state by Software. If the LPSM bypass 
               
               
                   
                 history variable bit is set the LIP is ignored by the LPSM 
               
               
                 LIPfx 
                 LIP Received Interrupt set. The entire valid bit map is cleared to the 
               
               
                   
                 invalid state by Software 
               
               
                   
                 If the LPSM bypass history variable bit is set the LIP is ignored by 
               
               
                   
                 the LPSM 
               
               
                   
               
            
           
         
       
     
       FIG. 5  is a flowchart describing an exemplary method in accordance with features and aspects hereof to provide enhanced bypass control circuitry within a FC-AL bridge device for coupling multiple storage devices to the FC-AL communication medium. The method of  FIG. 5  may be operable, for example, in customized circuitry integrated with the LPSM processing of the FC-AL layer circuits as discussed above. 
     Step  500  awaits receipt of a next primitive sequence from the FC-AL receive data path. Upon receipt of such a primitive sequence, step  502  determines whether the received primitive sequence is a loop port bypass (LPB) primitive sequence. If so, step  504  places the one or more storage devices corresponding to the one or more T-ALPAs identified by the LPB into the bypassed state regardless of the status of other storage devices coupled with the bridge device. More specifically, any one or more of the specified T-ALPAs in the received LPB that are identified to be valid according to the valid bit vector are placed into the bypass state by setting the corresponding bit in the bypass bit vector. Processing then continues awaiting receipt of a next FC-AL primitive sequence at step  500 . 
     If step  502  determines that the received primitive sequence is not an LPB, step  506  determines whether the received primitive sequence as a loop port enable (LPE) primitive sequence. If so, step  508  places the one or more storage devices corresponding to the one or more T-ALPAs identified in the received LPE into the non-bypassed state regardless of the status of other storage devices and corresponding T-ALPAs coupled with the bridge device. More specifically, for each T-ALPA identified in the received LPE that is presently in the valid state according to the valid bit vector, the corresponding bypass bit in the bypass bit vector is cleared to indicate that the device is not in the bypassed state. Processing then continues awaiting receipt of a next FC-AL primitive sequence at step  500 . 
     If step  506  determines that the received primitive sequence is not an LPE, step  510  next determines whether the received primitive sequence is a loop initialization protocol (LIP) primitive sequence. If so, step  512  conditionally clears all bits in the valid bit vector to indicate an invalid status (i.e., T-ALPAs no longer associated with any storage devices until re-initialized). As noted in the table above, the processing of the LIP is conditional in the sense that if the bypass history bit is presently set, the LIP primitive sequence is simply ignored by the LPSM (as is standard in the FC-AL specifications). 
     If step  510  determines that the received primitive sequence is not an LIP primitive sequence, step  514  next determines whether the received primitive is an open (OPN) primitive. If so, step  516  conditionally processes the OPN primitive. In particular, if the identified T-ALPAs are valid (as indicated by corresponding bits in the valid bit vector) and not presently bypassed (as indicated by corresponding bits in the bypass bit vector), the OPN is processed. Otherwise the OPN primitive is ignored. Processing then continues awaiting receipt of a next FC-AL primitive sequence at step  500 . 
     If step  514  determines that the received primitive sequence was not an OPN primitive, all other primitive sequences are processed at step  518  in accordance with standard LPSM processing as specified in the FC-AL standard. Processing then continues at step  500  to await receipt of a next FC-AL primitive sequence. 
     Thus the exemplary method of  FIG. 5  processes FC-AL primitive sequences (in particular LPB and LPE primitive sequences based on information in the valid bit vector and the bypass bit vector for the multiple T-ALPAs processed by the enhanced bridge device. Further, the exemplary method of  FIG. 5  maintains/updates information in the valid and bypass maps (e.g., the valid and bypass bit vectors) to control processing of the LPSM and to update status of each of the multiple storage devices corresponding to T-ALPAs managed by the enhanced bridge device. In addition, the method of  FIG. 5  maintains the LPSM history bits based upon the valid and bypass information for each of the multiple T-ALPAs managed by the enhanced bridge device. As noted above, the LPSM history bits may include the BYPASS, PARTICIPATE, REPEAT, and REPLICATE history bits. 
       FIG. 6  is a flowchart providing exemplary additional details of the processing of step  504  of  FIG. 5 . Step  504  represents processing of an LPB primitive sequence to place one or more T-ALPAs identified in the LPB primitive sequence into the bypassed state. Step  600  first determines whether any of the T-ALPAs identified by the received LPB are valid. If none of the identified T-ALPAs are valid as indicated by the valid bit vector, processing of step  504  is complete. If one or more T-ALPAs identified in the LPB are valid, step  602  sets the corresponding bits in the bypass bit vector to indicate that the corresponding valid T-ALPAs are now bypassed. 
     Step  604  then determines whether all valid T-ALPAs processed by the bridge device are presently in the bypassed state. The step inspects the valid and bypass bit vectors to make that determination. If at least one valid T-ALPA is not in the bypassed state, processing of step  504  is complete. If all valid T-ALPAs are presently in the bypassed state, then step  606  sets the BYPASS history bit to force the FC-AL LPSM logic circuits to bypass processing of any received FC data and simply forward the received data on to the transmit data path. Following step  606 , processing of step  504  is complete. 
       FIG. 7  is a flowchart providing exemplary additional details of the processing of step  508  of  FIG. 5 . Step  508  represents processing of an LPE primitive sequence to place one or more T-ALPAs identified in the LPE primitive sequence into the non-bypassed state. Step  700  first determines whether any of the T-ALPAs identified by the received LPE are valid. If none of the identified T-ALPAs are valid as indicated by the valid bit vector, processing of step  508  is complete. If one or more T-ALPAs identified in the LPE are valid, step  702  clears the corresponding bits in the bypass bit vector to indicate that the corresponding valid T-ALPAs are now not in the bypassed state. Step  704  then clears the BYPASS history bit since at least one valid T-ALPA processed by the bridge device is now not in the bypassed state. Clearing of the BYPASS history bit allows the FC-AL LPSM circuits to analyze each received data from the receive path of the FC-AL loop to determine if the particular, identified T-ALPA in each received primitive sequence is presently in the bypassed state or not and thus to repeat the data on the FC-AL loop transmit path or process the received primitive sequence. 
       FIG. 8  depicts another exemplary method operable in an enhanced bridge device in accordance with features and aspects hereof. When the bridge device is initialized (or re-initialized) in accordance with standard FC-AL protocols, all T-ALPAs are considered invalid—i.e., the valid and bypass bits in the vectors are cleared. Step  800  represents standard processing in accordance with the FC-AL protocols wherein an agent on the FC-AL loop associates a T-ALPA with each device known to the loop. The enhanced bridge device will know of all storage devices coupled through its back-end interface by, for example, a discover process such as is well known in the SAS/SATA interface standards. As each storage device known to the bridge device (and thus to the FC-AL loop structure) is associated with a corresponding T-ALPA, step  800  also sets the corresponding valid bit in the valid bit vector to indicate that the T-ALPA (and thus its corresponding storage device) is now valid (i.e., participating). 
     Those of ordinary skill in the art will recognize numerous additional and equivalent circuits and steps in a fully functional enhanced bridge device and its associated methods of operation. Such additional and equivalent elements are omitted herein for simplicity and brevity of this discussion. Further, those of ordinary skill in the art will readily recognize a variety of memory structures that may be used to store the valid and bypass information for each T-ALPA processed by the bridge device. Since present FC-AL standards provide for a maximum of 127 such T-ALPAs on any FC-AL loop, the chosen memory structure need, at present, store valid and bypass information for at most 127 T-ALPAs. Thus, simple register memory structures are adequate in providing for the desired function but any suitable memory structure may be used as a matter of design choice. 
     While the invention has been illustrated and described in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character. One embodiment of the invention and minor variants thereof have been shown and described. Protection is desired for all changes and modifications that come within the spirit of the invention. Those skilled in the art will appreciate variations of the above-described embodiments that fall within the scope of the invention. As a result, the invention is not limited to the specific examples and illustrations discussed above, but only by the following claims and their equivalents.