Expander I/O module discovery and management system

An expander I/O module discovery/management system includes a secondary system chassis housing an expander I/O module coupled to a server device. The server device identifies the secondary system chassis and an expander I/O module port utilized by that server device, and then generates and transmits an expander I/O module reporting communication identifying the secondary system chassis and the expander I/O module port. A primary system chassis houses a switching I/O module coupled to the expander I/O module. The switching I/O module receives the expander I/O module reporting communication and determines that the secondary system chassis identified in the expander I/O module reporting communication is different than the primary system chassis. In response, the switching I/O module assigns a virtual slot to the expander I/O module, and assigns a virtual port associated with the virtual slot to the expander I/O module port identified in the expander I/O module reporting communication.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to discovering and managing expander I/O modules provided in information handling systems.

Information handling systems are sometimes provided by multi-chassis systems, and each of the chassis in such multi-chassis systems may include, for example, multiple server devices (e.g., blade server devices) connected to Input/Output (I/O) modules, with I/O modules connected between chassis in order to allow server devices to transmit communications between each other and/or over a network. In some of these multi-chassis systems, it may be desirable to configure a “primary system” provided by a first chassis with a relatively sophisticated switching I/O module that is configured to perform switching functions for transmitting communications over a network, while configuring one or more “secondary systems” provided by respective second chassis with relatively unsophisticated expander I/O modules that operate as passive pass-through devices and without the switching functionality available in the switching I/O module, with each of the expander I/O modules in the secondary systems connected to the switching I/O module in the primary system, and the switching I/O module performing the switching functions discussed above for each of the secondary systems. As will be appreciated by one of skill in the art, such multi-chassis configurations allow for the use of several relatively inexpensive expander I/O modules with a single relatively expensive switching I/O module, while reducing cabling needed for the multi-chassis system (e.g., a single cable may be provided between each the expander I/O module in each secondary system and the switching I/O module in the primary system.) However, such multi-chassis configurations involve port extension and expansion, as well as pass-through forwarding operations performed by the secondary systems, which can make port identification and numbering of the ports on the secondary systems difficult, as those ports must be discovered, identified, numbered, and managed in a manner that takes into account the connection of components in both the primary system and the secondary system to the switching I/O module in order to coordinate the port assignment and numbering, with the need to exchange information between the primary system and its components and the secondary system and its components.

Accordingly, it would be desirable to provide an expander I/O module discovery and management system that addresses the issues discussed above.

SUMMARY

According to one embodiment, an Information Handling System (IHS) includes a processing system; and a memory system that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an expander Input/Output (I/O) module discovery and management engine that is configured to: receive, via an expander I/O module that is housed in a secondary system chassis provided for a secondary system from a server device that is housed in the secondary system chassis provided for the secondary system and coupled to the expander I/O module, an expander I/O module reporting communication that identifies: the secondary system chassis; and an expander I/O module port on the expander I/O module that is utilized by the server device; determine, in response to receiving the expander I/O module reporting communication, that the secondary system chassis identified in the expander I/O module reporting communication is different than a primary system chassis that houses the processing system and, in response, assign a virtual slot to the expander I/O module; and assign a virtual port that is associated with the virtual slot to the expander I/O module port identified in the expander I/O module reporting communication.

DETAILED DESCRIPTION

Referring now toFIG. 2, an embodiment of a multi-chassis system200is illustrated. In the illustrated embodiment, the multi-chassis system200incudes a primary system202that is coupled to a network204that may be provided by a Local Area Network (LAN), the Internet, combinations thereof, and/or a variety of other networks known in the art. In an embodiment, the primary system202may be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100. In the examples discussed below, the primary system202may be provided by a PowerEdge MX7000 Modular Chassis available from DELL® Inc. of Round Rock, Tex., United States, which in the examples discussed below includes a switching I/O module such as, for example, a PowerEdge MX5108n Ethernet Switch I/O Module switch device or a PowerEdge MX9116n switch device, each available from DELL® Inc. of Round Rock, Tex., United States, that is configured to perform relatively sophisticated switching operations for components in the primary system as well as the secondary system(s) discussed below in order to, for example, allow communications from those components to be transmitted over the network204. However, while illustrated and discussed as a primary system with a switching I/O module, one of skill in the art in possession of the present disclosure will recognize that the primary system202provided in the multi-chassis system200may include any devices that may be configured to operate similarly as the primary system200discussed below by, for example, performing a variety other operations for itself and the secondary system(s).

In the illustrated embodiment, the primary system202is also coupled to a plurality of secondary systems206a,206b, and up to206c. In an embodiment, any or all of the secondary systems206a-cmay be provided by the IHS100discussed above with reference toFIG. 1, and/or may include some or all of the components of the IHS100. In the examples discussed below, the secondary systems206a-cmay be provided by the PowerEdge MX7000 Modular Chassis available from DELL® Inc. of Round Rock, Tex., United States, which includes an expander I/O module such as, for example, a PowerEdge MX7116n Fabric Expander I/O Module expander device, available from DELL® Inc. of Round Rock, Tex., United States, that is configured as passive pass-through device that connects components in its secondary system to the switching I/O module in the primary system in order to allow the switching I/O module in the primary system202to perform any needed switching operations in order to, for example, transmit its communications via the network204. One of skill in the art in possession of the present disclosure will recognize that the primary system202and secondary systems206a-c, each of which may be provided by the same type of chassis (e.g., the PowerEdge MX7000 Modular Chassis discussed above), may differ based on the types of cards provided for their I/O module, the presence of a management module, and/or other distinguishing features that would be apparent to one of skill in the art in possession of the present disclosure. However, while illustrated and discussed as secondary systems with a expander I/O modules, one of skill in the art in possession of the present disclosure will recognize that the secondary systems206a-cprovided in the multi-chassis system200may include any devices that may be configured to operate similarly as the secondary systems206a-cdiscussed below by, for example, relying on a primary system to perform a variety of other operations.

