System for and method of communicating control information between entities interconnected by backplane connections
A system of and method for communicating control information between two or more entities over one or more backplane connections is described. The control information is stored in a layer of the packet above the physical layer and the packet is then communicated over the one or more backplane connections. A system of and method for performing load balancing over one or more backplane connections is also described. Control information for a packet is mapped into one or more identifiers of one or more of a plurality of backplane connections, and the packet is then communicated over the one or more identified backplane connections. A system of and method for extending the number of ports of a switch is further described. A first switch coupled to a second switch and having a greater number of ports than the second switch is provided. An identifier of a port of the first switch is stored in a layer of the packet above the physical layer. The packet is then communicated between the first and second switches.
Latest Extreme Networks, Inc. Patents:
This invention relates to the field of networked systems involving entities interconnected by backplane connections, and, more specifically, to communicating packet control information through backplane communications which are subject to bandwidth limitations.
2. RELATED ARTMany network environments call for various entities, including but not limited to processors, switches, routers, gateways, asynchronous integrated circuit chips (ASICs), media access controllers (MAC), switching fabric, or the like, to be interconnected by backplane connections. A backplane connection is often found between two or more entities situated within a single chassis, but may also occur between two or more remotely situated entities not confined to a single chassis.
It is often necessary to communicate packet control information between two or more entities interconnected by a backplane connection for various tasks or functions such as packet classification, quality of service assignation, packet deletion, packet mirroring, or the like, which tasks or functions may be distributed between the two or more entities. Such communications pose significant challenges given that backplane connections are often subject to tight bandwidth constraints or limitations.
Various approaches have emerged in response to these challenges, none of which are entirely satisfactory. According to one approach, a packet pre-amble, which, for purposes of this disclosure, is a layer 1 construct in the parlance of the International Standards Organization (ISO) Open Systems Interconnection (OSI) Reference Model (even though it may technically be defined as a layer 2 construct according to some standards), is overwritten with the necessary proprietary packet control information before transmission over the backplane connection. The packet pre-amble is overwritten instead of simply augmenting the packet with the control information to allow for an in-band transmission, i.e., a transmission which occurs over the same signal lines as the packet itself without requiring additional clock cycles. After transmission of the packet over the backplane connection, the destination entity simply retrieves the necessary control information from the packet.
A limitation of this approach is that it can only be used if sufficiently tight ownership and control is maintained over the physical layer to ensure that the changes to the packet pre-amble will not disrupt or interfere with physical transmission of the packet. This condition, however, is generally not possible to meet.
In a second approach, the control information is transmitted out of band in parallel with the packets, i.e., over signal lines in parallel with and separate from those used to convey the packets. Many applications, however, impose cost and space constraints which prohibit the overhead of additional signal lines. Thus, this approach also has limited applicability.
According to a third approach, applicable in the context of Ethernet IEEE 802.3 compliant frames the format 100 of which is illustrated in
In a first aspect of this disclosure, a system for communicating control information over one or more backplane connections between two or more entities is described. In this system, first logic stores the control information within a layer of a packet above the physical layer. In one embodiment, the control information overwrites at least a portion of one or more pre-existing fields, such as Ethertype, in the MAC sub-layer of the packet such that the control information can be communicated in-band over the one or more backplane connections. Second logic then communicates the packet over one or more of the backplane connections.
In a second aspect of this disclosure, a system for performing load balancing of packets over a plurality of backplane connections between two or more entities is described. In this system, first logic maps control information for a packet into one or more identifiers of one or more of the plurality of backplane connections. Second logic then communicates the packet over the identified one or more backplane connections.
In one embodiment, the two or more entities comprise a switch, and a translation or look-up table (collectively referred to as a LUT) stores an association between ingress or egress ports of the switch and the backplane connections. In one implementation, the association is pre-determined to achieve a desired load balancing of packets over the plurality of backplane connections. The first logic derives from the control information for the packet an identifier of an ingress port of the switch at which a packet was received over a network or an egress port of the switch at which the packet will or is expected to be transmitted over a network, and maps the ingress or egress port identifier into one or more backplane connections using the LUT. The second logic then communicates the packet over the identified one or more backplane connections.
In a third aspect of this disclosure, a system for extending the number of ports of a switch is described. In this system, a first switch coupled to a second switch and having a greater number of ports than the second switch is provided. First logic stores in a layer of a packet above the physical layer an identifier of a port of the first switch. Second logic then communicates the packet between the first and second switches. In one implementation, the first logic stores in the packet an identifier of an ingress port of the first switch at which the packet was received over a network, and communicates the packet to the second switch. In a second implementation, the first logic stores in the packet an identifier of an egress port at which the packet will or is expected to be transmitted from the first switch over a network. In one example, the ingress or egress port identifier is stored in the MAC sub-layer of the packet in the form of one or more pre-existing fields comprising a VLAN.
Other systems, methods, features and advantages of the invention or combinations of the foregoing will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features, advantages and combinations be included within this description, be within the scope of the invention, and be protected by the accompanying claims.
The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. In the figures, like reference numerals designate corresponding parts throughout the different views.
As utilized herein, terms such as “about” and “substantially” and “near” are intended to allow some leeway in mathematical exactness to account for tolerances that are acceptable in the trade. Accordingly, any deviations upward or downward from the value modified by the terms “about” or “substantially” or “near” in the range of 1% to 20% or less should be considered to be explicitly within the scope of the stated value.
As used herein, the term “software” includes source code, assembly language code, binary code, firmware, macro-instructions, micro-instructions, or the like, or any combination of two or more of the foregoing.
The term “memory” refers to any processor-readable medium, including but not limited to RAM, ROM, EPROM, PROM, EEPROM, disk, floppy disk, hard disk, CD-ROM, DVD, or the like, or any combination of two or more of the foregoing, on which may be stored a series of software instructions executable by a processor.
The terms “processor” or “CPU” refer to any device capable of executing a series of instructions and includes, without limitation, a general- or special-purpose microprocessor, finite state machine, controller, computer, digital signal processor (DSP), or the like.
The term “logic” refers to implementations in hardware, software, or combinations of hardware and software.
The term “packet” means (1) a group of binary digits including data and control elements which is switched and transmitted as a composite whole, wherein the data and control elements and possibly error control information are arranged in a specified format; (2) a block of information that is transmitted within a single transfer operation; (3) a collection of symbols that contains addressing information and possibly error detection or correction information; (4) a sequence of characters with a specific order and format, such as destination followed by a payload; (5) a grouping of data of some finite size that is transmitted as a unit; (6) a frame; (7) the logical organization of control and data fields defined for any of the layers or sub-layers of an applicable reference model, including the OSI or TCP/IP reference models, e.g., MAC sub-layer; or (8) a unit of transmission for any of the layers or sub-layers of an applicable reference model, including the OSI or TCP/IP reference models.
The term “layer two of the OSI reference model” includes the MAC sub-layer.
The term “port” refers to any point of ingress or egress to or from a switch or other entity, including any port channel or sub-channel, or any channel or sub-channel of a bus coupled to the port.
The term “backplane connection” means (1) any connection between two or more entities which does not function as a user interface; (2) a printed circuit board that contains connectors and/or interconnect traces; (3) a printed circuit board on which connectors are mounted, and into which boards or plug-in units are inserted; (4) a circuit board with one or more bus connectors that provides signals for communication between bus modules, and provides certain resources to the connected modules; (5) a circuit board with one or more bus connectors used to interconnect modules together electrically; (6) a subassembly that holds connectors into which one or more boards can be plugged; (7) a motherboard comprising connectors for the modules of a system and wiring interconnecting those modules; (8) the main circuit board of a computer into which other circuit boards are plugged; or (9) an electronic and/or fiber optic interconnected set of connectors used to connect modules together electrically and/or optically.
Example Environment
Each MSM blade is configured with q backplane side ingress or egress ports, where q may be the same or different from p, the number of I/O blades that are present. The q backplane side ingress or egress ports for MSM blade 204a are identified with numerals 204a(1) to 204a(q), and those for MSM blade 204b with numerals 204b(1) to 204b(q). Each MSM blade is coupled to the I/O blades through q backplane connections, one or more for each of the I/O blades. The backplane connections coupling MSM blade 204a to the I/O blades are identified with numerals 206a(1) to 206a(q), and the backplane connections coupling MSM blade 204b to the I/O blades are identified with numerals 206b(1) to 206b(q). Backplane connector 206a(1) couples port 204a(1) of MSM blade 204a to port 205a(1) of I/O blade 202a, and backplane connector 206a(q) couples port 204a(q) of MSM blade 204a to port 205b(1) of port 202b. Backplane connector 206b(1) couples port 204(b)(1) of MSM blade 204b to port 205a(m) of I/O blade 202a, and backplane connector 206b(q) couples port 204b(q) of MSM blade 204b to port 205b(m) of I/O blade 202b.
Backplane connector 206a(1) allows any port 202a(1) to 202a(n) of I/O blade 202a access to any of ports 204a(1) to 204a(q) of MSM blade 204a, and backplane connector 206a(q) allows any port 202b(1) to 202b(n) of I/O blade 202b access to any of ports 204a(1) to 204a(q) of MSM blade 204a. Similarly, backplane connector 206b(1) allows any port 202a(1) to 202a(n) of I/O blade 202a access to any of ports 204b(1) to 204b(q) of MSM blade 204b, and backplane connector 206b(q) allows any of ports 202b(1) to 202b(n) of I/O blade 202b access to any of ports 204b(1) to 204b(q) of MSM blade 204b. Each of the backplane connections is assumed to be bi-directional, but it should be appreciated that examples are possible where all or some of the connections are uni-directional.
The number of MSM blades which are present, m, is not necessarily equal to the number p of I/O blades which are present. In one implementation, the switch 200 comprises 8 I/O blades and 2 MSM blades. In this implementation, each I/O blade is configured with 6 network side ingress or egress ports and 2 backplane side ingress or egress ports. Each MSM blade is configured with 8 backplane side ingress or egress ports. Each MSM blade is coupled to the I/O blades with 8 backplane connections, one for each of the I/O blades. Each of the n network side ports of an I/O blade in this implementation may be configured either as a single 10 GB port or 10 1 GB Ethernet ports, and each of the backplane ports of the I/O blade in this implementation is configured as a 10 GB Ethernet port. Each of the backplane ports of an MSM blade in this implementation is configured as a 10 GB Ethernet port.
The AFH field is an address filter header added to the packet by the network side MAC controller at the ingress port of the I/O blade in the switch 200 at which the packet was received over a network. This header functions as a placeholder for proprietary packet control information as the packet is routed through the switch 200. In one implementation, the AFH field is 8 bytes.
Field 504 is the layer two destination address, and field 506 is the layer two source address. In one implementation, these fields remain static as the packet is routed through the switch 200 as the internal components of the switch 200 are not recognized layer two entities. In another implementation, the internal components of the switch 200 are recognized layer two entities, and these fields therefore change at the packet is routed through the switch 200. In one implementation, the destination and source address fields are each 6 bytes.
Fields 508 and 510 together comprise a virtual LAN (VLAN), an IEEE 802.1 construct which allows physically separate devices to be grouped together logically into a single broadcast domain. Field 508 is the VLAN op code field, and field 510 is the VLAN tag field. (For purposes of this disclosure, the VLAN op code field is the IEEE 802.1 compliant Ethertype field, and the VLAN tag field is the IEEE 802.1 compliant tag control information (TCI) field). The VLAN comprising fields 508 and 510 may be the outer VLAN of a plurality of nested VLANs. If a nested VLAN is present, the other VLANs in this nested grouping of VLANs is identified with numeral 512. In one implementation, the VLAN op code and tag fields are each 2 bytes, and each VLAN comprises 4 bytes.
Field 514 is a variable length data field and comprises the packet payload as well as higher packet protocol layers than layer two.
In one implementation, the MAC controller inserts an element, which may be referred to as a door ID (DID), in layer two or the MAC sub-layer of the packet. In example, this DID is located after the source address field 506 illustrated in
The MAC controller then encodes the VLAN state into the DID. The VLAN state is an indicator of whether the packet was received at the switch with a VLAN, or whether a VLAN was inserted at the switch because the packet was received without one. As will be discussed further on in this disclosure, this information is utilized to implement ingress mirroring.
The MAC controller also pre-pends the AFH header to the packet. As previously stated, the AFH is a placeholder for packet control information as the packet flows through the switch 200. In one implementation, the AFH holds proprietary control information for the packet, i.e., control information proprietary to the switch 200, but it should be appreciated that examples are possible where the control information is recognized by other network entities besides switch 200. In one example, the AFH is an 8-byte field.
The MAC also inserts Port Tag Index (PTI), Egress Quality of Service (EQoS), and VLAN values into the AFH. The PTI is an identifier of the ingress port (or port channel or sub-channel) over which the packet was received at the switch 200. The VLAN is the outermost VLAN present in or inserted into the packet. The EQoS is a quality of service indicator for the packet, and may be used to determine the priority of the queue used to buffer the packet before transmission over a backplane connection to the MSM blade.
In one implementation, the EQoS is derived from the VLAN in the packet using a known association between possible values of the VLAN and values of EQoS. In one example, the association is embodied as a lookup table associating various values of the VLAN with various EQoS values. In this example, a lookup table access determines the EQoS value associated with the specific VLAN in the packet. Alternatively, the EQoS may be derived directly from virtual priority (VPRI) bits in the VLAN.
The packet is then transmitted to the switching fabric of the I/O blade, and the processing identified with numeral 604 in
The switching fabric then determines the one or more I/O blade output ports over which the packet will or is expected to be transmitted to one of the MSM blades. In one embodiment, the packet is transmitted to one of the MSM blades through a single output port, and the switching fabric identifies this output port using a known association between PTI values and output port identifiers which is maintained. Using this known association, the switching fabric maps the PTI value for the packet into an output port identifier. In one implementation, this association is pre-determined and implemented as a LUT that embodies a desired load balancing of packets over the one or more backplane connections interconnecting the I/O and MSM blades. Through a single access to the LUT using the PTI value of the packet as an index, the associated output port identifier is determined.
The switching fabric then stores the ingress port identifier for the packet and the port state into the AFH header of the packet.
When the packet is de-queued, the processing identified with numeral 606 in
Step 608 of
One embodiment of the format of a packet during transmission over the backplane connection is illustrated in
Turning back to
The packet is then transferred to the packet filtering and classification engine (PFC) coupled to the MSM backplane MAC controller which performed the processing of step 610. The PFC then performs the processing identified with numeral 612 in
In one example, the port state indicates ingress mirroring, which means that a copy of the packet as received at the switch 200 is sent to a mirror port. The VLAN state bits, referred to previously, are used in this process to delete from the mirrored packet any VLAN inserted by the I/O blade, so that the packet is a faithful copy of what was received at the switch 200. In another example, the port state indicates that the packet is to be killed, i.e., not forwarded beyond the PFC engine.
The packet is then transferred to the switching fabric of the MSM blade. The processing identified with numeral 614 in
The switching fabric then routes the packet to the MSM egress port associated with the identified egress I/O blade. (If multicasting is desired, the packet may be transferred to a plurality of the MSM output ports.) The packet is transferred to the PFC engine associated with the MSM egress port, and the processing identified with numeral 616 in
At the MSM backplane MAC controller, the processing identified with numeral 618 in
The packet is received by the backplane MAC controller for the identified egress I/O blade and the processing identified with numeral 622 in
The packet is then directed to the switch fabric for the I/O blade and the processing identified with numeral 624 in
The first logic may store the control information in at least a portion of one or more fields inserted into the packet by the first logic. Alternatively or in addition, the first logic may overwrite at least a portion of one or more pre-existing fields in the packet with the control information.
The two or more entities may comprise a switch, and the control information may be proprietary to the switch. The switch may have ingress and egress ports. The proprietary control information may comprise an identifier of an ingress port of the switch at which the packet was received over a network, or an identifier of an egress port of the switch at which the packet will or is expected to be transmitted over a network.
The proprietary control information may also comprise an indicator of whether or not one or more predetermined fields were present in the packet upon receipt thereof at the switch. In one implementation, the one or more predetermined fields comprise a VLAN.
In one embodiment, the control information is stored in layer two or higher of the packet according to the OSI reference model. In a second embodiment, the control information is stored in layer two of the packet according to the OSI reference model. In one implementation, the control information is stored in the MAC sub-layer of the packet.
In one implementation example, the control information overwrites at least a portion of a VLAN stored in the MAC sub-layer of the packet. In a second implementation example, the control information overwrites at least a portion of source or destination addresses stored in the MAC sub-layer of the packet.
The VLAN may comprise op code and tag portions. In one example, the first logic overwrites the op code portion of the VLAN with the control information after updating the control information to include an identifier of the VLAN op code overwritten by the control information. The VLAN may be the outer VLAN of a plurality of nested VLANs.
The control information may comprise quality of service information for the packet. This quality of service information may comprise an identifier of a queue for buffering the packet. The control information may also comprise an indicator that the packet is a candidate for dropping.
In one embodiment, the control information is communicated in-band over the one or more backplane connections. To achieve this objective, a sufficient portion of the packet may be dropped to allow the control information to be added to the packet, and the packet communicated over the one or more backplane connections without requiring additional clock cycles.
In a second embodiment, the first logic derives at least a portion of the control information from a packet header, and deletes the packet header prior to communication of the packet over the one or more backplane connections. In this embodiment, third logic may be provided for re-creating at least a portion of the packet header from the control information after communication of the packet over the one or more backplane connections.
In one implementation, the first logic inserts a 4 byte DID into the MAC sub-layer of an Ethernet packet after the MAC source address field, and stores the control information in the 4 byte DID. The second logic then communicates the packet between the two or more entities over the one or more backplane connections.
In this implementation, the DID comprises a 2 byte op code portion and a 2 byte data portion, and the control information is inserted into the 2 byte data portion. The op code portion of the DID can take on any value, and may be the same as or different from the op code portion of a VLAN situated to the right of the DID at the MAC sub-layer. If a nested VLAN is situated to the right of the DID, the op code portion of the DID may be the same as or different from the op code portion of the outer VLAN in the nested group of VLANs. In one implementation, the op code portion of the DID is set to the VLAN op code so that third party devices will recognize the DID as a VLAN.
In one example, for transmission from an I/O blade to an MSM blade over one or more backplane connections in the previously discussed example environment, the data portion of the DID with the control information inserted has the format illustrated in
In a second example, for transmission from an MSM blade to an I/O blade over one or more backplane connections in the previously discussed example environment, the data portion of the DID with the control information inserted has the format illustrated in
In one example, the control information which is inserted into the data portion of the DID is derived at least in part from an 8 byte AFH header pre-pended to the packet in the MAC layer. Before communication of the packet over the backplane connection, and after insertion of the relevant control information into the DID, the AFH header is deleted in this example. After communication of the packet over the backplane connection, third logic may be provided which re-creates the AFH header at least in part from the control information stored in the data portion of the DID.
Various modes of operation may be supported in this example. In a first mode of operation, the packet with the DID/control information inserted has the format illustrated in
In a second mode of operation, the packet with the DID/control information inserted has the format illustrated in
Comparing
To see this, observe that in a first mode of operation, in which the format of
In a second mode of operation, however, in which the format of
In this method, the control information may be stored in at least a portion of one or more fields inserted into the packet to accommodate the control information. Alternatively, the control information may overwrite at least a portion of one or more pre-existing fields in the packet with the control information.
Also, the two or more entities may comprise a switch, and the control information may be proprietary to the switch. Also, the switch may have ingress and egress ports. The proprietary control information may comprise an identifier of an ingress port of the switch at which the packet was received over a network. The proprietary control information may also comprise an identifier of an egress port of the switch at which the packet will or is expected to be transmitted over a network.
The proprietary control information may also comprise an indicator of whether or not one or more predetermined fields were present in the packet upon receipt thereof at the switch. These one or more predetermined fields may comprise a VLAN. The proprietary control information may also comprise an indicator of a state of the ingress port of the switch at which the packet was received.
The control information may be stored in layer two or higher of the packet according to the OSI reference model. The control information may also be stored in layer two of the packet according to the OSI reference model. In one example, the control information is stored in the MAC sub-layer of the packet.
The control information may overwrite at least a portion of one or more fields stored in the MAC sub-layer of the packet. These one or more fields may comprise a VLAN. Alternatively, these one or more fields may comprise MAC sub-layer source or destinations addresses.
The VLAN may comprise op code and tag portions, and the control information may overwrite the op code portion of the VLAN after the control information has been encoded to include an identifier of the VLAN op code overwritten by the control information. The VLAN may comprise the outer VLAN of a plurality of nested VLANs.
The control information may comprise quality of service information for the packet. This quality of service information may comprise an identifier of a queue for buffering the packet. The control information may also comprise an indicator that the packet is a candidate for dropping.
In one embodiment, the control information is communicated in-band over the one or more backplane connections. In a second embodiment, the control information is derived from a packet header, and the packet header is deleted prior to communication of the packet over the one or more backplane connections. At least a portion of the packet header may be re-created from the control information after communication of the packet over the one or more backplane connections.
In step 1706, the data portion of the DID is used to recreate at least a portion of the AFH header. In one implementation, one or more of the DID data fields are copied into the AFH header. Optional step 1708 is then performed. In optional step 1708, the DID is deleted from the packet.
The two or more entities may comprise a switch, and the control information may comprise an identifier of an ingress port at which the packet was received over a network. Alternatively, the control information may comprise an identifier of an egress port at which the packet will or is expected to be transmitted over a network. The two or more entities may each comprise ASICs.
In one implementation, the first logic comprises a LUT for maintaining an association between ingress or egress ports and the backplane connections, and the first logic maps a particular ingress or egress port into one or more backplanes connection through an access to the LUT. In one implementation example, the association is programmed into the LUT. This association may be predetermined to achieve a desired load balancing of packets over the plurality of backplane connections.
The two or more entities may comprise a switch, and the control information may comprise an identifier of ingress port at which the packet was received over a network. Alternatively, the control information may comprise an identifier of an egress port at which the packet will or is expected to be transmitted over a network. The two or more entities may each comprise ASICs.
In one implementation, a LUT maintains an association between ingress or egress ports and the backplane connections. In this implementation, an identifier of an ingress or egress port is mapped into one or more backplane connections through an access to the LUT. This association may be programmed into the LUT. Also, this association may be pre-determined to achieve a desired load balancing of packets over the plurality of backplane connections.
A flowchart of one example 2000 of this implementation is illustrated in
In this embodiment, first logic stores in a layer of a packet above the physical layer an identifier of a port of the first switch. Second logic then communicates the packet between the first and second switches.
In one embodiment, the port is an ingress port of the first switch at which the packet was received over a network. In this embodiment, the second logic communicates the packet from the first switch to the second switch. From the standpoint of the network, the second switch thus appears to have n ports rather than m ports.
In a second embodiment, the port is a destination port of the first switch at which the packet will or is expected to be transmitted over a network. In this embodiment, the second logic communicates the packet from the second switch to the first switch. The packet may then be transmitted over the network from the designated port. Again, from the standpoint of the network, the second switch 2104 appears to have n rather than m ports.
The port identifier may be stored in layer two or higher of the packet according to the OSI reference model. The port identifier may also be stored in layer two of the packet according to the OSI reference model. In one example, the port identifier is stored in the MAC sub-layer of the packet.
The port identifier may be stored in the packet in the form of one or more standard fields. In one example, the port identifier is stored in the packet as a VLAN.
In one embodiment, the port is an ingress port of the first switch at which the packet was received over a network. In this embodiment, the packet is communicated from the first switch to the second switch. From the standpoint of the network, the second switch appears to be configured with a greater number of ingress ports of the first switch.
In a second embodiment, the port is an egress port of the first switch at which the packet will or is expected to be transmitted over a network. In this embodiment, the packet is communicated from the second switch to the first switch. The packet may then be transmitted over the network from the egress port of the first switch. From the standpoint of the network, the second switch appears to be configured with the greater number of egress ports of the first switch.
The port identifier may be stored in layer two or higher of the packet according to the OSI reference model. The port identifier may also be stored in layer two of the packet according to the OSI reference model. In one example, the port identifier is stored in the MAC sub-layer of the packet.
The port identifier may be stored in the packet in the form of one or more standard fields. In one example, the port identifier is stored in the packet in the form of a VLAN.
Referring to
In step 2304, the method inserts a VLAN into the MAC sub-layer of the packet, and stores in the VLAN an identifier of the ingress port at which the packet was received at the third party switch. Step 2306 is then performed. In step 2306, the packet is transferred to the proprietary switch.
In step 2308, it is assumed that a VLAN has already been inserted into the MAC sub-layer of the packet containing an identifier of the egress port of the third party switch at which the packet will or is expected to be transmitted over a network. The identifier of this egress port is retrieved from the VLAN.
Optional step 2310 is then performed. In optional step 2310, the VLAN carrying the egress port identifier is deleted. Step 2312 is then performed. In step 2312, the packet is transmitted over the network from the designated egress port of the third party switch.
Referring to
In step 2404, it is assumed that a VLAN has previously been inserted into the MAC sub-layer of the packet containing an identifier of the ingress port of the third party switch at which the packet was received over a network. In this step, an identifier of this ingress port is obtained from the VLAN.
Step 2406 is then performed. In step 2406, the identifier is copied into an AFH header pre-pended to the packet and/or a DID inserted into the MAC sub-layer of the packet.
Optional step 2408 may then be performed. If performed, the port-based VLAN previously inserted into the packet is deleted.
Step 2410 is then performed. In step 2410, additional processing of the packet is performed and/or the packet is transferred to an MSM blade in the proprietary switch over one or more backplane connections using any of the embodiments, implementations, or examples of the methods which have been previously described.
In step 2412, it is assumed that an identifier of the egress port at which the packet will or is expected to be transmitted over a network has been previously stored in an AFH header pre-pended to the packet and/or a DID inserted into the MAC sub-layer of the packet. In this step, this identifier is determined by accessing the AFH and/or DID.
Step 2414 is then performed. In step 2414, a VLAN is inserted into the MAC sub-layer of the packet, and an identifier of the egress port of the third party switch is stored in the VLAN.
Step 2416 is then performed. In step 2416, the packet is transmitted to the third party switch.
The methods of
While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible that are within the scope of this invention.
Claims
1. A system, associated with a network entity, for communicating proprietary control information over one or more backplane connections interconnecting one or more I/O blades with one or more management/switching (MSM) blades without functioning as a user interface, with the one or more backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more backplane-side MAC controllers, comprising:
- first logic for storing proprietary control information, comprising control information recognized by the network entity but not generally recognized by other network entities, within a layer of a packet above the physical layer; and
- second logic for communicating the packet, including the proprietary control information, over the one or more of the backplane connections;
- wherein the proprietary control information as stored in the packet either replaces or appears in the packet to any third party devices that may happen to gain access as at least a portion of one or more standard packet fields;
- wherein the first logic derives at least a portion of the control information from a packet header, and deletes the packet header prior to communication of the packet over the one or more backplane connections, and wherein a third logic re-creates at least a portion of the packet header from the control information after communication of the packet over the one or more backplane connections.
2. The system of claim 1 wherein the control information is stored in at least a portion of one or more fields inserted into the packet by the first logic.
3. The system of claim 1 wherein the first logic overwrites at least a portion of one or more pre-existing fields in the packet with the control information.
4. The system of claim 1 wherein the network entity comprises a switch, and the control information is proprietary to the switch.
5. The system of claim 4 wherein the switch has ingress and egress ports.
6. The system of claim 5 wherein the proprietary control information comprises an identifier of an ingress port of the switch at which the packet was received over a network.
7. The system of claim 5 wherein the proprietary control information comprises an identifier of an egress port of the switch at which the packet will or is expected to be transmitted over a network.
8. The system of claim 5 wherein the proprietary control information comprises an indicator of whether or not one or more predetermined fields were present in the packet upon receipt thereof at the switch.
9. The system of claim 8 wherein the one or more predetermined fields comprise a VLAN.
10. The system of claim 1 wherein the control information is stored in layer two or higher of the packet according to the OSI reference model.
11. The system of claim 10 wherein the control information is stored in layer two of the packet according to the OSI reference model.
12. The system of claim 11 wherein the control information is stored in the MAC sub-layer of the packet.
13. The system of claim 12 wherein the control information overwrites at least a portion of a VLAN stored in the MAC sub-layer of the packet.
14. The system of claim 12 wherein the control information overwrites at least a portion of source or destination addresses stored in the MAC sub-layer of the packet.
15. The system of claim 9 wherein the VLAN comprises op code and tag portions, and the first logic overwrites the op code portion of the VLAN with the control information.
16. The system of claim 15 wherein the control information comprises an identifier of the VLAN op code overwritten by the control information.
17. The system of claim 9 wherein the VLAN is the outer VLAN of a plurality of nested VLANs.
18. The system of claim 1 wherein the control information comprises quality of service information for the packet.
19. The system of claim 18 wherein the quality of service information comprises an identifier of a queue for buffering the packet and priority for the queue is selected based upon the quality of service information of the packet.
20. The system of claim 1 wherein the control information comprises an indicator that the packet is a candidate for dropping.
21. The system of claim 1 wherein by dropping a portion of the packet, the control information is added to the packet and the packet is communicated in-band over the one or more backplane connections without requiring additional clock cycles.
22. A method, performed in, by or for a network entity, of communicating proprietary control information over one or more backplane connections interconnecting one or more I/O blades with one or more management/switching (MSM) blades without functioning as a user interface, with the one or more backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more backplane-side MAC controllers, comprising:
- storing proprietary control information, comprising control information recognized by the network entity but not generally recognized by other network entities, in a layer of a packet above the physical layer; and
- communicating the packet, including the proprietary control information, over the one or more of the backplane connections,
- wherein the proprietary control information as stored in the packet either replaces or appears in the packet to one or more any third party devices that may happen to gain access as at least a portion of one or more standard packet fields;
- wherein at least a portion of the control information is derived from a packet header, and is deleted from the packet header prior to communication of the packet over the one or more backplane connections, and wherein at least a portion of the packet header from the control information is re-created after communication of the packet over the one or more backplane connections.
23. The method of claim 22 further comprising storing the control information in at least a portion of one or more fields inserted into the packet to accommodate the control information.
24. The method of claim 22 further comprising overwriting at least a portion of one or more pre-existing fields in the packet with the control information.
25. The method of claim 22 wherein the network entity comprises a switch, and the control information is proprietary to the switch.
26. The method of claim 25 wherein the switch has ingress and egress ports.
27. The method of claim 26 wherein the proprietary control information comprises an identifier of an ingress port of the switch at which the packet was received over a network.
28. The method of claim 26 wherein the proprietary control information comprises an identifier of an egress port of the switch at which the packet will or is expected to be transmitted over a network.
29. The method of claim 26 wherein the proprietary control information comprises an indicator of whether or not one or more predetermined fields were present in the packet upon receipt thereof at the switch.
30. The method of claim 29 wherein the one or more predetermined fields comprise a VLAN.
31. The method of claim 27 wherein the proprietary control information comprises an indicator of a state of the ingress port of the switch at which the packet was received.
32. The method of claim 22 wherein the control information is stored in layer two or higher of the packet according to the OSI reference model.
33. The method of claim 32 wherein the control information is stored in layer two of the packet according to the OSI reference model.
34. The method of claim 33 wherein the control information is stored in the MAC sub-layer of the packet.
35. The method of claim 34 wherein the control information overwrites at least a portion of one or more fields stored in the MAC sub-layer of the packet.
36. The method of claim 35 wherein the one or more fields comprise a VLAN.
37. The method of claim 35 wherein the one or more fields comprise source or destinations addresses.
38. The method of claim 36 wherein the VLAN comprises op code and tag portions, and the control information overwrites the op code portion of the VLAN.
39. The method of claim 38 wherein the control information comprises an identifier of the VLAN op code overwritten by the control information.
40. The method of claim 36 wherein the VLAN comprises the outer VLAN of a plurality of nested VLANs.
41. The method of claim 22 wherein the control information comprises quality of service information for the packet.
42. The method of claim 41 wherein the quality of service information comprises an identifier of a queue for buffering the packet and priority for the queue is selected based upon the quality of service information of the packet.
43. The method of claim 22 wherein the control information comprises an indicator that the packet is a candidate for dropping.
44. The method of claim 22 wherein by dropping a portion of the packet, the control information is added to the packet and the packet is communicated in-band over the one or more backplane connections without requiring additional clock cycles.
45. The system of claim 5 wherein the switch is a first switch, and the proprietary control information comprises an identifier of an ingress port of a second switch coupled to the first switch at which the packet was received over a network.
46. The method of claim 26 wherein the switch is a first switch, and the proprietary control information comprises an identifier of an ingress port of a second switch coupled to the first switch at which the packet was received over a network.
47. The system of claim 1 wherein the third logic for maintaining a mode bit having first and second states, wherein the first logic is configured to add one or more fields to the packet layer to accommodate the control information if the mode bit is in the first state, and overwrite at least a portion of one or more pre-existing fields in the packet layer with the control information if the mode bit is in the second state.
48. The method of claim 22 further comprising:
- maintaining a mode bit having first and second states;
- adding one or more fields to the packet layer to accommodate the control information if the mode bit is in the first state; and
- overwriting at least a portion of one or more pre-existing fields in the packet layer with the control information if the mode bit is in the second state.
49. A system, associated with a network entity, for performing load balancing over a plurality of backplane connections interconnecting one or more I/O blades with one or more management/switching (MSM) blades without functioning as a user interface, with the one or more backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more backplane-side MAC controllers, the system comprising:
- first logic for receiving a packet at any one of the one or more I/O blades or one or more MSM blades, mapping control information for the packet into one or more identifiers of at least one of the plurality of backplane connections, wherein the mapping occurs through a data structure configured to achieve a desired load balancing of packets over the plurality of backplane connections; and
- second logic for communicating the packet over the at least one of the plurality of backplane connections identified by the one or more identifiers;
- wherein quality of service information is used to identify a queue into which the packet is stored before transmission over the at least one of the plurality of backplane connections and priority for the queue is selected based upon the quality of service information of the packet.
50. The system of claim 49 wherein the network entity comprises a switch, and the control information is an identifier of an ingress port at which the packet was received over a network, or an egress port at which the packet will or is expected to be transmitted over a network.
51. The system of claim 50 wherein the first logic comprises a lookup table (“LUT”) for maintaining an association between ingress or egress ports, and egress ports associated with the backplane connections, and the first logic maps a particular ingress or egress ports into one or more backplane-associated egress ports through an access to the LUT.
52. The system of claim 51 wherein the association is programmed into the LUT.
53. The system of claim 52 wherein the association is pre-determined to achieve a desired load balancing of packets over the plurality of backplane connections.
54. The system of claim 49 wherein the two or more entities are each ASICs.
55. A method, performed in, by or for a network entity, of performing load balancing over a plurality of backplane connections, interconnecting one or more I/O blades with one or more management/switching (MSM) blades without functioning as a user interface, with the plurality of backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more backplane-side MAC controllers, the method comprising:
- receiving the packet at any one of the one or more I/O blades or one or more MSM blades;
- mapping control information for a packet into one or more identifiers of at least one of the plurality of backplane connections through a data structure configured to achieve a desired load balancing of packets over the plurality of backplane connections; and
- communicating the packet over the at least one of the plurality of backplane connections identified by the one or more identifiers;
- wherein quality of service information is used to identify a queue into which the packet is stored before transmission over the at least one of the plurality of backplane connections and priority for the queue is selected based upon the quality of service information of the packet.
56. The method of claim 55 wherein the network entity comprises a switch, and the control information comprises an identifier of an ingress port at which the packet was received over a network, or an egress port at which the packet will or is expected to be transmitted over a network.
57. The method of claim 56 further comprising using a lookup table (“LUT”) to maintain an association between ingress or egress ports and egress ports associated the backplane connections, and mapping an ingress or egress port into one or more of the backplane-associated egress ports through an access to the LUT.
58. The method of claim 57 further comprising programming the association into the LUT.
59. The method of claim 58 wherein the association is pre-determined to achieve a desired load balancing of packets over the plurality of backplane connections.
60. The method of claim 55 wherein the network entity comprises one or more application specific integrated circuits (ASICs).
61. A system for extending the number of ports of a switch in a network comprising:
- a first switch coupled to a second switch and the first switch having a greater number n of network-side ports than the number m of network-side ports of the second switch;
- first logic associated with the first switch for determining if a packet received at a port of the first switch is an ingress packet or an egress packet, and, if the packet is an ingress packet, storing in a layer of the packet above the physical layer an identifier of the port of the first switch at which the packet was received, and communicating the packet from the first switch to the second switch, and, if the packet is an egress packet, retrieving from a layer of the packet above the physical layer an identifier of a port of the first switch at which the packet is to be transmitted, and transmitting the packet over the network from the identified port of the first switch; and
- second logic associated with the second switch for determining if a packet received at a port of the second switch is an ingress packet or an egress packet, and, if the packet is an egress packet, storing in a layer of the packet above the physical layer an identifier of a port of the first switch from which the packet is to be transmitted over the network, and communicating the packet from the second switch to the first switch, and, if the packet is an ingress packet, retrieving from a layer of the packet above the physical layer an identifier of a port of the first switch at which the packet was received over the network, copying or inserting the identifier into a packet header for or data element of the packet, and performing additional processing of the packet,
- wherein the second switch appears to the network to have n network-side ports rather than m network-side ports.
62. The system of claim 61 wherein the first switch has ingress and egress ports, and, when an ingress packet is received at an ingress port of the first switch, the first logic stores an identifier of the ingress port in a layer of the packet above the physical layer, and thereafter communicates the packet from the first switch to the second switch.
63. The system of claim 61 wherein the first switch has ingress and egress ports, and, when an egress packet is received at the second switch, the second logic stores an identifier of an egress port of the first switch at which the packet will or is expected to be transmitted over a network, and thereafter communicates the packet from the second switch to the first switch.
64. The system of claim 61 wherein the first logic, when an ingress packet is received at a port of the first switch, stores an identifier of the port in layer two or higher of the packet according to the OSI reference model.
65. The system of claim 64 wherein the identifier is stored in layer two of the packet according to the OSI reference model.
66. The system of claim 65 wherein the identifier is stored in the MAC sub-layer of the packet.
67. The system of claim 66 wherein the identifier is stored in the packet in the form of one or more standard fields.
68. The system of claim 66 wherein the identifier is stored in the packet as a VLAN.
69. A method of extending the number of ports of a switch in a network comprising:
- providing a first switch coupled to a second switch and the first switch having a greater number n of network-side ports than the number m of network-side ports of the second switch;
- in, by or for the first switch, when a packet is received at the first switch, determining if the packet is an ingress packet or an egress packet, and, if an ingress packet, storing in a layer of the packet above the physical layer an identifier of a port of the first switch at which the packet was received, and communicating the packet from the first switch to the second switch, and, if the packet is an egress packet, retrieving from a layer of the packet above the physical layer an identifier of a port of the first switch from which the packet is to be transmitted over the network, and transmitting the packet over the network from that port; and
- in, by or for the second switch, when a packet is received at the second switch, determining if the packet is an ingress packet or an egress packet, and, if an egress packet, storing in a layer of the packet above the physical layer an identifier of a port of the first switch from which the packet is to be transmitted over the network, and communicating the packet from the second switch to the first switch, and, if the packet is an ingress packet, retrieving from a layer of the packet above the physical layer an identifier of a port of the first switch at which the packet was received from the network, copying or inserting the identifier into a header for or data element of the packet, and performing additional processing of the packet,
- wherein the second switch appears to the network to have n network-side ports rather than m network-side ports.
70. The method of claim 69 wherein the first switch has ingress and egress ports, and, when an ingress packet is received at an ingress port of the first switch, an identifier of the ingress port is stored in a layer of the packet above the physical layer, and the packet is thereafter communicated from the first switch to the second switch.
71. The method of claim 69 wherein the first switch has ingress and egress ports, and, when an egress packet is received at the second switch, an identifier of an egress port of the first switch from which the packet is to be transmitted over the network is inserted in a layer of the packet over the physical layer, and the packet thereafter communicated from the second switch to the first switch.
72. The method of claim 69 wherein, when an ingress packet is received at the first switch, an identifier of the port of the first switch at which the packet was received is stored in layer two or higher of the packet according to the OSI reference model.
73. The method of claim 72 wherein the identifier is stored in layer two of the packet according to the OSI reference model.
74. The method of claim 73 wherein the identifier is stored in the MAC sub-layer of the packet.
75. The method of claim 74 wherein the identifier is stored in the packet in the form of one or more standard fields.
76. The method of claim 75 wherein the identifier is stored in the packet in the form of a VLAN.
77. A system, associated with a network entity, for communicating proprietary control information over one or more backplane connections interconnecting one or more I/O blades and one or more management/switching (MSM) blades without functioning as a user interface, with the one or more backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more back-plane-side MAC controllers, comprising:
- first means for mapping proprietary control information, comprising control information not generally recognized by network entities other than the network entity, for a packet into one or more identifiers of one or more of the one or more backplane connections;
- second means for storing the proprietary control information in a layer of the packet above the physical layer, wherein the proprietary control information as stored in the packet either replaces or appears in the packet to one or more other network entities as at least a portion of one or more standard packet fields; and
- third means for communicating the packet, including the proprietary control information, over the identified one or more backplane connections;
- wherein the first means derives at least a portion of the control information from a packet header, and deletes the packet header prior to communication of the packet over the one or more backplane connections, and wherein a second means re-creates at least a portion of the packet header from the control information after communication of the packet over the one or more backplane connections.
78. The system of claim 77 wherein the network entity comprise a switch, and the system further comprises means for extending the number of ports of the switch.
79. A method, performed in, by or for a network entity, of communicating proprietary control information over one or more backplane connections interconnecting one or more I/O blades with one or more management/switching (MSM) blades without functioning as a user interface, with the one or more backplane connections coupled to the one or more I/O blades through one or more backplane-side MAC controllers, and coupled to the one or more MSM blades through one or more backplane-side MAC controllers, comprising:
- a step for mapping proprietary control information, comprising control information recognized by the network entity but not generally recognized by other network entities, for a packet into one or more identifiers of at least one of the one or more backplane connections;
- a step for storing the proprietary control information in a layer of the packet above the physical layer, wherein the proprietary control information as stored in the packet either replaces or appears in the packet to one or more other network entities as at least a portion of one or more standard packet fields; and
- a step for communicating the packet, including the proprietary control information, over the at least one backplane connections identified by the one or more identifiers;
- wherein at least a portion of the control information is derived from a packet header, and is deleted from the packet header prior to communication of the packet over the one or more backplane connections, and wherein at least a portion of the packet header from the control information is re-created after communication of the packet over the one or more backplane connections.
80. The method of claim 79 wherein the network entity comprise a switch, and the method further comprises a step for extending the number of ports of the switch.
81. The system of claim 1,
- wherein at least one of the one or more I/O blades comprises one or more network-side MAC controllers coupled to switch fabric that in turn are coupled to one or more backplane-side MAC controllers; and
- wherein at least one of the one or more MSM blades comprises one or more backplane MAC controllers coupled to one or more packet filtering and control engines that in turn are coupled to switch fabric that in turn is coupled to a microcontroller.
82. The system of claim 81 wherein the switching fabric for the at least one I/O blade stores a packet in a queue selected based upon equality of service information for the packet.
83. The system of claim 61,
- wherein, when a packet is received at the first switch, the first logic: determines whether the packet is an ingress packet or an egress packet; when the packet is an ingress packet, the first logic inserts a VLAN into the MAC sub-layer of the packet, stores in the VLAN an identifier of an ingress port of the first switch at which the packet was received, and communicates the packet to the second switch; and when the packet is an egress packet, the first logic retrieves from a VLAN in the MAC sub-layer of the packet an identifier of an egress port of the first switch from which the packet is to be transmitted over the network, and transmits the packet from the egress port of the first switch over the network; wherein, when a packet is received at the second switch, the second logic: determines whether the packet is an ingress packet or an egress packet; when the packet is an ingress packet, the second logic retrieves from a VLAN in the MAC sub-layer of the packet an identifier of an ingress port of the first switch at which the packet was received over the network, copies or inserts the identifier into a header for or data element of the packet, and performs additional processing of the packet or transmits the packet to a management/switching (MSM) blade; and
- wherein if when the packet is an egress packet, the second logic inserts a VLAN into the MAC sub-layer of the packet, stores in the VLAN an identifier of an egress port of the first switch from which the packet is to be transmitted over the network, and communicates the packet to the first switch.
84. A system of claim 1, further comprising a fourth logic that masks the control information such that the control information appears as a standard packet field to a third party.
85. The method of claim 69 further comprising:
- when a packet is received at the first switch: determining whether the packet is an ingress packet or an egress packet; when the packet is an ingress packet, inserting a VLAN into the MAC sub-layer of the packet, storing in the VLAN an identifier of an ingress port of the first switch at which the packet was received, and communicating the packet to the second switch; and when the packet is an egress packet, retrieving from a VLAN in the MAC sub-layer of the packet an identifier of an egress port of the first switch from which the packet is to be transmitted over the network, and transmitting the packet from the egress port of the first switch over the network;
- when a packet is received at the second switch: determining whether the packet is an ingress packet or an egress packet; when the packet is an ingress packet, retrieving from a VLAN in the MAC sub-layer of the packet an identifier of an ingress port of the first switch at which the packet was received over the network, copying or inserting the identifier into a header for or data element of the packet, and performing additional processing of the packet or transmitting the packet to a management/switching (MSM) blade; and when the packet is an egress packet, inserting a VLAN into the MAC sub-layer of the packet, storing in the VLAN an identifier of an egress port of the first switch from which the packet is to be transmitted over the network, and communicating the packet to the first switch.
86. The system of claim 83 wherein the first logic, when an egress packet is received at the first switch, deletes the VLAN containing the egress port identifier from the packet before transmitting the packet over the network.
87. The system of claim 83 wherein the second logic, when an ingress packet is received at the second switch, deletes the VLAN containing the ingress port identifier from the packet after copying or inserting the identifier into a header for the packet.
88. The method of claim 85 wherein, when an egress packet is received at the first switch, the VLAN containing the egress port identifier is deleted from the packet before transmitting the packet over the network.
89. The method of claim 85 wherein, when an ingress packet is received at the second switch, the VLAN containing the ingress port identifier is deleted from the packet after the identifier is copied or inserted into a header for the packet.
90. The system of claim 83 wherein the identifier is copied or inserted into a header pre-pended to the packet.
91. The system of claim 83 wherein the identifier is copied or inserted into a data element within the MAC sub-layer of the packet.
92. The method of claim 85 wherein the identifier is copied or inserted into a header pre-pended to the packet.
93. The method of claim 85 wherein the identifier is copied or inserted into a data element within the MAC sub-layer of the packet.
6553028 | April 22, 2003 | Tang et al. |
6788671 | September 7, 2004 | Ryals et al. |
7031325 | April 18, 2006 | Williams |
7145869 | December 5, 2006 | Kadambi et al. |
7173935 | February 6, 2007 | Lou et al. |
20020012345 | January 31, 2002 | Kalkunte et al. |
20030043736 | March 6, 2003 | Gonda |
20030142685 | July 31, 2003 | Bare |
20040066781 | April 8, 2004 | Shankar et al. |
- U.C. Davis, “VLAN Information,” Oct. 29, 1998, pp. 1-13, available at http://net21.ucdavis.edu/newvlan.htm.
- IEEE Std. 802.1D-1990, “IEEE Standards for Local and Metropolitan Area Networks: Media Access Control (MAC) Bridges,” Mar. 8, 1991 (174 pp.).
- IEEE Std 802.3ae-2002, “IEEE Standard for Information Technology—Telecommunications and Information Exchange Between Systems—Local and Metropolitan Area Networks—Specific Requirements,” Aug. 30, 2002 (529 pp.).
Type: Grant
Filed: Sep 8, 2003
Date of Patent: Aug 25, 2009
Assignee: Extreme Networks, Inc. (Santa Clara, CA)
Inventors: Erik R. Swenson (San Jose, CA), Stephen R. Haddock (La Honda, CA)
Primary Examiner: Jayanti K Patel
Assistant Examiner: Jung Park
Attorney: Howrey LLP
Application Number: 10/658,216
International Classification: H04L 12/28 (20060101);