1. Technical Field of the Invention
The embodiments of the invention relate to wired communications and, more particularly, to connecting a bridging device to various intermediate routing and endpoint devices within the wired network.
2. Description of Related Art
Various wired communication systems are known today to provide communication links between devices, whether those devices are endpoint devices, intermediate routing devices or bridging devices. The communication may be among devices within a given network or connections may be established across networks. In one particular type of system, a bridging device is utilized to control the data traffic between those components that reside on one side of the bridge (e.g. downlink) and those components or network that reside on the other side of the bridge (e.g. uplink). An example of a bridging system is an enterprise system, in which a bridge controls data traffic among a plurality of components that reside hierarchically below the bridge, as well as data flow between the bridge and an environment that resides hierarchically above the bridge.
An example prior art data transfer system that uses physical links is illustrated in
The data transfer for system 100 is controlled by CB 101. For example, if endpoint device 103 wants to transfer data to another endpoint device within system 100, the data is first transferred from endpoint device 103 to LM0. Then, LM0 transfers the data to CB 101 under arbitration control provided by CB 101. CB 101 receives the data and using the destination address accompanying the data, identifies the destination endpoint device. CB 101 then transfers the data to an LM associated with the endpoint device and subsequently sends the data to the destination endpoint device. Alternatively, if the data from endpoint device 103 is destined for a location outside of system 100, then CB 101, upon receiving the data from LM0 will send the data uplink to a device, component and/or network that resides high up in the hierarchy from CB 101.
Generally, the data transfer is achieved by utilizing a particular communication protocol. A common communication protocol to be used with a wired system, such as system 100, is a protocol specification defined by IEEE 802.1 standard. IEEE 802.1 standard applies to network management. System 100 may be configured as an Ethernet™ network, in which instance, system 100 may employ IEEE 802.3 or equivalent specification to define Media Access Control (MAC) layers for the Local Area Network (LAN).
CB 101 may utilize a single bridging device or it may use more than one bridging device. In
Note that in system 100, the various components 101-103 are connected by physical links that have a one-to-one connection with each other. Even though a virtual channel may be assigned to communicate between a particular VM and CB 101, the communication is passed along a single physical path. That is, data that traverses up the hierarchy from a VM or LM to CB 101 takes a defined physical path. Likewise, data traversing down the hierarchy from CB 101 to a LM or VM takes a single physical path. A break (failure) in a particular link would open the path of the physical link. Furthermore, unless alternate pathways are available, other than the single physical pathway, data load balancing may not be achievable when utilizing only a single physical path.
Accordingly, there is a need for a system that utilizes more than one physical link in designating a data path to an endpoint device for a hierarchy managed by a bridging device in a network.
The embodiments of the present invention may be practiced in a variety of systems that employ a central or edge routing device, such as a bridging device, to transfer data. Although the embodiments are described in reference to a controlling bridge on a network, the invention may be readily implemented in other routing devices as well. The invention need not be limited to a controlling bridge. For example, switches of a switch fabric may employ the practice of the present invention. Likewise, devices other than line modules, line cards, porting components, port extenders that are described herein may be used to practice the invention as well. Furthermore, the embodiments of the invention are described in reference to protocols or specifications defined under one of IEEE 802.# standard or protocol (such as IEEE 802.1, IEEE 802.2, IEEE 802.3 etc.), but need not be limited to such standards or protocols. Additionally, the embodiments of the invention are described in reference to physical links in a wired environment. However, other embodiments may use wireless links or incorporate a system in which portions of the system may have wireless communication links. Thus, the physical links described herein and illustrated in the Figures reference wired connections, but it is to be noted that wireless communication pathways, or a combination of wired and wireless pathways may be employed in other embodiments.
Below the system hierarchy of LMs 202 are PEs 203, which provide the function of increasing (e.g. extending) the number of components that may be connected to each LM 202. For example, if an LM 202 had “N” downstream lines, it may connect to “N” endpoint devices or end stations (or stations). However, by utilizing a PE on each LM line, the number of endpoint stations that may connect through that LM is multiplied. For example, if the particular LM with “N” downstream lines connected each line to a PE that has “M” downstream lines, then potentially N×M stations may connect through a LM/PE combination to the CB. It is to be noted that each PE 203 may be extended further by having another PE or PEs located farther downstream from the first PE. Although the variations of such hierarchical structure are numerous, the main gist of the embodiments of the invention is identified in
Thus, for the particular structure shown in system 200, CB0 and CB1 are coupled to the LMs (LM0 through LM7), as well as to each other, so that data transfer may occur between a particular CB and a particular LM. Likewise, each LM 202 may couple downstream to a station, PE 203, or some other device or component. As noted above, a given station may couple directly to a LM 202 (as shown by station S4 and S5 coupling to LM5) or even to a CB 201 (as noted by station S3). In one embodiment, system 200 utilizes one or more of the IEEE 802.# standard or protocol (such as IEEE 802.1, IEEE 802.2, IEEE802.3, etc.) to communicate with each other and to transfer data within system 200. Furthermore, the data may be sent uplink from CBs 201, or data received from the uplink into CB 201. In one embodiment, an Ethernet LAN provides the uplink connection for CB 201. However, other protocols, standards, and/or specification may be used in other embodiments. Generally, at boot-up initiation, when devices are added, or during other conditions, the various devices/components of system 200 are identified in the system and the CBs retain the pre-configuration information for system 200.
System 200 may operate as a single-homed system, a dual-homed system or a combination of both single-homed and dual-homed. When operating in a single-homed mode, the physical links coupling a particular station to a CB has a singular physical path up the hierarchy to a designated CB 201. When operating in a dual-homed mode, there are two alternate paths from a particular station to the two CBs. The dual-homed pathway is routed through two different intermediary routing devices. A combination system would employ both single and dual routing schemes. As will be described later in the description, for the dual-homed system, the CBs may establish and maintain a virtual connection (termed “virtual trunk” or “virtual channel” herein) over two different physical pathways (links) to the station, so that the data transfer may be achieved over either or both of the two physical links.
In the example embodiment of
Accordingly, stations may establish a dual path from the station to the CBs utilizing different LMs, while other stations (e.g. station S2) may establish a path only through a single LM. Furthermore, note that stations S0, S1, S2 and S6 are shown having a single path between the station and the corresponding PE, but in other embodiments an interface coupling an end station to a PE may have multiple links. Such multiple link coupling of the station allows for duplicity in the connection of the end station. Thus, dashed lines at station S6 in
In the description below pertaining to
ETAG 300 shown in
An Ingress ECID field 303 is used for a pruning function to ensure that the data is not sent back toward the sender in the same namespace within the hierarchy. Ingress ECID is valid only for downstream packet flow and identifies the VM/VSI where the packet originated. If the source VM/VSI and destination VM/VSI are in the same name space domain, the packet does not transition back down to the source. Although not relevant to the understanding of the present invention, ETAG format 300 also includes a Priority Code Point (PCP) field 304 and a Discard Eligibility (DE) field 305. PCP is used to contain a value to differentiate traffic and DE is used to indicate if the frame may be dropped when congestion is experienced.
Referring to
For upstream traffic flow, PE0 is responsible for assigning an ingress port based ETAG 350 to the packet. The ECID (ETAG.ECID) identifies the source station (S0 in the example) of the packet. PE0 also populates PCP and DE fields of the ETAG. The Ingress ECID field is set to “0”. Packets ingressing with ETAG.ECID=0 are to be treated as non-ETAG packets (and will be assigned an ingress Port based ETAG), except that the incoming PCP/DE values are to be retained.
PE0 forwards the traffic received on the downstream port to a pre-configured upstream port. The packet typically does not undergo a level 2 (L2) or level 3 (L3) lookup or learning. LM0 expects all incoming packets at a downstream port to have an ETAG, so that the Ingress ECID field is not looked at by LM0. LM0 then performs a Reverse Path Forwarding (RPF) check based on the incoming ETAG's ECID field. This check is performed to make sure that incoming ECID is known and resident in the downstream port. LM0 then forwards traffic received on the downstream port to a pre-configured upstream port. The packet doesn't undergo L2 and/or L3 (L2/L3) lookup or learning.
Subsequently, when the CB receives the packet from LM0, the CB uses {ingress port, ETAG.ECID} to identify the station that originated the packet (S0 in this case). Any policies for traffic from S0 are applied. CB also learns the association between {MACSA, VLAN} and {ingress port, ETAG.ECID}. CB then performs the L2/L3 forwarding lookups on the packet's {MACDA, VLAN}, in which event the result could either be a local station on network 200 or a destination that is reachable through CB's Ethernet uplink through L2 switch coupled to the CB. The L2/L3 lookup or learning is designated by a switch, shown as L2 switch in
As shown in
For the downstream traffic from the CB, the downstream TPE (LM6 in this example) expects packets from the CB to contain ETAG 351. LM6 drops and copies to its processing circuitry all non-ETAG'ed packets. LM6 also checks whether the format of the ETAG is correct for downstream packet flow. An RPF Check is typically performed at this point. LM6 then forwards the packet based on a {ingress port, ETAG.ECID} lookup that results in a destination port (the downstream port to PE3). The ingress port in the key identifies the namespace (CB port) for the ECID and the packet is forwarded to PE3. PE3 also forwards the packet based on {ingress port, ETAG.VID} lookup. Since the packet is now sent to station S1 (and not another PE), PE3 deletes the ETAG from the packet before sending the packet to station S1.
For multicast packet flow,
In the upstream direction, all packets are first sent to the CB regardless of unicast or multicast transmissions. Each port forwards the traffic to its associated upstream port(s). As noted, when a multicast packet is received at PE0 from S0, processing is identical to the unicast case, in that an ETAG is inserted and the packet is forwarded to a pre-programmed upstream port.
At the CB, the CB does forwarding lookups based on {MACDA, VLAN} and determines the recipients for each packet. In the downstream direction, PEs are capable of doing multicast replication based on ETAG.ECID (e.g. using ECID values from 4096 to 16383 to identify that the traffic is multicast traffic). Therefore, the CB sends only one copy of the packet to each PE connected to it downstream, even if there are multiple multicast destinations coupled to a particular PE. Each downstream PE represents a single multicast replication tree with a unique multicast replication pointer. In one embodiment, a 14-bit multicast replication pointer is used. When the CB receives the packet from LM0, the CB uses {ingress port, ETAG.ECID} to identify the station that originated the packet (S0 in this case). Any policies for traffic from S0 are applied. The CB also learns the association between {MACSA, VLAN} and {ingress port, ETAG.ECID}. The CB performs L2/L3 forwarding lookups on the packet's {MACDA, VLAN}. The ETAG from the CB is shown as ETAG 360. In the instance where one or more recipients are reached via the Ethernet uplink, the ETAG for these ports is deleted and the packet is sent to the uplink port.
As shown in
For packets egressing on ports coupled to a PE, the ETAG is passed through (shown as ETAG 361). Accordingly, as illustrated in
When system 200 of
Furthermore, note that PE1 may have a VTRUNK dual connection path configured for PE1 and station S6, via LM0 and LM1, as well. Note that for a dual-homed configuration, a station utilizes two different pathways to the CB from an APE device, in which the pathways is through different TPE devices.
As noted, the upstream coupling of VTRUNK-A from PE0 uses two physical links (noted by grouping 210) in
The upstream connection from LM0 to CB0 utilizes physical link 220 and the upstream connection form LM1 to CB0 utilizes physical link 221. However, since a packet from S0 may either take the path through LM0 or LM1, two physical paths are available for upstreaming of the packet to CB0. In this way, the duplicate pathways of a VTRUNK use different intermediate routing devices/components at least at one TPE level. If one LM were to experience failure, the second path to CB0 for the dual-homed configuration is still available. Note that LM0 and LM1 may also provide the dual physical link connection on links 222 and 223, respectively, to CB1. In this way, a failure by one CB still allows a packet from S0 to be routed to its intended destination(s).
In order to associate the dual physical paths for a VTRUNK to connect to a given CB, a concept of “virtual trunking” (also may be referred to as “virtual channeling”) is implemented for physical links. When establishing the various connections in the dual-homed operation, the CBs create a VTRUNK that identifies the dual pathways for a given end station. In the example of station S0 and VTRUNK-A above, the CBs 201 set up a virtual trunk (or channel) identifying both LM0 and LM1 as downstream destinations for station S0. The virtual connection is shown as dashed lines in grouping 230. That is, grouping 230 identifies that the one virtual path known as VTRUNK-A actually has two possible downstream pathways (one each to LM0 and LM1). This information is generally retained in the CBs as part of pre-configuring the system. Thus, when a CB receives the upstream ETAG information, the CB checks to determine if the destination device connects via a virtual trunk. If so, then dual-homed technique may be applied, wherein the CB determines the VTRUNK and the downstream devices that are associated as part of that VTRUNK.
If an equivalent virtual connection is established for CB1 for VTRUNK-A, the virtual connection (shown by dashed lines of grouping 231 in
A similar technique may be used with VTRUNK-B associated with station S1, in which VTRUNK (or channel) grouping 232, 233 may be used to configure LM6 and LM7 as the two downstream devices for reaching PE3 and S1. This technique may be utilized to establish a plurality of VTRUNKs, in which each of the CBs may retain the information as to which physical links from the CB is associated with the VTRUNK. In this manner, a given CB may send the packet downstream on either of the physical links, based on the provided ETAG/ECID. It is to be noted that a particular physical link or links may be designated for more than one VTRUNK.
In
The same is also applicable for the unicast situation of
Although a variety of components and devices may be used for porting devices such as the above-described PEs and LMs, one embodiment is shown in
Likewise,
Accordingly, by associating a physical link information to a virtual port in the CB, a packet that is destined to a virtual interface may be reached through multiple physical links. A physical link resolution may come into play and a physical member selected according to member selection algorithm. If a packet is destined to a virtual interface that is connected to a single-homed PE, then the packet may go to a physical link connecting the CB and the LM. For dual-homed virtual interface, two separate physical pathways are allocated, where one or both pathways may be used to transfer a packet. However, the multiple pathways are viewed as a single virtual pathway by the system.
Furthermore, the above-described dual-homed mode of operation utilized two physical pathways. Other embodiments may readily adapt the dual-homed technique to provide for more than two physical pathways when configuring the aggregation grouping. Thus, the invention may be readily used for various multi-homed systems. Also, a system may be implemented strictly as a dual-homed (or multi-homed system) or a combination of single-homed and multi-homed system, so that some end points are connected as a single device and others are connected into an aggregation group.
Effectively, based on the destination virtual port in the CB, the CB may see the multiple physical links connecting the LMs via VTRUNKs and when the virtual interface is not dual homed, the physical links connecting the CB is seen as separate links. With the practice of the invention, multiple virtual ports may reside on the same physical links, but the combination of physical links to reach an end point may be different and may have different intermediate routing devices.
Thus, virtual trunking (or channeling) using multiple physical links is described. Furthermore, the example embodiments described herein utilized two physical links for a dual-homed system. However, other embodiments may use additional pathways to provide an X-homed system having X number of physical links assigned for a VTRUNK. The invention may be implemented in a variety of systems, including, but not limited to, trunk lines, enterprise systems, switch fabrics, etc. Furthermore, it is to be noted that the various connections shown in the Figures may be provided by wired connections, wireless connections or a combination of both. Additionally, the virtual trunking system shown may transfer a variety of data and not just packets.
The embodiments of the present invention have been described above with the aid of functional building blocks illustrating the performance of certain functions. The boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined as long as the certain functions are appropriately performed. One of ordinary skill in the art may also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, may be implemented as illustrated or by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof.
As may also be used herein, the terms “controller”, “processor”, and/or “processing unit or circuit” may be a single processing device or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on hard coding of the circuitry and/or operational instructions. The processing module, module, processing circuit, and/or processing unit may be, or further include, memory and/or an integrated memory element, which may be a single memory device, a plurality of memory devices, and/or embedded circuitry of another processing module, module, processing circuit, and/or processing unit. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and/or any device that stores digital information.
This application claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application No. 61/732,236, filed Nov. 30, 2012, which is incorporated herein by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
61732236 | Nov 2012 | US |