As discussed above, a user of the multi-chassis system202may provide the primary system202with its relatively sophisticated switching I/O module that is configured to perform switching functions for transmitting communications over a network, while providing the secondary systems206a-cwith relatively unsophisticated expander I/O modules that operate as passive pass-through devices and without the switching functionality available in the switching I/O module. The user may then connect each of the expander I/O modules in the secondary systems to the switching I/O module in the primary system and, during operation of the multi-chassis system200, the switching I/O module will perform switching functions for itself and each of the secondary systems. As will be appreciated by one of skill in the art in possession of the present disclosure, such multi-chassis configurations allow relatively inexpensive expander I/O modules to be utilized in the secondary system while being enabled to communicate via the network via a single cabling entity provided between those expander I/O modules and the relatively expensive switching I/O module that performs those switching operations, thus reducing the costs associated with the multi-chassis system200and the cabling required to provide it. However, while a specific multi-chassis system200has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that the system of the present disclosure may include a variety of systems and system configurations while remaining within the scope of the present disclosure as well.

Referring now toFIG. 3, an embodiment of a primary system300is illustrated that may provide the primary system202discussed above with reference toFIG. 2. As such, the primary system300may be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may include the PowerEdge MX7000 Modular Chassis available from DELL® Inc. of Round Rock, Tex., United States. Furthermore, while illustrated and discussed as a primary system with a switching I/O module, one of skill in the art in possession of the present disclosure will recognize that the primary system300may include any devices that may be configured to operate similarly as the primary system300discussed below by, for example, performing a variety other operations for itself and the secondary system(s). In the illustrated embodiment, the primary system300includes a primary system chassis302that houses the components of the primary system300, only some of which are illustrated below.

For example, the primary system chassis302may house a switching I/O module304that, as discussed above, may be provided by the PowerEdge MX5108n Ethernet Switch I/O Module switch device or a PowerEdge MX9116n switch device, available from DELL® Inc. of Round Rock, Tex., United States, that is configured to perform relatively sophisticated switching operations for components in the primary system as well as the secondary system(s) discussed below in order to, for example, allow communications from those components to be transmitted over the network204. While only a single switching I/O module304is illustrated, one of skill in the art in possession of the present disclosure will recognize that the primary system202/300will typically include multiple switching I/O modules (e.g., for redundancy), and such configurations are envisioned as falling within the scope of the present disclosure as well. I addition, while not illustrated, one of skill in the art in possession of the present disclosure will recognize that the switching I/O module304may include ports coupled to other devices such as, for example, “uplink” ports that couple to other switching I/O modules via an uplink Top Of Rack (TOR) switch device.

Furthermore, one of skill in the art in possession of the present disclosure will recognize that the switching I/O module304may include one or more fabric expander ports that couple to the expander I/O modules in the secondary systems206a-cillustrated inFIG. 2. For example, the switching I/O module304may include fabric expander ports that provide a respective port group to connect to each expander I/O module in the secondary systems206a-c, with each port group providing a 200G “front panel port” made up of eight 25G ports (called “physical breakout interfaces”) that may be connected to its respective expander I/O module in a secondary system206a-cvia a single cabling entity that is configured to connect to the eight ports that provide the 200G front panel port to respective ports on the expander I/O module. In some examples, each port group provided by fabric expander ports may be provided in an “expander mode” that enables the discovery of the expander I/O module to which it is connected in the examples below. However, while a specific example has been provided, one of skill in the art in possession of the present disclosure will recognize that switching I/O modules may couple to expander I/O modules in a variety of manners that will fall within the scope of the present disclosure as well.

The primary system chassis302may also house a plurality of server devices306a,306b, and up to306c, each of which is coupled to the switching I/O module304via, for example, a respective server port on the switching I/O module304. In an embodiment, any or all of the server devices306a-cmay be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may include blade servers and/or other computing devices known in the art. The chassis302may also house a management module308that is coupled to each of the server devices306a-c, as well as to the switching I/O module304. In an embodiment, the management module308may be provided by any of a variety of subsystems that are configured to perform management operations for the components in the primary system300. While a specific primary system300has been illustrated, one of skill in the art in possession of the present disclosure will recognize that primary systems (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the primary system300) may include a variety of components and/or component configurations for providing conventional primary system functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG. 4, an embodiment of a switching I/O module400is illustrated that may provide the switching I/O module304discussed above with reference toFIG. 3. As such, the switching I/O module400may be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be the PowerEdge MX5108n Ethernet Switch I/O Module switch device or a PowerEdge MX9116n switch device, available from DELL® Inc. of Round Rock, Tex., United States. Furthermore, while illustrated and discussed as a switching I/O module400, one of skill in the art in possession of the present disclosure will recognize that the functionality of the switching I/O module400discussed below may be provided by other devices that are configured to operate similarly as the switching I/O module400discussed below. In the illustrated embodiment, the switching I/O module400includes a chassis402that houses the components of the switching I/O module400, only some of which are illustrated below. For example, the chassis402may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an expander I/O module discovery and management engine404that is configured to perform the functionality of the expander I/O module discovery and management engines and/or switching I/O modules discussed below.

