Some embodiments described herein relate generally to switch fabric systems, and, in particular, to methods and apparatus for configuration binding in a distributed switch within a switch fabric system.
Some known distributed switches within a switch fabric system can associate a module identifier (e.g., a serial number) to a named block to specify configuration information that belongs to which module. Such a method does not allow, however, for physical replacement of components without a corresponding change in configuration information by an administrator. For example, replacement of an edge device (e.g., an access switch) within a switch fabric can involve changing the configuration information to associate the identity of the new edge device (i.e., replacement edge device) with the configuration information of the edge device that is being replaced. Although such an approach can be appropriate in some deployments of the distributed switch, it may be desirable in other deployments to provide additional modes of operation and configuration associations.
Accordingly, a need exists for the ability to provide configuration binding associations within a distributed switch fabric system to allow for physical replacement and/or movement of components of the distributed switch fabric system without a change in configuration information associated with that component.
An apparatus includes a network management module to store a network configuration file. The network configuration file having a binding association with an identifier of a port from a set of ports of a switch fabric when the network management module is in a first configuration. The network management module selects the network configuration file based on the binding association with the identifier of the port in response to an access switch being operatively coupled to the port. The network configuration file having a binding association with an identifier of the access switch when the network management module is in a second configuration. The network management module selects the network configuration file based on the binding association with the identifier of the access switch in response to the access switch being operatively coupled to the port.
Systems, apparatus and methods are described herein to provide configuration binding in a switch fabric system. For example, a module as described herein can provide physical replacement of components within a switch fabric system, without a corresponding change in the configuration information by an administrator. A physical replacement method similar to replacing blades in a chassis-based switch or router may be desirable in some operational deployments of a switch fabric system. Such a physical replacement method can supplement a logical configuration binding by allowing both physical attachment error detection and transparent replacement of components of the switch fabric system. In addition, physical binding of configuration information can be used to validate the physical connection attachments on the components within the switch fabric system. Such a validation can check the initial configuration if the physical attachment information is entered into the named configuration block. Such a validation can also check configuration changes against the physical system (e.g., physical components and physical attachments between components) to ensure conformance between the configuration changes and the physical system.
The configuration information can be included within a network configuration file. The configuration information can, for example, relate to a portion of the switch fabric system or to the entire switch fabric system. Thus, in some embodiments, configuration binding can be provided for a portion of the switch fabric system or to the entire switch fabric system. Accordingly, it should be understood that references herein to a network configuration file can refer to configuration information for a portion of a switch fabric system or to configuration information for the entire switch fabric system. For example, references to storing or binding a network configuration file can relate to storing or binding configuration information for a portion of the switch fabric system or to the entire switch fabric system.
In some embodiments, an apparatus includes a network management module to store a network configuration file. The network configuration file having a binding association with an identifier of a port from a plurality of ports of a switch fabric when the network management module is in a first configuration. The network management module selects the network configuration file based on the binding association with the identifier if the port in response to an access switch being operatively coupled to the port. The network configuration file having a binding association with an identifier of the access switch when the network management module is in a second configuration. The network management module selects the network configuration file based on the binding association with the identifier of the access switch in response to the access switch being operatively coupled to the port.
In some embodiments, a non-transitory processor-readable medium storing code representing instructions to cause a processor to select, during a first time period, a network configuration file in response to a first access switch being coupled to the port of the switch fabric and a network management module being in a first configuration in which the network configuration file has a binding association with an identifier of the first access switch. After the first time period but before a second time period, the network management module can be switched from the first configuration to a second configuration. The network configuration file has a binding association with an identifier of the port of the switch fabric and not the identifier of the first access switch when the network management module is in the second configuration. During the second time period, the network configuration file can be selected in response to the second access switch being coupled to the port of the switch fabric and the network management module being in the second configuration.
In some embodiments, a system includes multiple access switches. Each access switch from the multiple access switches configured to be operatively coupled to a port from multiple ports of a switch fabric. Each access switch from the multiple switches has an identifier. The identifier of each access switch from the multiple access switches has a binding association with a network configuration file from a set of network configuration files when the multiple access switches are in a first configuration such that each access switch from the multiple access switches is associated with one network configuration file from the set of network configuration files independent of which port from the multiple ports each access switch from the multiple access switches is to be operatively coupled. Each access switch from the multiple access switches is to be assigned a network configuration file from the set of network configuration files when the multiple access switches are in a second configuration and based on the port from the multiple ports to which each access switch is to be operatively coupled.
As described herein, a network management module can have different states or stored values that can be referred to as multiple different configurations. A network management module can have an associated configuration table with multiple rows that each can be associated with its own configuration. In other words, although the network management module is often described herein as being in a particular configuration, it should be understood that each row of the associated table can be in a particular configuration that is the same as or different from the configuration for the remaining rows. For example, the network management module can have a first configuration in which the network management module defines a binding association of a configuration file with an identifier of a port of a switch fabric. The network management module can have a second configuration in which the network management module defines a binding association of a configuration file with an identifier of an access switch coupled to a port of switch fabric. In some embodiments, the network management module can have a third configuration in which the network management module defines a binding association between an identifier of an access switch and an identifier of a port of the switch fabric.
The terms “first configuration”, “second configuration”, “third configuration” and so are used herein to refer to configurations of a network management module that define different binding associations of components within a switch fabric system. In some instances, these terms refer to a specific configuration of the network management module. For example, as described above, in a first configuration, the network management module can define a binding association between a configuration file and a port or port identifier of a fabric switch. In other instances, however, the terms refer to different configurations in the order referenced or discussed. Thus, in certain contexts, the terms “first configuration”, “second configuration” and so on can refer to any of the configuration of the network management module. Similarly, an access switch can have various configurations that can also be referred to, for example, as “first configuration”, “second configuration”, “third configuration” and so on. For example, an access switch can be coupled to a first port of a switch fabric when in a first configuration and that same access switch can be coupled to a second port of the access switch and not the first port when in a second configuration. Thus, it should be understood that the specific context will indicate whether the terms “first configuration”, “second configuration” and so on can refer to a specific configuration or can refer to any particular configuration.
A switch fabric system, or a portion of a switch fabric system can have multiple different arrangements. As described herein, an arrangement can refer to the particular positioning and operative couplings of access switches to ports of a switch fabric. For example, a first access switch can be coupled to a first port of a switch fabric and a second access switch can be coupled to a second port of the switch fabric to define a first arrangement of the switch fabric system. The first access switch can be coupled to a third port of the switch fabric and the second access switch can be coupled to the second port of the switch fabric to define a second arrangement of the switch fabric system. Various combinations of operative couplings between access switches and ports of a switch fabric can be defined.
Embodiments shown and described herein refer to multiple communication layers (e.g., data link layer (layer-2), network layer (layer-3), physical layer (layer-1), application layer (layer-7), etc.). Such communication layers can be defined by the open systems interconnection (OSI) model. Accordingly, the physical layer can be a lower level layer than the data link layer. Additionally, the data link layer can be a lower level layer than the network layer and the application layer. Further, different protocols can be associated with and/or implemented at different layers within the OSI model. For example, an Ethernet protocol, a Fibre Channel protocol and/or a cell based protocol (e.g., used within a data plane portion of a communications network) can be associated with and/or implemented at a data link layer, and a Border Gateway Protocol (BGP) can be associated with and/or implemented at a higher layer, such as, for example, an application layer. Although BGP can be implemented at the application layer, it can be used to send forwarding-state information (e.g., port identifiers, network segment identifiers, peripheral processing device identifiers, etc.) used to populate a routing table associated with a network layer and/or data link layer.
As used herein, the term “physical hop” can include a physical link between two modules and/or devices. For example, a data path operatively coupling a first module with a second module can be said to be a physical hop. Similarly stated, a physical hop can physically link the first module with the second module.
As used herein, the term “single physical hop” can include a direct physical connection between two modules in a system. Similarly stated, a single physical hop can include a link via which two modules are coupled without intermediate modules. Accordingly, for example, if a first module is coupled to a second module via a single physical hop, the first module can send data packets directly to the second module without sending the data packets through intervening modules.
As used herein, the term “single logical hop” means a physical hop and/or group of physical hops that are a single hop within a network topology associated with a first protocol. Similarly stated, according to the topology associated with the first protocol, no intervening nodes exist between a first module and/or device operatively coupled to a second module and/or device via the physical hop and/or the group of physical hops. A first module and/or device connected to a second module and/or device via a single logical hop can send a data packet to the second module and/or device using a destination address associated with the first protocol and the second module and/or device, regardless of the number of physical hops between the first device and the second device. In some embodiments, for example, a second protocol can use the destination address of the first protocol to route a data packet and/or cell from the first module and/or device to the second module and/or device over the single logical hop. Similarly stated, when a first module and/or device sends data to a second module and/or device via a single logical hop of a first protocol, the first module and/or device treats the single logical hop as if it is sending the data directly to the second module and/or device.
In some embodiments, a switch fabric can function as part of a single logical hop (e.g., a single large-scale consolidated L2/L3 switch). Portions of the switch fabric can be physically distributed across, for example, many chassis and/or modules interconnected by multiple physical hops. In some embodiments, for example, a processing stage of the switch fabric can be included in a first chassis and another processing stage of the switch fabric can be included in a second chassis. Both of the processing stages can logically function as part of a single consolidated switch (e.g., within the same logical hop according to a first protocol) but include a separate single physical hop between respective pairs of processing stages. Similarly stated, a physical hop can operatively couple each stage within a switch fabric representing a single logical hop associated with a protocol used to route data outside the switch fabric. Additionally, packet classification and forwarding associated with a protocol used to route data outside a single logical hop need not occur at each stage within the single logical hop. In some embodiments, for example, packet classification and forwarding associated with a first protocol (e.g., Ethernet) can occur prior to a module and/or device sending the data packet to another module and/or device via the single logical hop.
As used herein, a module that is within a switch fabric can be, for example, any assembly and/or set of operatively-coupled electrical components that define one or more switches within a stage of a switch fabric. In some embodiments, a module can include, for example, a memory, a processor, electrical traces, optical connectors, and/or the like.
As used herein, “associated with” can mean, for example, included in, physically located with, a part of, and/or operates or functions as a part of For example, a module associated with a first stage of a switch fabric can be said to be included in, physically located with or a part of the first stage of the switch fabric. A module associated with a first stage of a switch fabric can also be said to operate or function as a part of the first stage of the switch fabric. Additionally, “associated with” can mean, for example, references, identifies, characterizes, describes, and/or sent from. For example, an identifier associated with a virtual channel can be an identifier that identifies, references and/or relates to the virtual channel.
As used in this specification, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, the term “a switch fabric” is intended to mean a single switch fabric or a combination of switch fabrics.
The terms “first stage”, “second stage” and so on refer to portions, modules or nodes within a switch fabric. In some instances, these terms refer to a specific stage within a given switch fabric. For example, a three-stage Clos network includes three consecutive stages from ingress to egress; such a switch fabric has three stages that can be referred to as the “first stage” (the first stage with respect to the ingress to egress direction) through the third stage (the third and final stage with respect to the ingress to egress direction). For example,
The peripheral processing devices 114, 124, 134 can be operatively coupled to the access switches 182, 184, 186 of the switch fabric system 100 using any suitable connection such as, for example, an optical connection (e.g., an optical cable and optical connectors), an electrical connection (e.g., an electrical cable and electrical connectors) and/or the like. As such, the peripheral processing devices 114, 124, 134 are configured to send data (e.g., data packets, data cells, etc.) to the switch fabric system 100 via the access switches 182, 184, 186. In some embodiments, the connection between the peripheral processing devices 114, 124, 134 and the access switches 182, 184, 186 is a direct link. Such a link can be said to be a single physical hop link. In other embodiments, the peripheral processing devices 114, 124, 134 can be operatively coupled to the access switches via intermediate modules. Such a connection can be said to be a multiple physical hop link.
Each access switch 182, 184, 186 can be any device configured to operatively couple peripheral processing devices 114, 124, 134 to the switch fabric 102. In some embodiments, for example, the access switches 182, 184, 186 can be edge devices, input/output modules, top-of-rack devices and/or the like. Structurally, the access switches 182, 184, 186 can function as both source access switches and destination access switches. Accordingly, the access switches 182, 184, 186 can send data (e.g., a data stream of data packets and/or data cells) to and receive data from the switch fabric 102, and to and from the connected peripheral processing devices 114, 124, 134.
In some embodiments, the access switches 182, 184, 186 can be a combination of hardware modules and software modules. In some embodiments, for example, each access switch 182, 184, 186 can include a field-programmable gate array (FPGA), an application specific integrated circuit (ASIC), a digital signal processor (DSP) and/or the like.
The access switches 182, 184, 186 can be configured to prepare a data packet (e.g., an Ethernet packet) to enter the switch fabric 102. For example, the access switches 182, 184, 186 can be configured to forward, classify, and/or modify the packet encapsulation (e.g., modify, add and/or remove a header portion, footer portion and/or any other identifier included within the data packet) of a data packet prior to sending the data packet to the switch fabric 102. Additional details related to packet classification are described in U.S. patent application Ser. No. 12/242,168 entitled “Methods and Apparatus Related to Packet Classification Associated with a Multi-Stage Switch,” filed Sep. 30, 2008, and U.S. patent application Ser. No. 12/242,172, entitled “Methods and Apparatus for Packet Classification Based on Policy Vectors,” filed Sep. 30, 2008, both of which are incorporated herein by reference in their entireties.
Each of the access switches 182, 184, 186 is configured to communicate with the other access switches 182, 184, 186 via the switch fabric 102. Specifically, the switch fabric 102 is configured to provide any-to-any connectivity between the access switches 182, 184, 186 at relatively low latency. For example, switch fabric 102 can be configured to transmit (e.g., convey) data between access switches 182, 184, 186. In some embodiments, the switch fabric 102 can have at least hundreds or thousands of ports (e.g., egress ports and/or ingress ports) through which access switches 182, 184, 186 can transmit and/or receive data.
The access switches 182, 184, 186 can include one or more network interface devices (e.g., a 40 Gigabit (Gb) Ethernet interface, a 100 Gb Ethernet interface, etc.) through which the access switches 182, 184, 186 can send signals to and/or receive signals from the switch fabric 102. The signals can be sent to and/or received from the switch fabric 102 via an electrical link, an optical link and/or a wireless link operatively coupled to the access switches 182, 184, 186. In some embodiments, the access switches 182, 184, 186 can be configured to send signals to and/or receive signals from the switch fabric 102 based on one or more protocols (e.g., an Ethernet protocol, a multi-protocol label switching (MPLS) protocol, a fibre channel protocol, a fibre-channel-over Ethernet protocol, an Infiniband-related protocol).
The switch fabric 102 can be any suitable switch fabric that operatively couples the access switches 182, 184, 186 to the other access switches 182, 184, 186. In some embodiments, for example, the switch fabric 102 can be a Clos network (e.g., a non-blocking Clos network, a strict sense non-blocking Clos network, a Benes network) having multiple stages of switching modules (e.g., integrated Ethernet switches). In some embodiments, for example, the switch fabric 102 can be similar to the three-stage switch fabric 200 shown in
In some embodiments, the switch fabric 102 can be (e.g., can function as) a single consolidated switch (e.g., a single large-scale consolidated L2/L3 switch). In other words, the switch fabric 102 can be configured to operate as a single logical entity (e.g., a single logical network element). Similarly stated, the switch fabric 102 can be part of a single logical hop between a first access switch 182, 184, 186 and a second access switch 182, 184, 186 (e.g., along with the data paths between the edge devices 182, 184, 186 and the switch fabric 102). The switch fabric 102 can be configured to connect (e.g., facilitate communication between) the peripheral processing devices 114, 124, 134. In some embodiments, the switch fabric 102 can be configured to communicate via interface devices (not shown) configured to transmit data at a rate of at least 10 Gb/s. In some embodiments, the switch fabric 102 can be configured to communicate via interface devices (e.g., fibre-channel interface devices) configured to transmit data at a rate of, for example, 2 Gb/s, 4, Gb/s, 8 Gb/s, 10 Gb/s, 40 Gb/s, 100 Gb/s and/or faster link speeds.
Although the switch fabric 102 can be logically centralized, the implementation of the switch fabric 102 can be highly distributed, for example, for reliability. For example, portions of the switch fabric 102 can be physically distributed across, for example, many chassis. In some embodiments, for example, a processing stage of the switch fabric 102 can be included in a first chassis and another processing stage of the switch fabric 102 can be included in a second chassis. Both of the processing stages can logically function as part of a single consolidated switch (e.g., within the same logical hop) but have a separate single physical hop between respective pairs of processing stages. More details related to architecture of the switch fabric 102 are described herein.
In use, a data packet (e.g., an Ethernet packet) can be sent between peripheral processing devices 114, 124, 134 via the switch fabric system 100. For example, a data packet can be sent from a first peripheral processing device 124′ to a second peripheral processing device 134′ via path 196. The first peripheral processing device 124′ can send the data packet to the access switch 184 via link 192 using a first protocol (e.g., Ethernet). The access switch 184 can then prepare the data packet to enter the switch fabric 102 (e.g., based on a second protocol). Once prepared, the access switch 184 sends the data packet to the switch fabric 102 via link 193. The switching modules within the switch fabric 102 can route the data packets through the switch fabric 102 according to the second protocol. The data packet is sent through port 198 to the access switch 186 via link 194. The access switch 186 can then send the data packet to the second peripheral processing device 134′ via link 195 using the first protocol.
The network management module 150 can be a process, application, virtual machine, and/or some other software module (executing in hardware) or a hardware module. In some embodiments, the network management module 150 can be executed at a compute device (not shown in
The network management module 150 can have different states or stored values that can be referred to as multiple different configurations. For example, in some embodiments, when the network management module 150 defines a binding association of a configuration file with an identifier of a port of switch fabric 102, this can be defined as a first configuration of the network management module 150, and when the network management module 150 defines a binding association of a configuration file with an identifier of an access switch (e.g., access switches 182, 184, 186), this can be defined as a second configuration of the network management module 150. In some embodiments, the network management module 150 can have a third configuration in which the network management module 150 defines a binding association between an identifier of an access switch and an identifier of a port of the switch fabric 102. Various configurations and binding associations within a switch fabric are described in more detail below with reference to specific embodiments.
During operation, when an access switch (182, 184186) is initially coupled to a port of the switch fabric 102, the network management module 150 can select a configuration file (e.g., a set of policies and rules) to be used during provisioning of that access switch depending on the particular configuration of the network management module 150. For example, as described above, if the network management module 150 is in a first configuration in which it defines a binding association of a configuration file to an identifier of a port, then when an access switch is coupled to that port, the configuration file that has a binding association with that port will be used during provisioning of that access switch and applied to incoming data packets received at that access switch.
In another example, the network management module 150 can be in a second configuration with respect to a configuration file in which it defines a binding association of the configuration file with a first access switch coupled to a first port of the switch fabric 102. If the first access switch is to be decoupled from the port of the switch fabric 102, prior to decoupling the first access switch, the network management module 150 can be switched to a first configuration in which the configuration file is unbound from the first access switch and has a binding association with the first port coupled to the first access switch. The first access switch can be removed and a second access switch can be coupled to the first port of the fabric switch 102. The network management module 150 can provision the second access switch to use the configuration file that is bound to the first port. The network management module 150 can also be switched to the second configuration (i.e., the configuration file has binding association to an access switch) so that the configuration file now has a binding association with the second access switch.
In some embodiments, each module 212 of the first stage 240 is a switch (e.g., a packet switch, a frame switch, an integrated Ethernet switch and/or a cell switch). The switches are configured to redirect data (e.g., data packets, data cells, etc.) as it flows through the switch fabric 200. In some embodiments, for example, each switch includes multiple input ports operatively coupled to write interfaces on a memory buffer (not shown in
Each module 212 of the first stage 240 includes a set of input ports 260 configured to receive data (e.g., a signal, a cell of a packet, a data packet, etc.) as it enters the switch fabric 200. In this embodiment, each module 212 of the first stage 240 includes the same number of input ports 260.
Similar to the first stage 240, the second stage 242 of the switch fabric 200 includes modules 214. The modules 214 of the second stage 242 are structurally similar to the modules 212 of the first stage 240. Each module 214 of the second stage 242 is operatively coupled to each module 212 of the first stage 240 by a data path 220. Each data path 220 between a given module 212 of the first stage 240 and a given module 214 of the second stage 242 is configured to facilitate data transfer from the modules 212 of the first stage 240 to the modules 214 of the second stage 242.
The data paths 220 between the modules 212 of the first stage 240 and the modules 214 of the second stage 242 can be constructed in any manner configured to facilitate data transfer from the modules 212 of the first stage 240 to the modules 214 of the second stage 242. In some embodiments, for example, the data paths 220 are optical connectors between the modules. In other embodiments, the data paths are within a midplane. Such a midplane can be similar to that described in U.S. application Ser. No. 12/345,500, filed Dec. 29, 2008, and entitled “System Architecture for a Scalable and Distributed Multi-Stage Switch Fabric,” which is incorporated herein by reference in its entirety. Such a midplane can be used to connect each module of the second stage with each module of the first stage. In still other embodiments, two or more modules are contained within a single chip package and the data paths are electrical traces.
In some embodiments, the switch fabric 200 is a non-blocking Clos network. Thus, the number of modules 214 of the second stage 242 of the switch fabric 200 varies based on the number of input ports 260 of each module 212 of the first stage 240. In a rearrangeably non-blocking Clos network (e.g., a Benes network), the number of modules 214 of the second stage 242 is greater than or equal to the number of input ports 260 of each module 212 of the first stage 240. Thus, if n is the number of input ports 260 of each module 212 of the first stage 240 and m is the number of modules 214 of the second stage 242, m≧n. In some embodiments, for example, each module of the first stage has five input ports. Thus, the second stage has at least five modules. All five modules of the first stage are operatively coupled to all five modules of the second stage by data paths. Said another way, each module of the first stage can send data to any module of the second stage.
The third stage 244 of the switch fabric 200 includes modules 216. The modules 216 of the third stage 244 are structurally similar to the modules 212 of the first stage 240. The number of modules 216 of the third stage 244 is typically equivalent to the number of modules 212 of the first stage 240. Each module 216 of the third stage 244 includes output ports 262 configured to allow data to exit the switch fabric 200. Each module 216 of the third stage 244 includes the same number of output ports 262. Further, the number of output ports 262 of each module 216 of the third stage 244 is typically equivalent to the number of input ports 260 of each module 212 of the first stage 240.
Each module 216 of the third stage 244 is connected to each module 214 of the second stage 242 by a data path 224. The data paths 224 between the modules 214 of the second stage 242 and the modules 216 of the third stage 244 are configured to facilitate data transfer from the modules 214 of the second stage 242 to the modules 216 of the third stage 244.
The data paths 224 between the modules 214 of the second stage 242 and the modules 216 of the third stage 244 can be constructed in any manner configured to facilitate data transfer from the modules 214 of the second stage 242 to the modules 216 of the third stage 244. In some embodiments, for example, the data paths 224 are optical connectors between the modules. In other embodiments, the data paths are within a midplane. Such a midplane can be used to connect each module of the second stage with each module of the third stage. In still other embodiments, two or more modules are contained within a single chip package and the data paths are electrical traces.
In some embodiments, the data paths 220 between the modules 212 of the first stage 240 and the modules 214 of the second stage 242, and the data paths between the modules 214 of the second stage 242 and the modules 216 of the third stage 244, can include multiple virtual channels.
Ports 311, 312, 321 and 322 can communicate with peripheral processing devices. For example, ports 311, 312, 321 and 322 can implement a physical layer using twisted-pair electrical signaling via electrical cables or fiber-optic signaling via fiber-optic cables. In some embodiments, some of ports 311, 312, 321 and 322 can implement one physical layer such as twisted-pair electrical signaling and others of ports 311, 312, 321 and 322 can implement a different physical layer such as fiber-optic signaling. Furthermore, ports 311, 312, 321 and 322 can allow access switch 300 to communicate with peripheral processing devices, such as, for example, computer servers (servers), via a common protocol such as Ethernet or Fibre Channel. In some embodiments, some of ports 311, 312, 321 and 322 can implement one protocol, such as Ethernet, and others of ports 311, 312, 321 and 322 can implement a different protocol such as Fibre Channel. Thus, access switch 300 can be in communication with multiple peripheral processing devices using homogeneous or heterogeneous physical layers and/or protocols via ports 311, 312, 321 and 322.
Port 331 can be in communication with other access switches via a communications network such as a switch fabric (e.g., switch fabric 102). Port 331 can be part of one or more network interfaces (e.g., a 40 Gigabit (Gb) Ethernet interface, a 100 Gb Ethernet interface, etc.) through which the access switch 300 can send signals to and/or receive signals from a communications network. The signals can be sent to and/or received from the communications network via an electrical link, an optical link and/or a wireless link operatively coupled to the access switch 300. In some embodiments, the access switch 300 can send signals to and/or receive signals from a communications network based on one or more protocols (e.g., an Ethernet protocol, a multi-protocol label switching (MPLS) protocol, a Fibre Channel protocol, a Fibre-Channel-over Ethernet protocol, an Infiniband-related protocol).
In some embodiments, port 331 can implement a different physical layer and/or data link layer protocol than those implemented at ports 311, 312, 321 and 322. For example, port 311, 312, 321 and 322 can communicate with peripheral processing devices using a protocol based on data packets (e.g., a packet-based protocol such as Ethernet) and port 331 can communicate via a data plane portion of a communications network (e.g., a switch fabric) using a protocol based on data cells (e.g., a cell-based protocol). In such embodiments and as described in further detail herein, the access switch 300 can receive a data packet from a peripheral processing device (e.g., using a packet-based protocol) via a port 311, 312, 321, 322 and divide and/or partition the data packet into data cells. After the data packet is divided and/or partitioned into data cells, the access switch 300 can send the data cells to a data plane portion of a communications network via port 331. Similarly stated, in such embodiments, access switch 300 can convert and/or modify data from a packet-based protocol to a cell-based protocol prior to sending the data to the communications network. Said differently, access switch 300 can be an access switch of a switch fabric (e.g., switch fabric 102) such as a distributed switch fabric.
In some embodiments, the access switch 300 can prepare a data packet (e.g., an Ethernet frame and/or packet) to enter a data plane portion of a communications network (e.g., switch fabric 102). For example, the access switch 300 can forward, classify, and/or modify the packet encapsulation (e.g., modify, add and/or remove a header portion, footer portion and/or any other identifier included within the data packet) of a data packet prior to sending the data packet to the data plane portion of the communications network. Additional details related to packet classification are described in U.S. patent application Ser. No. 12/242,168 entitled “Methods and Apparatus Related to Packet Classification Associated with a Multi-Stage Switch,” filed Sep. 30, 2008, and U.S. patent application Ser. No. 12/242,172, entitled “Methods and Apparatus for Packet Classification Based on Policy Vectors,” filed Sep. 30, 2008, both of which are incorporated herein by reference in their entireties.
As illustrated in
In some embodiments, compute device 400 can be dedicated to hosting network management module 424. In other words, compute device 400 can allocate all or substantially all of its computing resources (e.g., processing capacity and memory) to network management module 424. In some embodiments, compute device 400 can host other processes, applications, virtual machines, and/or software modules in addition to network management module 424. For example compute device 400 can be a general purpose compute device or compute node that hosts multiple processes, applications, virtual machines, and/or software modules.
As shown in
As shown in
With this first configuration of the network management module 550, if a particular access switch 510 is removed or moved to another port 520, the associated configuration file will move with (or remain with) that access switch. For example, as shown in
As shown in
In this embodiment, the network management module 650 can have multiple different configurations. For example, in a first configuration, the network management module 650 can define a binding association of a configuration file 615 with an identifier of a port 610. In a second configuration, the network configuration module 650 can define a binding association of a configuration file 615 with identifier of an access switch 620. In a third configuration, the network management module 650 can define a binding association between identifier of an access switch 610 and an identifier of a port 620. Each of these different configurations is described in more detail below. As shown in configuration table 655, the access switch identifiers 625 and the port identifiers 630 can be used to represent the binding associations 640 between the configuration files 615 and the particular access switches 610 or particular ports 620, or between a particular access switch 610 and a particular port 620.
As shown in
During operation, the network management module 650 can apply multiple configurations to a particular component of the switch fabric 602 as needed. As shown in configuration table 655 of
At a second time period, if, for example, a component of the switch fabric system 600 is to be replaced, the network management module 650 can be switched from a first configuration to a second configuration, or vice versa with respect to a particular configuration file 615. For example, as shown in
When a replacement access switch 610 is coupled to the port 620 with port identifier P4, the network management module 650 can be switched back to its second configuration with respect to the configuration file CF2 as shown in
In another example, if a configuration file 615 has a binding association with a port 620 coupled to a particular access switch 610 and it is desirable to move that access switch 610 to a different port 620, a similar process of switching the network management module 650 between configurations can be used to maintain a binding association of the configuration file with that access switch. For example, as shown in table 655 in
The third configuration of the network management module 650, in which an identifier of an access switch has a binding association with an identifier of a port, provides that the particular pairing of an access switch to a port is maintained within the switch fabric 602. For example, access switch 610 with identifier AS4 is to be coupled to port 620 with port identifier Pg without other access switches being coupled to that port 610, and access switch 610 with identifier AS5 is to be coupled to port 620 with port identifier P23 without other access switched being coupled to that port 610. If a different access switch 610 (other than access switch 610 with identifier AS4) is coupled to the port 620 with identifier P8, an alert can be signaled to indicate that the wrong access switch 610 has been coupled to that port 610. Similarly, if a different access switch 610 (other than access switch 610 with identifier AS5) is coupled to the port 620 with identifier P23, an alert can be signaled to indicate that the wrong access switch 610 has been coupled to that port 610.
In some embodiments of a switch fabric, the ports are not identified by a physical location within the chassis (as with the switch fabric systems 500 and 600), but rather the ports are assigned globally-unique identifiers, and as the ports are moved within the switch fabric, the unique identifier moves with the port. In such an embodiment, a port of the switch fabric can be replaced or moved in a similar manner as described above for access switches by changing the binding associations of a configuration file between an access switch and a port as needed.
At 808, after the second time period but before a third time period, the network management module can optionally be switched from the second configuration to the first configuration such that the network configuration file has a binding association with an identifier of the second access switch that is operatively coupled to the first port. At 810, during the third time period, the network configuration file can be selected in response to the second access switch being coupled to the second port of the switch fabric and the network management module being in the first configuration.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Where methods described above indicate certain events occurring in certain order, the ordering of certain events may be modified. Additionally, certain of the events may be performed concurrently in a parallel process when possible, as well as performed sequentially as described above. For example,
Embodiments shown and described above refer to multiple peripheral processing devices, including compute notes, storage nodes, service nodes and routers. In some embodiments, one or more of the compute nodes can be general-purpose computational engines that can include, for example, processors, memory, and/or one or more network interface devices (e.g., a network interface card (NIC)). In some embodiments, the processors within a compute node can be part of one or more cache coherent domains. In some embodiments, the compute nodes can be host devices, servers, and/or so forth. In some embodiments, one or more of the compute nodes can have virtualized resources such that any compute node (or a portion thereof) can be substituted for any other compute node (or a portion thereof) operatively coupled to a switch fabric system.
In some embodiments, one or more of the storage nodes can be devices that include, for example, processors, memory, locally-attached disk storage, and/or one or more network interface devices. In some embodiments, the storage nodes can have specialized modules (e.g., hardware modules and/or software modules) to enable, for example, one or more of the compute nodes to read data from and/or write data to one or more of the storage nodes via a switch fabric. In some embodiments, one or more of the storage nodes can have virtualized resources so that any storage node (or a portion thereof) can be substituted for any other storage node (or a portion thereof) operatively coupled to a switch fabric system.
In some embodiments, one or more of the services nodes can be an open systems interconnection (OSI) layer-4 through layer-7 device that can include, for example, processors (e.g., network processors), memory, and/or one or more network interface devices (e.g., 10 Gb Ethernet devices). In some embodiments, the services nodes can include hardware and/or software (executing on hardware) to perform computations on relatively heavy network workloads. In some embodiments, the services nodes can perform computations on a per packet basis in a relatively efficient fashion (e.g., more efficiently than can be performed at, for example, a compute node). The computations can include, for example, stateful firewall computations, intrusion detection and prevention (IDP) computations, extensible markup language (XML) acceleration computations, transmission control protocol (TCP) termination computations, and/or application-level load-balancing computations. In some embodiments, one or more of the services nodes can have virtualized resources so that any service node (or a portion thereof) can be substituted for any other service node (or a portion thereof) operatively coupled to a switch fabric system.
In some embodiments, one or more of the routers can be networking devices operable to connect at least a portion of a switch fabric system (e.g., a data center) to another network (e.g., the global Internet). In some embodiments, for example, a router can enable communication between components (e.g., peripheral processing devices, portions of the switch fabric) associated with a switch fabric system. The communication can be defined based on, for example, a layer-3 routing protocol. In some embodiments, one or more of the routers can have one or more network interface devices (e.g., 10 Gb Ethernet devices) through which the routers can send signals to and/or receive signals from, for example, a switch fabric and/or other peripheral processing devices.
Some embodiments described herein relate to a computer storage product with a non-transitory computer-readable medium (also can be referred to as a non-transitory processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) is non-transitory in the sense that it does not include transitory propagating signals per se (e.g., a propagating electromagnetic wave carrying information on a transmission medium such as space or a cable). The media and computer code (also can be referred to as code) may be those designed and constructed for the specific purpose or purposes. Examples of non-transitory computer-readable media include, but are not limited to: magnetic storage media such as hard disks, floppy disks, and magnetic tape; optical storage media such as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-Read Only Memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical disks; carrier wave signal processing modules; and hardware devices that are specially configured to store and execute program code, such as Application-Specific Integrated Circuits (ASICs), Programmable Logic Devices (PLDs), Read-Only Memory (ROM) and Random-Access Memory (RAM) devices.
Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, code used to produce a web service, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, embodiments may be implemented using Java, C++, or other programming languages (e.g., object-oriented programming languages) and development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, not limitation, and various changes in form and details may be made. Any portion of the apparatus and/or methods described herein may be combined in any combination, except mutually exclusive combinations. The embodiments described herein can include various combinations and/or sub-combinations of the functions, components and/or features of the different embodiments described.
This application is a continuation of U.S. patent application Ser. No. 12/957,990, entitled “METHODS AND APPARATUS FOR CONFIGURATION BINDING IN A DISTRIBUTED SWITCH,” filed Dec. 1, 2010, which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5751971 | Dobbins | May 1998 | A |
6137797 | Bass et al. | Oct 2000 | A |
8984101 | Viswanath | Mar 2015 | B1 |
20030012182 | Sato | Jan 2003 | A1 |
20030227917 | Maher, III | Dec 2003 | A1 |
20050264420 | Vogel et al. | Dec 2005 | A1 |
20070117444 | Caveney | May 2007 | A1 |
20070147362 | Beshai et al. | Jun 2007 | A1 |
20080056161 | Okita et al. | Mar 2008 | A1 |
20080263185 | Anderson et al. | Oct 2008 | A1 |
20100165877 | Shukla et al. | Jul 2010 | A1 |
20100180322 | Finn et al. | Jul 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 12957990 | Dec 2010 | US |
Child | 14845932 | US |