Abstract:
A system, device, method and computer program to control and set LEDs associated with ports that are non-protocol aware is accomplished. This system, device, method and computer program does not interfere with the normal operation of protocol aware ports. Utilizing this system, device, method and computer program, savings in time and effort for installation and debug of a network system is realized.

Description:
FIELD  
         [0001]    The present invention relates to data transfer interface technology in a data network and, more particularly, relates to a system and method for indicating a communications link and traffic activity on non-protocol aware modules.  
         BACKGROUND  
         [0002]    In the rapid development of computers many advancements have been seen in the areas of processor speed, throughput, communications, and fault tolerance. Initially computer systems were standalone devices in which a processor, memory and peripheral devices all communicated through a single bus. Later, in order to improve performance, several processors were interconnected to memory and peripherals using one or more buses. In addition, separate computer systems were linked together through different communications mechanisms such as, shared memory, serial and parallel ports, local area networks (LAN) and wide area networks (WAN). However, these mechanisms have proven to be relatively slow and subject to interruptions and failures when a critical communications component fails.  
           [0003]    More recently, exceptionally high-speed serial data networks such as InfiniBand™ have been created in order to interconnect multiple hosts, such as computer systems and Input/Output (I/O) controllers to one another via switches. Further, switches may be interconnected to each other, via one or more ports, and a given host may be connected to multiple switches, via one or more ports, for relaying data within the data network.  
           [0004]    However, in the case of a complex data network, a literal sea of cables and port connections may exist. Therefore, connecting and troubleshooting port connections and failures may be difficult. In order to facilitate such troubleshooting each port in a switch may be provided with a link/activity light emitting diode (LED) indicator to indicate the status of the given port. However, where non-protocol aware (NPA) modules are utilized (e.g., in a modular InfiniBand™ switch), the monitoring of traffic over a given port may not be possible and therefore control of the LED indicator may be absent. These non-protocol aware modules act as simple repeaters that buffer the data between the network cables and the switching logic. This is done in order to reduce the cost of the modules and related-hardware as well as maximize the possible transfer rate. However, without the aid of a functioning LED indicator on a port, troubleshooting and connecting ports can be extremely difficult.  
           [0005]    Therefore, there is a need for a system, device, method and computer program that will enable control of LEDs associated with ports so that a visual monitor of the port status is possible. This system, device, method and computer program should operate for non-protocol aware modules without interfering with the transmission of data.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]    A better understanding of the present invention will become apparent from the following detailed description of exemplary embodiments and the claims when read in connection with the accompanying drawings, all forming a part of the disclosure of this invention. While the foregoing and following written and illustrated disclosure focuses on disclosing example embodiments of the invention, it should be clearly understood that the same is by way of illustration and example only and the invention is not limited thereto. The spirit and scope of the present invention are limited only by the terms of the appended claims.  
         [0007]    The following represents brief descriptions of the drawings, wherein:  
         [0008]    [0008]FIG. 1 illustrates an example InfiniBand system diagram that may be used by the example embodiments of the present invention;  
         [0009]    [0009]FIG. 2 illustrates an example modular configuration diagram used in the example embodiments of the present invention;  
         [0010]    [0010]FIG. 3 illustrates an example modular configuration diagram used in the example embodiments of the present invention;  
         [0011]    [0011]FIG. 4 illustrates an example flowchart for the port identification module used in the example embodiments of the present invention;  
         [0012]    [0012]FIG. 5 illustrates an example flowchart for the port monitoring module used in the example embodiments of the present invention; and  
         [0013]    [0013]FIG. 6 illustrates an example flowchart for the message scheduler module used in the example embodiments of the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0014]    Before beginning a detailed description of the subject invention, mention of the following is in order. When appropriate, like reference numerals and characters may be used to designate identical, corresponding or similar components in differing figure drawings. Further, in the detailed description to follow, exemplary sizes/models/values/ranges may be given, although the present invention is not limited to the same. As a final note, well-known components of computer networks may not be shown within the figures for simplicity of illustration and discussion, and so as not to obscure the invention.  
         [0015]    Various example embodiments of the present invention are applicable for use with all types of data networks, I/O hardware adapters and chipsets, including follow-on chip designs which link together end stations such as computers, servers, peripherals, storage subsystems, and communication devices for data communications. Examples of such data networks may include a local area network (LAN), a wide area network (WAN), a campus area network (CAN), a metropolitan area network (MAN), a global area network (GAN), a wireless personal area network (WPAN), and a system area network (SAN), including newly developed computer networks using Future I/O (FIO), InfiniBand™ and Server Net and those data networks including channel-based, switched fabric architectures which may become available as computer technology advances to provide scalable performance. LAN systems may include Ethernet, FDDI (Fiber Distributed Data Interface) Token Ring LAN, Asynchronous Transfer Mode (ATM) LAN, Fiber Channel, and Wireless LAN. However, for the sake of simplicity, discussions will concentrate mainly on a host system including one or more hardware adapters for providing physical links for channel connections in a simple data network having several example nodes (e.g., computers, servers and I/O units) interconnected by corresponding links and switches, although the scope of the present invention is not limited thereto.  
         [0016]    Attention now is directed to the drawings and particularly to FIG. 1, h which an example InfiniBand™ system diagram which may be used by various embodiments of the present invention is illustrated. Using an InfiniBand Architecture (IBA) it may be possible to link together a processor-based system  10 , through switches  50  to several input/output (I/O) controllers  70 , and other processor-based systems  20 ,  30  and  40 . Each processor-based system  10 ,  20 ,  30  and  40  may include one or more central processing units (CPU) (not shown), dynamic random access memory (DRAM) (not shown), memory controller (not shown) and a host channel adapter (HCA)  60 . I/O controllers  70  communicate to the InfiniBand network, via target channel adapters (TCA)  80 . These I/O controllers  70  may be used to provide an I/O service or I/O function, and may operate to control one or more I/O devices such as storage devices (e.g., hard disk drive and tape drive) via a system area network, for example. A plurality of switches  50  may be arranged to establish connection between the processor-based systems  10 ,  20 ,  30  and  40  and the I/O controllers  70 , via respective host channel adapters  60  and target channel adapters  80 . Each switch  50  as well as the channel adapters  60  and  80  may have one or more switch connection points called “ports” provided to establish connection with every other switch  50  and host or target channel adapter  60  or  80 , via one or more links. Each switch “port” may be configured to support one or more port operation modes, i.e., one or more links for enabling commands and data to flow between interconnected ports within the InfiniBand network. For example, each switch “port” can be configured to serve as a single link (1×) capable port for transferring data via a single link (typically 0.25 GB/s in each direction, for example), or a multiple link capable port for transferring data via respective multiple links (typically 1.0 GB/s in each direction, for example).  
         [0017]    Referring to FIG. 1, the InfiniBand Architecture defines interfaces that move data between two “memory” regions or nodes. Access to an I/O controller  70  and processor-based systems  10 ,  20 ,  30  and  40 , may be accomplished by send or receive operations, as well as, remote direct memory access (RDMA) read and RDMA write operations. Cluster, host channel adapters  60  and target channel adapters  80  provide the control and logic that allows nodes to communicate to each other over the InfiniBand network. A processor-based system  10 ,  20 ,  30  or  40  may have one or more host channel adapters  60  each of which may include one or more ports for redundancy and access to one or more InfiniBand networks. Likewise, each I/O controller  70  may have one or more target channel adapters  80  with multiple ports for redundancy and access to one or more InfiniBand networks. Communications in an InfiniBand architecture may be accomplished through these cluster, host channel adapters  60 , target channel adapters  80  directly or through one or more switches  50 .  
         [0018]    Before proceeding into a detailed discussion of the logic used by the present invention it should be mentioned that the modular configuration diagrams shown in FIGS. 2 and 3 and the flowcharts shown in FIGS. 4 through 6 contain software, firmware, hardware, processes or operations that correspond, for example, to code, sections of code, instructions, commands, objects, hardware or the like, of a computer program that is embodied, for example, on a storage medium such as floppy disk, CD-Rom (Compact Disc read-only Memory), EP-Rom (Erasable Programmable read-only Memory), RAM (Random Access Memory), hard disk, etc. Further, the computer program can be written in any high-level programming language such as, but not limited to, for example C++ and Visual Basic.  
         [0019]    [0019]FIG. 2 illustrates an example modular configuration diagram used in the example embodiments of the present invention. This modular configuration diagram depicts the hardware, firmware, and software that may be utilized to control a LED  250  on a non-protocol aware port  260  in a switch  50 . In addition, since management link (ML) resides in a switch, port LED indicators may only be monitored using the present invention in a switch, not in channel adapters. However, the monitoring of port activity may reside outside the switch, with appropriate commands sent to the switch resulting in ML messages to the port LED indicators. Each switch  50  may contain multiple inbound and outbound ports for relaying data between links in the InfiniBand network.  
         [0020]    As shown in FIG. 2, the switch  50  may contain a switch logic  200  including a port monitoring and LED control system (PMLCS)  210  arranged to provide link and activity for each of its ports; a field-programmable gate array (FPGA)  220 ; and one or more port modules  230 . The field-programmable gate array (FPGA)  220  may be arranged to interpret the link/activity information, create an appropriate management link (ML) command and provide the appropriate management link (ML) to each port module  230 , i.e., non-protocol aware (NPA) module or protocol aware module.  
         [0021]    Each port module  230  may contain a module management entity (MME)  240 , a LED indicator  250  and a port  260 . The module management entity (MME)  240  may be connected to the field programmable gate array (FPGA)  220 , via a respective management link (ML)  255 , and may be arranged to directly control the operation of the LED indicator  250 . Alternatively, the FPGA  220  may be included in the switch logic  200 , and/or the port monitoring and LED control system (PMLCS)  210  may be located within the FPGA  220 , or elsewhere within the switch  50 . In such configurations, the switch logic  200  or the FPGA  220  may interface with all port modules  230 , and interpret the link/activity information and create the appropriate management link (ML) commands that may be sent to the appropriate port module  230  and LED indicator  250 . The management link (ML) commands may be compatible with management link (ML) protocol established by the InfiniBand™ specification.  
         [0022]    [0022]FIG. 3 illustrates an example modular configuration diagram depicting the PMLCS  210  used in the example embodiments of the present invention. As shown in FIG. 3, the PMLCS  210  may include a port identification module  310 , a port monitor module  320 , and a message scheduler module  330 . The port identification module  310  may be used to determine if a particular piece of information regarding a particular non-protocol aware (NPA) port included in the port modules  230 . During communications with the port identification module  310 , the port monitoring module  320  may be used to receive information regarding a particular port  260  (i.e., information about the link such as up/down/activity information) and determine the appropriate action to take depending upon the nature of such a port  260 . If the port in question is a non-protocol aware (NPA) port, then the information may be transmitted to a message scheduler module  330  to schedule the transmission of LED control commands in a particular order or priority, such as, for example, when the management link (ML)  225  is not busy. Thereafter, the information may be transmitted to the appropriate port module  230 , via the management link (ML)  255 .  
         [0023]    [0023]FIG. 4 is an example flowchart for the port identification module  310  used in the example embodiments of the present invention. The port identification module  310  begins execution in operation  400  and immediately proceeds to operation  410 . In operation  410 , the module management entity (MME)  240  within each port module  230  of the switch  50  is accessed. In operation  420  upon accessing the module management entity (MME)  240  the nature or type of the port module  230  is determined. Port modules  230  will be classified according to two criteria, either protocol aware or non-protocol aware (NPA). If no logic is associated with a port  260  then it is identified as a non-protocol aware (NPA) port  260  (i.e., a “pass-through” module incapable of determining data content on a link). Thereafter, in operation  430  the port identifier number and port type are stored either in the FPGA  220  or the switch logic  200 . Processing then proceeds to operation  440  wherein it is determined if all ports accessible within a switch  50  have been identified. If it is determined that all ports have not been identified in operation  440 , then processing returns to operation  410 . Otherwise, processing proceeds operation  450  where processing terminates.  
         [0024]    [0024]FIG. 5 is an example flowchart for the port monitoring module  320  used in the example embodiments of the present invention. The port monitoring module  320  begins execution in operation  500  and immediately proceeds to operation  510 . In operation  510 , link and activity information to be transmitted to a particular port module&#39;s MME  240  is received by the port monitoring module  320  from the switch logic  200 . Thereafter, the port monitoring module  320  retrieves the port identification for this particular port module  230  from the switch logic  200 . Processing then proceeds to operation  530  where it is determined if the port  260  is a non-protocol aware (NPA) port. If the port is a non-protocol aware (NPA) port  260 , then processing proceeds to operation  540  where the link and activity information to be transmitted to the port&#39;s MME  240  is passed to the message scheduler module  330 . However, if the port is a protocol aware port  260 , then the link and activity information need not be sent (the protocol aware module will generate its own link and activity information to drive its LED). Processing from either operation  530  (“NO” exit) or operation  540  both proceed to operation  550  where processing terminates.  
         [0025]    [0025]FIG. 6 is an example flowchart for the message scheduler module  330  used in the example embodiments of the present invention. The message scheduler module  330  begins execution in operation  600  and immediately proceeds to operation  610 . In operation  610 , link and activity information to be transmitted to the module management entity (MME)  240  included in the port module  230  in question is received. Thereafter, in operation  620  it is determined if the management link (ML)  225  is busy at the given moment. If the management link (ML)  225  is busy, then processing proceeds to loop back to operation  620 . However, if the management link (ML)  225  is not busy, then processing proceeds to operation  630 . In operation  630 , a management link (ML) LED message is generated. This ML-LED message may take one of three forms. First, the ML-LED message may indicate that no link is established, and no data is being transmitted by the port  260  and, as such, the LED indicator  250  included in the port module  230  in question may be turned “off”. Second, the ML-LED message may indicate that the port  260  is linked to another device and, as such, the LED indicator  250  may be turned “on”. Third, the ML-LED message may indicate that data is being transmitted over the port  260  and, as such, the LED indicator  250  may be instructed to blink at a predetermined rate. Regardless of the status, the ML-LED message is transmitted to the module management entity (MME)  240  included in the port module  230  in operation  640 . Thereafter processing proceeds to operation  650  where processing terminates.  
         [0026]    The benefit resulting from the present invention is that control of an LED indicator associated with the port in one or more non-protocol aware (NPA) modules within a switch may be accomplished without interrupting the normal operations of the switch while utilizing the existing switch infrastructure (i.e., the management link “ML” to each module and the module&#39;s MME). Utilizing the present invention the costs associated with properly driving the link and activity LED indicator on a non-protocol aware (NPA) module (e.g., circuitry, module board space, power consumption, etc.) can be dramatically reduced. Likewise, the amount of time and effort required to install cables in a server network and debug problems in a server network can be drastically reduced.  
         [0027]    While we have shown and described only a few examples herein, it is understood that numerous changes and modifications as known to those skilled in the art could be made to the example embodiment of the present invention. For example, the data network as shown in FIG. 1 may be configured differently or employ some or different components than those illustrated. Such a data network may include a local area network (LAN), a wide area network (WAN), a campus area network (CAN), a metropolitan area network (MAN), a global area network (GAN) and a system area network (SAN), including newly developed computer networks using Future I/O (FIO) and Server Net and those networks which may become available as computer technology advances in the future. However, the port configuration for LED indicators shown in FIG. 2- 3  on a switch may need to be adjusted accordingly. In addition, the port configuration for LED indicators can be implemented either in hardware or software module (i.e., an application program) installed in the host node (end node or switch) in the InfiniBand network. Therefore, we do not wish to be limited to the details shown and described herein, but intend to cover all such changes and modifications as are encompassed by the scope of the appended claims.