The chassis402may also house a storage system (not illustrated, but which may include the storage108discussed above with reference toFIG. 1) that is coupled to the expander I/O module discovery and management engine404(e.g., via a coupling between the storage system and the processing system) and that includes an expander I/O module discovery and management database406that is configured to store any of the information utilized by the expander I/O module discovery and management engine404discussed below. The chassis402may also house a communication system408that is coupled to the expander I/O module discovery and management engine404(e.g., via a coupling between the communication system408and the processing system) and that may be provided by a Network Interface Controller (NIC), wireless communication systems (e.g., BLUETOOTH®, Near Field Communication (NFC) components, WiFi components, etc.), and/or any other communication components that would be apparent to one of skill in the art in possession of the present disclosure. In a specific example, the communication system408may include any of the ports on the switching I/O module400discussed herein as providing connectivity between the switching I/O module400and any other components in the multi-chassis system200. While a specific switching I/O module400has been illustrated, one of skill in the art in possession of the present disclosure will recognize that switching I/O modules (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the switching I/O module400) may include a variety of components and/or component configurations for providing conventional switching I/O module functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG. 5, an embodiment of a secondary system500is illustrated that may provide any or all of the secondary systems206a-cdiscussed above with reference toFIG. 2. As such, the secondary system500may be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may include the PowerEdge MX7000 Modular Chassis available from DELL® Inc. of Round Rock, Tex., United States. Furthermore, while illustrated and discussed as a secondary system with an expander I/O module, one of skill in the art in possession of the present disclosure will recognize that the secondary system500may include any devices that may be configured to operate similarly as the secondary system500discussed below by, for example, relying on a primary system to perform a variety of other operations. In the illustrated embodiment, the secondary system500includes a secondary system chassis502that houses the components of the secondary system500, only some of which are illustrated below.

For example, the secondary system chassis502may house an expander I/O module504that, as discussed above, may be provided by the PowerEdge MX7116n Fabric Expander I/O Module expander device, available from DELL® Inc. of Round Rock, Tex., United States, that is configured as passive pass-through device that connects components in its secondary system to the switching I/O module in the primary system202in order to allow the switching I/O module in the primary system202to perform any needed switching operations in order to, for example, transmit its communications via the network204. While only a single expander I/O module504is illustrated, one of skill in the art in possession of the present disclosure will recognize that the secondary system206a-c/500will typically include multiple expander I/O modules (e.g., for redundancy), and such configurations are envisioned as falling within the scope of the present disclosure as well. While not illustrated, one of skill in the art in possession of the present disclosure will recognize that the expander I/O module504may include “backplane” ports that couple to respective server devices in the secondary system500as discussed below, as well as “uplink” ports that couple to the switching I/O module404in the primary system202/400.

As discussed above, the switching I/O module304/400may include one or more fabric expander ports that couple to the expander I/O module504in the secondary system500. The specific example above describes the switching I/O module304/400providing a port group to connect to the expander I/O module504in the secondary system500, with that port group providing a 200G “front panel port” made up of eight 25G ports, and thus the expander I/O module504may include eight 25G uplink ports that couple to the port group provided by the switching I/O module304/500(e.g., providing a respective 25G connection to each of eight server devices coupled to the expander I/O module504.) As will be appreciated by one of skill in the art in possession of the present disclosure, the port group discussed above that is provided by the switching I/O module304/400to the expander I/O module504may be a first port group provided for eight server devices coupled to the expander I/O module504, and a substantially similar second port group may be provided to that expander I/O module504by the switching I/O module in order to provide similar connectivity to eight additional server devices in the secondary system500. However, while a specific example has been provided, one of skill in the art in possession of the present disclosure will recognize that expander I/O modules may couple to switching I/O modules in a variety of manners that will fall within the scope of the present disclosure as well. For example, in other embodiments, the uplink ports on the expander I/O module discussed above may couple to a TOR switch device that is configured in a Packet Transfer Mode (PTM).

The secondary system chassis502may also house a plurality of server devices506a,506b, and up to506c, each of which is coupled to the expander I/O module504via, for example, a respective backplane port on the expander I/O module504. In an embodiment, any or all of the server devices506a-cmay be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may include blade servers. The chassis502may also house a management module508that is coupled to each of the server devices506a-c, as well as to the expander I/O module504. In an embodiment, the management module508may be provided by any of a variety of subsystems that are configured to perform management operations for the components in the secondary system500. While a specific secondary system500has been illustrated, one of skill in the art in possession of the present disclosure will recognize that secondary systems (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the secondary system500) may include a variety of components and/or component configurations for providing conventional secondary system functionality, as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG. 6, an embodiment of a server device600is illustrated that may provide any or all of the server devices506a-506cdiscussed above with reference toFIG. 5. As such, the server device600may be provided by the IHS100discussed above with reference toFIG. 1and/or may include some or all of the components of the IHS100, and in specific examples may be provided by a blade server Furthermore, while illustrated and discussed as a server device600, one of skill in the art in possession of the present disclosure will recognize that the functionality of the server device600discussed below may be provided by other devices that are configured to operate similarly as the server device600discussed below. In the illustrated embodiment, the server device600includes a chassis602that houses the components of the server device600, only some of which are illustrated below. For example, the chassis602may house a processing system (not illustrated, but which may include the processor102discussed above with reference toFIG. 1) and a memory system (not illustrated, but which may include the memory114discussed above with reference toFIG. 1) that is coupled to the processing system and that includes instructions that, when executed by the processing system, cause the processing system to provide an expander I/O module reporting engine404that is configured to perform the functionality of the expander I/O module reporting engines and/or server devices discussed below.

In a specific example, the expander I/O module reporting engine may be provided by a Baseboard Management Controller (BMC) in the server device600that may be provided by, for example, an integrated DELL® Remote Access Controller (IDRAC) available from DELL® Inc. of Round Rock, Tex., United States that one of skill in the art in possession of the present disclosure will recognize provides a out-of-band management platform for the server device600utilizing (mostly) separate resources from the server device resources (e.g., a separate processing system, memory system, network connection, system bus access, etc.) and via a browser-based or Command Line Interface (CLI) user interface that allows for monitoring and management of the server device600including power management, virtual media access, remote console capabilities, and/or other server device functionality in a manner similar to if the user were at a local console. However, one of skill in the art in possession of the present disclosure will recognize that the expander I/O module reporting functionality described herein may be performed by a variety of server device subsystems while remaining within the scope of the present disclosure as well.

The chassis602may also house a storage system (not illustrated, but which may include the storage108discussed above with reference toFIG. 1) that is coupled to the expander I/O module reporting engine604(e.g., via a coupling between the storage system and the processing system) and that includes an expander I/O module reporting database606that is configured to store any of the information utilized by the expander I/O module reporting engine604discussed below. The chassis602may also house a communication system608that is coupled to the expander I/O module reporting engine604(e.g., via a coupling between the communication system608and the processing system) and that may be provided by a Network Interface Controller (NIC), wireless communication systems (e.g., BLUETOOTH®, Near Field Communication (NFC) components, WiFi components, etc.), and/or any other communication components that would be apparent to one of skill in the art in possession of the present disclosure. In a specific example, the communication system608may include any of the ports on the server devices discussed herein as providing connectivity to the expander I/O module600and any other components in the multi-chassis system200. While a specific server device600has been illustrated, one of skill in the art in possession of the present disclosure will recognize that server devices (or other devices operating according to the teachings of the present disclosure in a manner similar to that described below for the server device600) may include a variety of components and/or component configurations for providing conventional server functionality (e.g., a Central Processing Unit (CPU) and/or other components that are separate from the BMC components discussed above and utilized to provide server device functionality), as well as the functionality discussed below, while remaining within the scope of the present disclosure as well.

Referring now toFIG. 7, an embodiment of a method700for discovering and managing expander I/O modules is illustrated. As discussed below, the systems and methods of the present disclosure provide a switching I/O module that performs automatic discovery and management of connected expander I/O modules in a multi-chassis system in order to dynamically discovery and manage ports on the expander I/O modules that are utilized by server devices. This is enabled, as least in part, by communications between the server devices and the switching I/O module via the expander I/O module(s) that allow the switching I/O module to virtualize the expander I/O modules by, for example, assigning a virtual slot to discovered I/O modules, and assigning respective virtual ports to the expander I/O module ports on the expander I/O module that are utilized by the server devices. For example, in a multi-chassis system with a primary system having a primary system chassis housing a switching I/O module, and secondary system(s) having respective secondary chassis housing respective expander Input/Output (I/O) modules, any server device coupled to an expander I/O module in a secondary system may identify the secondary system chassis that houses their expander I/O module, and an expander I/O module port on their expander I/O module that is utilized by that server device. Those server device(s) may then generate and transmit an expander I/O module reporting communication to the switching I/O module that identifies the secondary system chassis and the expander I/O module port. The switching I/O module receives the expander I/O module reporting communication via the expander I/O module and determines that the secondary system chassis identified in the expander I/O module reporting communication is different than the primary system chassis. In response, the switching I/O module assigns a virtual slot to the expander I/O module, and assigns a virtual port that is associated with the virtual slot to the expander I/O module port identified in the expander I/O module reporting communication.

The method700begins at block702where a management module in a secondary system identifies an expander I/O module located in an expander I/O module slot in a secondary system chassis to a server device. With reference toFIG. 8, in an embodiment of block702, the management module508in the secondary system500may perform expander I/O module access operations800in order to access the expander I/O module504in order to identify the expander I/O module504and an expander I/O module slot that is defined by the secondary system chassis502and that houses the expander I/O module504. While block702is described for a single secondary system500below, one of skill in the art in possession of the present disclosure will recognize that the operations of the secondary system500may be performed by any of the secondary systems206a-cdiscussed above with reference toFIG. 2while remaining within the scope of the present disclosure.

For example, at block702, the expander I/O module504may be connected to the secondary system500(e.g., inserted into the expander I/O module slot defined by the secondary system chassis502, and connected (e.g., “plugged in”) to a backplane in the secondary system chassis502such that the expander I/O module is coupled to the management module508(and the server devices506a-506c)), and powered on, reset, and/or otherwise initialized. In response, the management module508may detect the presence of the expander I/O module504and, in response, may retrieve an expander I/O module service tag and/or other expander I/O module identifier from the expander I/O module504(e.g., located on an Electrically Erasable Programmable Read-Only Memory (EEPROM) or other storage subsystem in the expander I/O module504), may identify the expander I/O slot in the secondary system chassis502in which the expander I/O module504is housed (e.g., via an expander I/O slot identifier that is assigned based on the location of the physical connection of the 200G port to the secondary system500, interactions between the expander module and the management module at a hardware layer in order to identify the slot in which the expander module is located, and/or in a variety of other manners known in the art), and/or identify or retrieve any of a variety of other information utilized as discussed below and/or that would be apparent to one of skill in the art in possession of the present disclosure. However, while a few specific examples have been provided, one of skill in the art in possession of the present disclosure will recognize that information about the expander I/O module502(e.g., the identifications of the expander I/O module, the expander I/O module slot, etc.) may be retrieved/identified using a variety of techniques known in the art.

With reference toFIG. 9, in an embodiment of block702and in response to identifying the expander I/O module504and the expander I/O module slot, the management module508may generate and transmit expander I/O module information messages802that include identifications of the expander I/O module504and the expander I/O module slot (as well as any other information about the expander I/O module504retrieved/identified at block702) to any or all of the server devices506a-506cin the secondary system chassis502. For example, as discussed above, each of the server devices506a-506cmay include a BMC (e.g., the iDRAC discussed above) that provides the expander I/O module reporting engine604in that server device506a-c/600, and at block704the expander I/O module information messages802may be transmitted by the management module508to the BMC in each server device506a-c. As such, at block704, the expander I/O module reporting engine604in each server device506a-c/600may receive an expander I/O module information messages802via its communication system608and, in response, may identify the expander I/O module504to which it is connected in its secondary system chassis502, as well as the expander I/O module slot that is defined by that secondary system chassis502and that houses that expander I/O module504.

The method700then proceeds to block704where the server device identifies an expander I/O module port on the expander I/O module that is utilized by that server device. In an embodiment of block704, the expander I/O module reporting engine604in each server device506a-c/600may operate to identify the expander I/O module port that it utilizes on the expander I/O module504, as well as a variety of other component and/or configuration information about the secondary system500. With reference to the specific example provided below, at block704, the BMC (e.g., the iDRAC discussed above) in the server device600that provides the expander I/O module reporting engine604may access secondary system component and/or configuration information (e.g., in a storage and/or memory system in the BMC (e.g., the expander I/O module reporting database606), available via communications by the BMC with components in the secondary system500, etc.) in order to retrieve and/or identify a port type of the expander I/O module port on the expander I/O module504that is utilized by that server device600, a port Fully Qualified Device Descriptor (FQDD) for the expander I/O module port on the expander I/O module504that is utilized by that server device600, a server device service tag or other server device identifier for that server device600, a server device model name for that server device600, a server device slot number for the server device slot that is defined by the secondary system chassis502and that houses that server device600, a chassis server tag or other chassis identifier for the secondary system chassis502, a chassis model name for the secondary system chassis502, an expander I/O module model name for the expander I/O module504, an expander I/O module port number that identifies the expander I/O module port on the expander I/O module504that is utilized by that server device600, and/or any other information that would be apparent to one of skill in the art in possession of the present disclosure. As will be appreciated by one of skill in the art in possession of the present disclosure, the BMC in a server device may be provided with and/or have access to any of a variety of secondary system details, and thus any of those details may be retrieved and/or identified at block704.

The method700then proceeds to block706where the server device generates an expander I/O module reporting communication and transmits that expander I/O module reporting communication to a switching I/O module in a primary system. In an embodiment, at block706, the expander I/O module reporting engine604in each server device506a-c/600may operate to utilize the identifications of the expander I/O module504and the expander I/O module slot (as well as any other information about the expander I/O module504retrieved/identified at block702), the identification of the expander I/O module port on the expander I/O module that is utilized by that server device (as well as any other information accessed/retrieved at block704), in order to generate an expander I/O module reporting communication. For example, at block706, the BMC (e.g., the iDRAC discussed above) in the server device600that provides the expander I/O module reporting engine604may generate a Link Layer Discovery Protocol (LLDP) communication including customer Type-Length-Value (TLV) structures that store any of the information transmitted in the expander I/O reporting communication as discussed below, as well as any other information that would be apparent to one of skill in the art in possession of the present disclosure.

With reference toFIG. 10, a specific example of an expander I/O reporting communication1000that may be generated and transmitted by the server device600at block706is illustrated. In the illustrated embodiment, the expander I/O reporting communication1000includes a sub-type 1 associated with an originator property that, as illustrated in the comments associated with the sub-type 1, may provide a “BMC” string in order to allow the switching I/O module that receives the expander I/O reporting communication1000to identify the expander I/O reporting communication1000as a communication (e.g., an LLDP communication) originating from the BMC in the server device600(e.g., rather than as one of many LLDP communications that may originate from other components in the server device600). The illustrated example of the expander I/O reporting communication1000also includes a sub-type 2 associated with a port type property that, as illustrated in the comments associated with the sub-type 2, may identify the port type of the expander I/O port on the expander I/O module that is utilized by the server device600as a BMC port (e.g., via a “1” designation), a NIC port (e.g., via a “2” designation), or a shared BMC/NIC port (e.g., via a “3” designation).

The illustrated example of the expander I/O reporting communication1000also includes a sub-type 3 associated with a port FQDD property that, as illustrated in the comments associated with the sub-type 3, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify a NIC Port in the server device600that is coupled to the expander I/O module504. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 4 associated with a server service tag property that, as illustrated in the comments associated with the sub-type 4, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the server device600. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 5 associated with a server model name property that, as illustrated in the comments associated with the sub-type 5, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify a model of the server device600. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 6 associated with a server slot number property that, as illustrated in the comments associated with the sub-type 6, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify a server device slot that is defined by the secondary system chassis504and that houses the server device600.

The illustrated example of the expander I/O reporting communication1000also includes a sub-type 7 that is associated with a chassis service tag property that, as illustrated in the comments associated with the sub-type 7, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the secondary system chassis502. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 8 that is associated with a chassis model name property that, as illustrated in the comments associated with the sub-type 8, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the model of the secondary system chassis502. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 9 that is associated with a expander I/O module service tag property that, as illustrated in the comments associated with the sub-type 9, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the expander I/O module504. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 10 that is associated with a expander I/O module model name property that, as illustrated in the comments associated with the sub-type 10, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the model of the expander I/O module504.

The illustrated example of the expander I/O reporting communication1000also includes a sub-type 11 that is associated with a expander I/O module slot label property that, as illustrated in the comments associated with the sub-type 11, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the expander I/O module slot that is defined by the secondary system chassis502and that houses the expander I/O module504. The illustrated example of the expander I/O reporting communication1000also includes a sub-type 12 that is associated with a expander I/O module port number property that, as illustrated in the comments associated with the sub-type 12, may allow the switching I/O module that receives the expander I/O reporting communication1000to identify the expander I/O module port on the expander I/O module504that is utilized by the server device600. However, while a specific example of an expander I/O reporting communication1000has been illustrated and described, one of skill in the art in possession of the present disclosure will recognize that expander I/O reporting communications according to the teachings of the present disclosure may be provided using a variety of techniques and may include a variety of information while remaining within the scope of the present disclosure as well.

As illustrated inFIGS. 11 and 12, at block706, the expander I/O module reporting engine604(e.g., provided by a BMC) in each of the server devices506a-c/600may then operate to transmit expander I/O module reporting communications1100via its communication system608and through the expander I/O module (e.g., via the expander I/O module port utilized by each of those server devices506a-c/600) to the primary system202.FIG. 12illustrates how each of the secondary systems206a-cmay transmit multiple expander I/O module reporting communications1100from its server devices to the primary system202, which one of skill in the art in possession of the present disclosure will appreciate allows any server device included in any of the secondary systems206a-cto report information about the expander I/O module in its secondary system to which it is connected, along with a variety of other information about that secondary system as well.

The method700then proceeds to block708where the switching I/O module in the primary system determines that the secondary system chassis identified in the expander I/O module reporting communication is different than a primary system chassis provided for the primary system. In an embodiment, at block708, the switching I/O module304in the primary system202/300may receive any expander I/O module reporting communication1000/1100generated and transmitted by a secondary system206a-c. As such, at block708, the expander I/O module discovery and management engine404in the switching I/O module304/400may receive expander I/O module reporting communication(s)1000/1100via its communication system408. As discussed above with reference to the example of the expander I/O module communication1000illustrated inFIG. 10, the expander I/O module reporting communication1000/1100may include a sub-type 1 associated with an originator property that may provide a “BMC” string, and at block708, the expander I/O module discovery and management engine404in the switching I/O module304/400may read the “BMC” string in the originator property of sub-type 1 and identify the expander I/O reporting communication1000/1100as a communication (e.g., an LLDP communication) originating from the BMC in the server device600(e.g., rather than as one of many LLDP communications that may originate from other components in the server device600). For example, the expander I/O module discovery and management engine404in the switching I/O module304/400may be configured to only perform the expander I/O discovery functionality discussed below in response to receiving LLDP communications from the BMC in the server device600, and thus a determination at block708that an LLDP communication has been received from a component in the server device other than the BMC may be ignored by the expander I/O module discovery and management engine404in the switching I/O module304/400.

As also discussed above with reference to the example of the expander I/O module communication1000illustrated inFIG. 10, the expander I/O reporting communication1000/1100also includes a sub-type 7 that is associated with a chassis service tag property, and at block708, the expander I/O module discovery and management engine404in the switching I/O module304/400may read the chassis service tag in the chassis service tag property of sub-type 7 and identify the secondary system chassis502that houses the server device from which the expander I/O reporting communication1000/1100was received (and thus houses the expander I/O module504identified in that expander I/O reporting communication1000/1100as well.) In response to identifying the secondary system chassis502via that chassis service tag, the expander I/O module discovery and management engine404in the switching I/O module304/400may compare that chassis service tag to a chassis service tag that identifies the primary system chassis302in which the switching I/O module304/400is located, and determine that the chassis service tag for the secondary system chassis502that houses the expander I/O module504is different than the chassis service tag for the primary system chassis302that houses the switching I/O module304.

As discussed above, in some embodiments, the determination by the switching expander I/O module discovery and management engine404in the switching I/O module304/400that the chassis service tag for the secondary system chassis502that houses the expander I/O module504is different than the chassis service tag for the primary system chassis302that houses the switching I/O module304may only be performed for LLDP communications received from the BMC in the server device. Furthermore, the expander I/O module discovery and management engine404in the switching I/O module304/400may be configured to only perform the expander I/O discovery functionality discussed below in response to LLDP communications that identity that a chassis service tag for a secondary system chassis that houses an expander I/O module is different than the chassis service tag for the primary system chassis302that houses the switching I/O module304, and thus a determination that an LLDP communication identifies the primary system chassis302may result in the method700ending.

The method700then proceeds to block710where the switching I/O module in the primary system determines that the expander I/O module slot identified in the expander I/O module reporting communication is the same type of slot as a switching I/O module slot in the primary system chassis that houses the switching I/O module. As discussed above with reference to the example of the expander I/O module communication1000illustrated inFIG. 10, the expander I/O module reporting communication1000/1100may include a sub-type 11 associated with an expander I/O module slot label property, and at block708, the expander I/O module discovery and management engine404in the switching I/O module304/400may read the expander I/O slot label in the expander I/O slot label property of sub-type 1 and identify the expander I/O module slot that is defined by the secondary system chassis502and that houses the expander I/O module504.

In response to identifying the expander I/O module slot that is defined by the secondary system chassis502and that houses the expander I/O module504, the expander I/O module discovery and management engine404in the switching I/O module304/400may identify an I/O module slot type of the expander I/O module slot to an I/O module slot type of the switching I/O module slot that is defined by the primary system chassis302and that houses the switching I/O module304, and determine that the expander I/O module slot that houses the expander I/O module504is the same type of I/O module slot as the switching I/O module slot that houses the switching I/O module304. For example, the expander I/O module slot defined by the secondary system chassis502may be considered the same type of I/O module slot as the switching I/O module slot defined by the primary system chassis302when both of the expander I/O module slot and the switching I/O module slot are defined in the same location in the secondary system chassis502and the primary system chassis302, respectively (e.g., both are provided in the respective I/O module slot locations labeled as “A1 slots” in each of the secondary system chassis502and the primary system chassis302.)

As discussed above, in some embodiments, the determination by the switching expander I/O module discovery and management engine404in the switching I/O module304/400that the expander I/O module slot that houses the expander I/O module504is the same type of I/O module slot as the switching I/O module slot that houses the switching I/O module304may only be performed for LLDP communications received from the BMC in a server device that is not included in the primary system chassis302. Furthermore, the expander I/O module discovery and management engine404in the switching I/O module304/400may only be configured to perform the expander I/O discovery functionality discussed below in response to LLDP communications that identity that an expander I/O module slot that houses an expander I/O module is the same type of I/O module slot as the switching I/O module slot that houses the switching I/O module304, and thus a determination that an LLDP communication identifies that an expander I/O module slot that houses an expander I/O module is a different type of I/O module slot as the switching I/O module slot that houses the switching I/O module304may result in the method700ending.

While a few specific examples have been provided that describes the switching I/O module304determining whether an expander I/O module reporting communication has been received from a server device that is located “behind” an expander I/O module (i.e., that server device is coupled to the switching I/O module in the primary system chassis via an expander I/O module in a different secondary system chassis) at block710, one of skill in the art in possession of the present disclosure will recognize that a variety of operations and/or determinations may be performed by the switching I/O module in order to determine whether the expander I/O module identified in the expander I/O module reporting communication received at block710is an expander I/O module that is located in the same type of I/O module slot as the switching I/O module (i.e., indicating that it is being utilized by the server device to access the switching I/O module in order to communicate via the network) and in a different chassis than that switching I/O module. For example, any of the information included in the expander I/O module reporting communication1000discussed above with reference toFIG. 10may be utilized by block710while remaining within the scope of the present disclosure as well.

The method700then proceeds to block712where the switching I/O module in the primary system assigns a virtual slot to the expander I/O module discovered via the expander I/O module reporting communication, and a virtual port to the expander I/O module port identified in the expander I/O module reporting communication. In an embodiment, at block712and in response to discovering an expander I/O module (e.g., that is in a different chassis than the switching I/O device and in the same type of I/O module slot as the switching I/O device in at least some of the examples provided above), the expander I/O module discovery and management engine404in the switching I/O module304/400may operate to assign a virtual slot to that expander I/O module, and assign a virtual port associated with that virtual slot to the expander I/O module port that is utilized by the server device that provided the expander I/O module reporting communication (which identifies that expander I/O module port).

In some examples, the expander I/O module discovery and management engine404in the switching I/O module304/400may automatically assign the virtual slot to the expander I/O module based on, for example, a port group on the switching I/O module304that is coupled to the expander I/O module504. For example, the primary system202/300may be provided with a “Smart Fabric Mode” in which the expander I/O module discovery and management engine404in the switching I/O module304/400may identify the expander I/O module504and, in response, automatically identify its port group (e.g., a first port group) that is coupled to that expander I/O module504(discussed above), and then assign a virtual slot number to the expander I/O module504based on that port group. In other examples, the expander I/O module discovery and management engine404in the switching I/O module304/400may allow for the manual assignment of the virtual slot to the expander I/O module. For example, the primary system202/300may be provided with a “Full Switch Mode” in which the expander I/O module discovery and management engine404in the switching I/O module304/400may identify the expander I/O module504and, in response, inform a user (e.g., via a display device) that the expander I/O module504has been discovered. When the expander I/O module discovery and management engine404in the switching I/O module304/400receives a virtual slot identification from the user (e.g., via a Graphical User Interface (GUI) provided on the display device), it may assign a virtual slot number to the expander I/O module504based on the virtual slot identification provided by the user.

Following the assignment of the virtual slot to the expander I/O module504discovered via the method700, the expander I/O module discovery and management engine404in the switching I/O module304/400may create a virtual port for the expander I/O module port (e.g., a backplane port) on the expander I/O module504that is coupled to the server device that provided the expander I/O module reporting communication (and which is identified in that expander I/O module reporting communication.) As discussed above, the switching I/O module304may provide a respective port group to connect to each expander I/O module in the secondary systems206a-c, with each port group providing a 200G “front panel port” made up of eight 25G ports (called “physical breakout interfaces”), and the assignment of the virtual port to the expander I/O module port may include mapping a physical breakout interface (e.g., a 25G port in a port group in the example above) to that virtual port (e.g., each virtual port may be created and associated with a 25G physical breakout from the 200G front panel port.)

With reference toFIG. 13, an embodiment of a CLI show command result1300for a CLI “show” command provided to the switching I/O module302in order list expander I/O modules discovered according to the method700is illustrated. As can be seen, the CLI show command result1300includes a row for each discovered expander I/O module, with each row including an identification of a service tag for that expander I/O module, a model of that expander I/O module, a type of that expander I/O module, a secondary system chassis service tag for the chassis that houses that expander I/O module, a system chassis expander I/O module slot in the secondary system chassis that houses that expander I/O module, a port group provided for that expander I/O module, and a virtual slot identifier for that expander I/O module.

As will be appreciated by one of skill in the art in possession of the present disclosure, the first expander I/O module that was discovered as indicated in the CLI show command result1300(e.g., the last expander I/O module in the CLI show command result1300with service tag “2SHFXC2”, model “MX7116n Expander Module”, Type “1”, in the secondary system chassis with service tag “20CCT02”, in expander I/O module slot “A1” in that secondary system chassis) was assigned a virtual slot identifier of “71” and a virtual port group of “1/1/1”, the second expander I/O module that was discovered as indicated in the CLI show command result1300(e.g., the third-to-last expander I/O module in the CLI show command result1300with service tag “3RHFXC2”, model “MX7116n Expander Module”, Type “1”, in the secondary system chassis with service tag “20CCT03”, in expander I/O module slot “A1” in that secondary system chassis) was assigned a virtual slot identifier of “72” and a virtual port group of “1/1/2”, and so on. Furthermore, each virtual port group may be mapped to physical ports. In the specific examples provided below, the virtual port group 1/1/1 is mapped to physical ports 17 and 18 and operates to provide eight 25G channels. Similarly, the virtual port group 1/1/2 may be mapped to physical ports 19 and 20, and so on.

Further still, a user may provide CLI “show” commands to the switching I/O module302to identify the mappings of physical-to-virtual ports provided according to the method700. For example, an examples of such a show command may look as follows:

20CCT02-A1-12SHFXC2# show interface ethernet 1/1/17:1

Where “20CCT02” identifies the service tag for the secondary system chassis that houses the expander I/O slot that includes the physical expander I/O module port, “A1” identifies the expander I/O module slot in that secondary system chassis that houses that expander I/O module, “1” identifies the type of the secondary system chassis, “2SHFXC2” identifies the service tag for that expander I/O module, and “1/1/17:1” identifies the first channel provided by the expander I/O module physical port of interest (e.g., physical port 17) in the virtual port group provided for that expander I/O module (e.g., virtual port group 1/1/1). The respond to such a CLI show command may include:
Etherntet 1/1/17:1 is up, line protocol is dormant
Interface is mapped to Ethernet 1/71/1

Similarly, another example of such a show command may look as follows:

20CCT02-A1-12SHFXC2# show interface ethernet 1/1/17:2

Where “20CCT02” identifies the service tag for the secondary system chassis that houses the expander I/O slot that includes the physical expander I/O module port, “A1” identifies the expander I/O module slot in that secondary system chassis that houses that expander I/O module, “1” identifies the type of the secondary system chassis, “2SHFXC2” identifies the service tag for that expander I/O module, and “1/1/17:2” identifies the second channel provided by the expander I/O module physical port of interest (e.g., physical port 17) in the virtual port group provided for that expander I/O module (e.g., virtual port group 1/1/1). The respond to such a CLI show command may include:
Etherntet 1/1/17:2 is up, line protocol is dormant
Interface is mapped to Ethernet 1/71/2

Similarly, another example of such a show command may look as follows:

20CCT02-A1-12SHFXC2# show interface ethernet 1/1/18:3

Where “20CCT02” identifies the service tag for the secondary system chassis that houses the expander I/O slot that includes the physical expander I/O module port, “A1” identifies the expander I/O module slot in that secondary system chassis that houses that expander I/O module, “1” identifies the type of the secondary system chassis, “2SHFXC2” identifies the service tag for that expander I/O module, and “1/1/18:3” identifies the third channel provided by the expander I/O module physical port of interest (e.g., physical port 18) in the virtual port group provided for that expander I/O module (e.g., virtual port group 1/1/1). The respond to such a CLI show command may include:
Etherntet 1/1/18:3 is up, line protocol is dormant
Interface is mapped to Ethernet 1/71/7

The method700then proceeds to block714where the switching I/O module in the primary system applies a configuration to the virtual port. In an embodiment, at block714, the expander I/O module discovery and management engine404in the switching I/O module304/400may apply any configurations desired for a server device to the virtual port that is assigned to the expander I/O module port utilized by that server device, and that is associated with the virtual slot that was assigned to the expander I/O module that includes that virtual port. For example, the types and method of configuration for the virtual ports may be the same as is used for other ports and interface configurations for the system, with specific configurations derived based on server device profiles/policies, and applied to virtual ports on which the server devices are discovered. As such, one of skill in the art in possession of the present disclosure will recognize that any configuration that may be applied to a physical port in the system may applied to the virtual ports/virtual port groups as well.

Thus, systems and methods have been described that provide a switching I/O module that performs automatic discovery and management of connected expander I/O modules in a multi-chassis system in order to dynamically manage ports on the expander I/O modules that are utilized by server devices. This is enabled, as least in part, by communications between the server devices and the switching I/O module via the expander I/O module(s) that allow the switching I/O module to virtualize the expander I/O modules by, for example, assigning a virtual slot to discovered I/O modules, and assigning respective virtual ports to the expander I/O module ports on the expander I/O module that are utilized by the server devices. For example, in a multi-chassis system with a primary system having a primary system chassis housing a switching I/O module and secondary system(s) having respective secondary chassis housing respective expander Input/Output (I/O) modules, any server device coupled to an expander I/O module in a secondary system may identify the secondary system chassis that houses their expander I/O module and an expander I/O module port on their expander I/O module that is utilized by that server device, and may then generate and transmit an expander I/O module reporting communication that identifies the secondary system chassis and the expander I/O module port. The switching I/O module receives the expander I/O module reporting communication via the expander I/O module and determines that the secondary system chassis identified in the expander I/O module reporting communication is different than the primary system chassis. In response, the switching I/O module assigns a virtual slot to the expander I/O module, and assigns a virtual port that is associated with the virtual slot to the expander I/O module port identified in the expander I/O module reporting communication. Configurations to be provided for the server devices may then be applied to their assigned virtual port associated with the virtual slot assigned to their connected expander I/O module.