TRANSFERRING MULTICAST TRAFFIC VIA CONNECTION AGGREGATION PORTS

DE602007062051T2Active Publication Date: 2026-06-24ORCKIT IP LLC

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
ORCKIT IP LLC
Filing Date
2007-12-09
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Existing methods for forwarding multicast traffic in communication networks, particularly in VPLS, often result in inefficient use of bandwidth and unbalanced traffic load distribution due to unnecessary packet duplication and forwarding of multiple copies to LAG groups, which complicates handling of high-bandwidth applications like IPTV and video conferencing.

Method used

A network node system that assigns fabric multicast IDs (FMIDs) to multicast packets, forwarding a single copy through the switching fabric to each LAG group while balancing traffic load by distributing FMIDs evenly among ports, thereby avoiding unnecessary packet duplication and optimizing bandwidth usage.

Benefits of technology

This approach ensures efficient bandwidth utilization and balanced traffic distribution, reducing unnecessary load on ingress cards and interfaces, and simplifying handling of high-bandwidth multicast applications like IPTV and video conferencing.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION

[0001] The present invention relates generally to communication networks, and particularly to methods and systems for forwarding multicast traffic in communication networks.BACKGROUND OF THE INVENTION

[0002] Virtual private local area network service (VPLS) is a point-to-multipoint service, which emulates local area network (LAN) functionality over provider networks. VPLS is described, for example, by Augustyn and Serbest in Internet Engineering Task Force (IETF) Request for Comments (RFC) 4665, entitled "Service Requirements for Layer 2 Provider-Provisioned Virtual Private Networks," RFC 4665, September, 2006; by Lasserre and Kompella in "Virtual Private LAN Services Using LDP," IETF Internet draft draft-ietf-12vpn-vpls-ldp-09, June, 2006; and by Kompella and Pekhter in "Virtual Private LAN Service (VPLS) Using BGP for Auto-discovery and Signaling," IETF Internet draft draft-ietf-12vpn-vpls-bgp-08, June, 2006, which are incorporated herein by reference. These documents are available on-line at www.ietf.org.

[0003] Link aggregation (LAG) is a technique by which a group of parallel physical links between two endpoints in a data network can be joined together into a single logical link (referred to as a "LAG group"). Traffic transmitted between the endpoints is distributed among the physical links in a manner that is transparent to the clients that send and receive the traffic. For Ethernet ™< networks, link aggregation is defined by Clause 43 of IEEE Standard 802.3, Carrier Sense Multiple Access with Collision Detection (CSMA / CD) Access Method and Physical Layer Specifications (2002 Edition), which is incorporated herein by reference.

[0004] A method of forwarding data in a network switch fabric is disclosed in U.S. Patent Application Publication US 2002 / 0027908 A1 to Kalkunte et al. entitled: "Switch fabric with path redundancy". An incoming data packet is received at a first port of the fabric and a first packet portion, less than a full packet length, is read to determine particular packet information, the particular packet information including a source address and a destination address. An egress port bitmap is determined based on a lookup in a forwarding table and it is determined if the destination address belongs to a trunk group of trunked ports. The incoming data packet is forwarded based on the egress port bitmap, when the destination address does not belong to the trunk group. When the destination address does belong to the trunk group, a particular trunked port of the trunk group is determined and the incoming data packet is forwarded thereto. More specifically, the particular trunked port of the trunk group may be determined by calculating a hash value based on the source address and the destination value and selecting the particular trunked port based on the hash value. Additionally, a class of service for the incoming data packet is also determined from the particular packet information and a priority for forwarding is set based on the class of service.

[0005] A method for establishing a connection with a guaranteed bandwidth for transmitting data over a logical link that includes a plurality of parallel physical links between first and second endpoints is described in U.S. Patent Application Publication US 2004 / 0228278 A1 to Bruckman et al. entitled: "Bandwidth allocation for link aggregation". A link bandwidth is allocated on each of the physical communication links so as to include a predefined safety margin, based on either a failure protection policy, or a measure of fluctuation that occurs in a rate of data transmission over the physical links, or both. A sum of the allocated link bandwidth over the plurality of the parallel physical links is substantially greater than the guaranteed bandwidth of the connection. The data are conveyed over the logical link by distributing the data for transmission among the physical links in accordance with the allocated link bandwidth.

[0006] A method for processing data packets in a communication network that includes establishing a path for a flow of the data packets through the communication network is described in U.S. Patent Application Publication US 2006 / 0251074 A1 to Solomon entitled: "Tunnel provisioning with link aggregation". At a node along the path having a plurality of aggregated ports, a port is selected from among the plurality to serve as part of the path. A label is chosen responsively to the selected port. The label is attached to the data packets in the flow at a point on the path upstream from the node. Upon receiving the data packets at the node, the data packets are switched through the selected port responsively to the label.

[0007] Data packets containing source and destination addresses are received on one or more incoming ports for distribution on one or more outgoing ports are described in U.S. Patent US US 6,553,029 B1 to Alexander entitled: "Link aggregation in ethernet frame switches". An address look-up table stores previously processed source and destination addresses, together with source and destination contexts associated with the respective source and destination addresses. The contexts represent either a specific physical port, or an aggregated grouping of ports. A distribution table stores, for each aggregated grouping of outgoing ports, a corresponding aggregated group of identifiers of specific outgoing ports. As each packet is received, its source and destination addresses are extracted and the address look-up table is searched for those source and destination addresses. If the address look-up table contains those source and destination addresses then the source and destination contexts associated with those source and destination addresses are retrieved from the address look-up table. If the address look-up table does not contain a source address corresponding to the extracted source address, then a source context corresponding to the extracted source address is derived and stored in the address look-up table with the extracted source address. If the retrieved destination address context represents a specific outgoing port, then the received packet is queued for outgoing transmission on that port. If the retrieved destination address context represents an aggregated grouping of outgoing ports, then the identifiers for the outgoing ports comprising that grouping are retrieved from the distribution table, and the received packet is queued for outgoing transmission on all of the outgoing ports comprising that grouping.

[0008] A network switch configured for switching data packets across multiple ports that uses an address table to generate frame forwarding information is described in PCT Publication WO 2000072523 A1 to Merchant et al. entitled: "Method and apparatus for trunking multiple ports in a network switch". A decision-making engine checks the frame forwarding information to determine whether the frame is to be forwarded on a port that is part of a trunk. When the frame is to be output on a trunk port, the decision-making engine determines the port on which to transmit the frame.SUMMARY OF THE INVENTION

[0009] There is therefore provided, in accordance with an embodiment of the present invention, a network node in a communication network, as defined by the appended independent claim 1.

[0010] In some embodiments, the node includes line cards that are connected to the ports and a switching fabric that interconnects the line cards, the packet processing logic is resident in the switching fabric, and the line cards are arranged to receive the data packets from the ports and to forward the data packets to the switching fabric without duplicating the data packets.

[0011] In another embodiment, two or more subsets of the ports are grouped respectively in two or more LAG groups, and the switching fabric is configured to duplicate the data packet and to forward a copy of the data packet to only one of the line cards serving each of the subsets, while distributing forwarded copies of the data packets among the output ports of each of the subsets so as to balance a traffic load within the LAG groups.

[0012] In yet another embodiment, the data packets include multicast packets. In still another embodiment, the data packets include packets of a virtual private local area network service (VPLS). Alternatively, the data packets may include packets of a native multicast forwarding application.

[0013] In some embodiments, the packet processing logic is arranged to allocate to each of the received data packets a fabric multicast identification (FMID) value selected from a range of possible FMID values, each FMID being associated with one of the ports in the subset, and to forward the single copy to the port associated with the allocated FMID value. In another embodiment, the packet processing logic is arranged to distribute the allocated FMID values among the possible FMID values in the range such that the traffic load is balanced among the ports in the subset. The packet processing logic may be arranged to re-distribute the allocated FMID values upon a change in a number of active ports in the subset, such that the traffic load is balanced among the active ports.

[0014] In an embodiment, the packet processing logic is arranged to determine the allocated FMID value for each of the data packets by applying a hashing function to fields of the data packets, so as to balance the distribution. Alternatively, the packet processing logic is arranged to determine the allocated FMID value for each of the data packets based on a predetermined mapping of header fields of the data packets to the FMID values, so as to balance the distribution.

[0015] In another embodiment, the packet processing logic includes multiple line cards connected to the ports and a switching fabric interconnecting the line cards and, for each of the received data packets, a first line card connected to a first port via which the data packet is received is arranged to allocate the FMID value to the packet and to forward the packet to the switching fabric, and the switching fabric and a second line card connected to a second port to which the data packet is to be sent are configured to forward the data packet responsively to the FMID value.

[0016] In yet another embodiment, the first line card is arranged to assign to the data packets line card FMID (LC-FMID) values selected from a first range of possible LC-FMID values, and the switching fabric is arranged to map the LC-FMID values to respective central FMID. (C-FMID) values selected from a second range of possible C-FMID values that is smaller than the first range and to forward the data packets responsively to the C-FMID values. In still another embodiment, multiple LC-FMID values are mapped to a single C-FMID value, and the switching fabric is configured to minimize data packet duplication caused by mapping the multiple LC-FMID values.

[0017] The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Fig. 1 is a block diagram that schematically illustrates a network node, in accordance with an embodiment of the present invention; and Fig. 2 is a flow chart that schematically illustrates a method for forwarding multicast traffic, in accordance with an embodiment of the present invention. DETAILED DESCRIPTION OF EMBODIMENTS OVERVIEW

[0019] Network nodes typically comprise multiple line cards interconnected by a switching fabric, with each line card supporting one or more output ports. A network node forwards traffic to multiple destinations, which are often referred to as connection termination points (CTP). Some destinations, referred to as grouped destinations, are served by multiple output ports, which are grouped into LAG groups. The output ports in each LAG group may be distributed among different line cards.

[0020] A node that supports VPLS or a native multicast application is often requested to forward multicast packets to a group of multiple destinations served by the node, including the grouped destinations. Embodiments of the present invention provide improved methods and systems for forwarding multicast packets to grouped destinations.

[0021] In some embodiments, the node assigns a range of N virtual addresses, called fabric multicast IDs (FMIDs), to each multicast source. The ingress card, i.e., the line card via which the multicast packets enter the node, selects and assigns one of the N FMIDs to each multicast packet, and forwards the packet to the switching fabric. Typically, the node attempts to assign the different FMIDs in the range evenly. The switching fabric is pre-configured to forward each multicast packet to a single output port in each LAG group, based on the FMID assigned to the packet. When the packet needs to be sent to multiple LAG groups, the switching fabric duplicates the packet.

[0022] Unlike some known methods and systems in which multicast packets are forwarded to all output ports in a particular LAG group and then discarded by some of the output cards, the methods and systems described herein ensure that a particular multicast packet is forwarded only once to each LAG group in the first place. As a result, node bandwidth is not wasted. Forwarding only a single copy of a multicast packet across the node to the grouped destination significantly increases the capacity of the node.

[0023] Unlike some known methods and systems in which all multicast packets are sent to the same LAG group port, the methods and systems described herein distribute multicast packets approximately evenly among the different output ports of the LAG group. Thus, the traffic load within the group is balanced, and distribution of additional unicast traffic across the group is simplified.

[0024] Although it is possible to duplicate the multicast packet in the ingress card and then distribute the packet replicas via.. the fabric to the egress cards, this method imposes an unnecessary traffic load on the ingress card and on the interface between the ingress card and the switching fabric. In the methods and network elements described herein, on the other hand, the multicast packet is forwarded to the fabric without duplication. The fabric duplicates the multicast packet when necessary (i.e., when the packet should be forwarded to multiple LAG groups), and forwards a single copy of the packet to each LAG group. Thus, load balancing is achieved without adding unnecessary traffic load inside the node due to packet duplication.

[0025] These benefits are particularly significant in multicast applications that use large bandwidths, such as Internet Protocol television (IPTV), Near Video on Demand (NVOD) and video conferencing, which are becoming increasingly important.

[0026] Although the description that follows refers mainly to multicast packets, the methods and systems described herein can be used to forward any type of data packets addressed to multiple recipients, such as broadcast packets, bridging packets and VPLS or bridging flooded packets.SYSTEM DESCRIPTION

[0027] Fig. 1 is a block diagram that schematically illustrates a network node 20, in accordance with an embodiment of the present invention. Node 20 is part of a packet-switched communication network, and provides virtual private LAN services (VPLS). Although the embodiments described below refer to VPLS, the methods and systems described herein can also be used in nodes that carry out native multicast forwarding processes, such as IP multicast or bridge multicast.

[0028] As part of the VPLS functionality, node 20 forwards data packets identified as multicast packets (i.e., having a multicast destination address) to all destinations served by the VPLS in the node. The set of destinations served by a particular VPLS is referred to as the multicast scope. In some applications, the multicast scope may comprise a subset of the of the potential VPLS destinations, for example when only a subset of the VPLS destinations are expected to carry a specific multicast stream. Each logical or physical destination is commonly referred to as a separate connection termination port (CTP).

[0029] In some embodiments, one or more of the CTPs served by node 20 may comprise grouped destinations. Each grouped destination uses multiple physical output ports, which are grouped using link aggregation (LAG). The ports belonging to a particular LAG group are referred to as group members.

[0030] For example, in the exemplary configuration of Fig. 1, node 20 accepts multicast packets from a multicast source 24 and forwards the packets to two CTPs denoted 32A and 32B. CTP 32A comprises three physical ports 28A...28C, which are configured as a LAG group. CTP 32B comprises two physical ports 28D and 28E, which are configured as another LAG group. The terms CTP and LAG group are sometimes used interchangeably below. Node 20 may comprise additional CTPs (not shown in the figure), which comprise a single physical port. Such single ports are often regarded and managed by the node as LAG groups having a single member. Thus, in the context of the present patent application and in the claims, the term "LAG group" is used to cover groups having multiple members, as well as single ports that are treated as single-member LAG groups.

[0031] Typically, each node runs one or more virtual switching instances (VSI), which perform bridging among different virtual interfaces. The virtual interfaces may comprise, for example, physical interfaces, virtual LAN (VLAN) interfaces, ring interfaces and pseudo-wire (PW) interfaces.

[0032] Node 20 comprises line cards, which process the data packets entering and leaving the node. Typically, each line card performs both ingress and egress processing, i.e., processes both incoming and outgoing packets, respectively. In the exemplary configuration of Fig. 1, node 20 comprises five line cards denoted 36A...36E. Line card 36A, which is referred to hereinbelow as the ingress card, accepts multicast packets.from multicast source 24. Line cards 36B...36E, which are referred to hereinbelow as the egress cards, are connected to the different output ports. Note that output ports belonging to a particular LAG group may be served by different line cards.

[0033] Node 20 comprises a switching fabric 40, which accepts packets from the ingress cards and routes them to the appropriate egress cards. For example, switching fabric 40 may be implemented using the FAP20V fabric access processor, produced by Dune Networks Inc., (Sunnyvale, California). Details regarding this product are available at www.dunenetworks.com. Another switch fabric device, which can be used for this purpose is the 89TSF500 device, produced by IDT, Inc. (San Jose, California). Details regarding this product are available at www.idt.com. Yet another switch fabric device is the PRS80G device, produced by AMCC (Sunnyvale, California). Details regarding this product are available at www.amcc.com / MyAMCC / jsp / public / productDetail / product_detail.jsp ?productID=PRS80G. Further alternatively, any other suitable device can be used.FORWARDING MULTICAST PACKETS

[0034] Some known methods and systems forward multicast packets to all egress cards (output line cards) that serve a certain LAG group. Since each LAG group is expected to output only a single copy of each multicast packet, some of the egress cards in the group discard the multicast packet. Such methods and systems typically use the node bandwidth inefficiently when forwarding copies of multicast packets to multiple egress cards.

[0035] Other known methods and systems forward all multicast traffic to a single port of the LAG group. When using such methods and systems, the overall distribution of traffic (unicast and multicast) among the LAG ports is often unbalanced. Additionally, it is often difficult for such methods and systems to handle multicast traffic bandwidth that is higher than the capacity o.f.a single .LAG group member.

[0036] Unlike the known methods and network elements which forward multiple copies of multicast packets to all egress cards, node 20 forwards only a single copy of a particular multicast packet over the node to each LAG group using methods that are described below. In other words, only a single copy of a particular multicast packet is forwarded toward a single egress card out of the egress card composing the LAG group.

[0037] Unlike the known methods and network elements which forward multicast packets over a particular LAG group member, node 20 distributes the multicast packets approximately evenly among the different members of each LAG group, so as to balance the traffic load within the group and enable simple, balanced forwarding of the additional unicast traffic.

[0038] It is possible in principle to duplicate the multicast packet in the ingress card, and then to distribute the replicas of the multicast packet to the fabric and egress cards. This method, however, imposes an unnecessary traffic load on the ingress card and on the interface between the ingress card and the switching fabric.

[0039] Node 20, on the other hand, forwards only a single copy of each multicast packet to the fabric without duplication. The fabric duplicates the multicast packet and forwards a copy of the packet to each participating egress card. Thus, load balancing is achieved without adding unnecessary traffic load inside the node due to packet duplication.

[0040] In some embodiments, each multicast source is assigned a range of N virtual addresses called fabric multicast IDs (FMIDs). The considerations for selecting the value of N, the number of FMIDs, are described further below. The ingress card assigns one of the N FMIDs to each multicast packet.arriving from the multicast source. The assignment of FMIDs to multicast packets attempts to distribute the packets approximately evenly among the different FMIDs in the range.

[0041] For example, the ingress card may determine the FMID of a particular multicast packet by applying. a. hashing function to header fields of the multicast packets, and taking a modulo N of the hash result. Any suitable header fields can be used for this purpose, such as IP header fields and media access control (MAC) address fields.

[0042] Alternatively, the ingress card can use a predetermined mapping of header fields, such as destination IP addresses or pairs of source and destination IP addresses, to FMID values. This technique is particularly suitable for use in IPTV applications and in Internet Group Management Protocol (IGMP) and / or Protocol Independent Multicast (PIM) aware systems, in which the number of active channels and their related bandwidths are known.

[0043] The multicast packets are provided to fabric 40 along with their respective FMIDs. Both fabric 40 and the egress cards are pre-configured to forward each multicast packet to the appropriate output port based on its FMID. In some embodiments, fabric 40 comprises a forwarding table, which maps FMIDs to line cards, i.e., defines the line card to which a multicast packet having a certain FMID is to be routed. Each line card comprises another forwarding table, which maps FMIDs to output ports. Thus, each multicast packet is assigned an FMID by the ingress card, and then forwarded to a particular output port by the fabric and egress card, based on its FMID. Alternatively, node 20 may comprise any other suitable switching logic that forwards multicast packets to the appropriate output ports using the methods described herein.

[0044] The selection of N and the mapping of FMIDs to egress cards and output ports ensure that each multicast packet is forwarded only once to each LAG group, and that multicast packets are distributed approximately evenly among the members of each LAG group.

[0045] For example, in the configuration of Fig. 1, six FMIDs denoted base+0 through base+5 are used, i.e., N=6. In the present example, FMIDs are expressed in terms of a fixed base address and an offset. As can be seen in the figure, the .fabric and egress cards are configured so that multicast packets are forwarded in accordance with the following table: LAG groupOutput portFMIDs32A28Abase+0, base+128Bbase+2, base+328Cbase+4, base+532B28Dbase+0, base+1, base+228Ebase+3, base+4, base+5

[0046] This forwarding scheme ensures that (1) each multicast packet is forwarded exactly once to each LAG group and (2) multicast packets are distributed evenly (assuming the hashing is even) among the output ports of each LAG group. Note that the fabric and / or egress cards sometimes generate multiple copies of multicast packets. The fabric may duplicate a multicast packet in order to forward it to different egress cards (a single copy per card), while the egress card may duplicate the packet again if multiple LAG groups are served by the same card.

[0047] A similar scheme can be used when there is a need to send the multicast packet to a single (i.e., non LAG) physical interface. In this case, all the FMIDs, in the example above base+0, base+1, base+2, base+3, Base+4 and base+5, will be mapped into this physical interface. Thus, as noted above, the fabric treats single ports as LAG groups having a single member.

[0048] The value of N is typically selected based on the number of members in the different LAG groups. In the present example, the value N=6 was selected because the node supports LAG groups having two and three members. Generally, if N is selected to be a common multiple of the sizes of the different LAG groups (i.e., if each LAG group size supported by node 20 is a divisor of N), then it is possible to distribute the N FMIDs evenly among the members of each LAG group.

[0049] In some embodiments, the number of LAG group members that are active at a. given time may change, for example as a result of configuration changes or because output ports are taken out of service due to failures. In such cases, in order to allow even traffic distribution among the remaining ports without loss of traffic, the node re-arranges the mapping of ports to FMIDs. For example, the following table describes a re-arranged mapping of ports to FMIDs in the configuration of Fig. 1 above, following a failure of port 28C: LAG groupOutput portFMIDs32A28Abase+0, base+1, base+428Bbase+2, base+3, base+528CNot connected32B28 Dbase+0, base+1, base+228Ebase+3, base+4, base+5

[0050] As can be seen in the table, the FMIDs base+4 and base+5, which were both originally mapped to port 28C, are now mapped to ports 28A and 28B, respectively.

[0051] Thus, in some embodiments, the selection of N takes into account the different numbers of active ports in the LAG groups, and not only the maximum or nominal size of each LAG group. For example, if a particular node supports a maximum LAG group size of four ports, each LAG group may comprise from one to four active ports at any given time. Selecting N=2·3·4=12 ensures even distribution for any number of active ports.

[0052] In some embodiments, the number of allocable FMIDs is limited due to implementation constraints. In such cases, smaller values of N that do not provide a perfectly even distribution can be used, without significantly degrading the quality of the distribution. For example, in order to provide a perfectly even FMID distribution for LAG groups of up to eight ports, a minimum value of N=840 is needed. However, choosing a much smaller value of N=24 is often adequate. N=24 provides optimal distribution for 1, 2, 3, 4, 6 and 8 ports, and approximately uniform distribution for 5 and 7 ports.

[0053] The node configuration of Fig. 1 is an exemplary configuration, chosen purely for the sake of conceptual clarity. In alternative embodiments, node 20 may comprise any number of line cards, input ports, output ports and LAG groups. Each node may serve any number of multicast sources and CTPs. Each line card may serve any number of individual output ports and / or ports grouped in LAG groups.

[0054] The functions of node 20 described herein can be embodied in hardware or firmware, such as using one or more application-specific integrated circuits (ASICs) and / or field-programmable gate arrays (FPGAs). Additionally or alternatively, some or all node functions can be implemented in software, such as using a network processor. Node 20 may also comprise a combination of hardware and software elements.

[0055] Fig. 2 is a flow chart that schematically illustrates a method for provisioning and forwarding multicast traffic, in accordance with an embodiment of the present invention. The method begins by defining the appropriate FMID range according to the LAG group configuration of node 20, at a range definition step 50. Node 20 configures the forwarding tables of the fabric and egress cards, at a configuration step 52.

[0056] Node 20 accepts multicast packets from the multicast source, at a packet acceptance step 54. The node forwards the multicast packets to the appropriate output ports, at a forwarding step 56. As noted above, the ingress card assigns an FMID from the range to each multicast packet, and the fabric and egress cards forward the packets in accordance with the pre-configured forwarding tables.

[0057] The description above refers to a single VSI and a single multicast source. In some embodiments, a different range of FMIDs (e.g. a different base address) can be defined for each VSI and / or for each multicast source.

[0058] The methods and systems described herein can also be used for forwarding other types of packets. For example, in some scenarios, node 20 is requested to forward a unicast packet to a particular destination address whose media access control address (MAC) is currently unknown to the node. This scenario may occur, for example, when a MAC-learning process (in which the node associates MAC destination addresses of other nodes in the network with the output ports through which these nodes are reachable) is not yet completed. When the node cannot determine through which output port a unicast packet is to be forwarded to a particular destination MAC address, the node may transmit the packet to all output ports in a process referred to as flooding. Flooding of unicast packets can also be implemented using the methods and systems described herein.

[0059] In some embodiments, the total number of allocable FMIDs is lower in the switching fabric than in the line cards. In other words, fabric 40 may have an FMID space having a smaller number of bits than the FMID space of the line cards. For example, the line cards may support 13-bit FMIDs, referred to hereinbelow as line card FMIDs (LC-FMIDs), while the fabric may only support 11-bit FMIDs, referred to as central FMIDs (C-FMIDs). In these cases, multiple LC-FMIDs correspond to a particular C-FMID. Depending on the fabric definition, the C-FMID may comprise, for example, the least significant bits (LSB) or the most significant bits (MSB) of the LC-FMID.

[0060] The fabric forwards copies of the multicast packet to all egress cards having at least one output port that corresponds to the C-FMID. Because of the association of multiple LC-FMIDs to a single C-FMID, superfluous multicast packets may be forwarded to egress cards unnecessarily, which causes unnecessary packet duplication and adds an unnecessary load to the interface between the fabric and the egress cards. The superfluous copies are typically discarded by the egress cards.

[0061] In some embodiments, the LC-FMID values in node 20 are selected so as to reduce the number of unnecessarily duplicated multicast packets. For example, when the C-FMID is defined as the 11 MSB of the LC-FMID, assigning LC-FMIDs having successive values causes successive LC-FMIDs to be mapped to the same C-FMID with high probability, thus reducing the number of unnecessary packet duplication. As another example, when the C-FMID is defined as the 11 LSB of the LC-FMID, successive LC-FMIDs will inevitably map to different C-FMIDs, resulting in a high number of duplicated packets. In order to avoid this situation, the 13-bit LC-FMID can be modified. For example, the two LSB and the two MSB of the LC-FMID can be swapped with one another so that originally-successive LC-FMIDs will map to different C-FMIDs.

[0062] The value of N, the number of LC-FMIDs used, also has an effect on the number of duplicated packets. Increasing the value of N usually reduces unnecessary packet duplication.

[0063] The following table shows several node configurations with the corresponding inefficiencies of the interface between the fabric and egress cards. Each row in the table refers to a particular node configuration having a certain number of active LAG members. In each configuration, the LAG members are divided among up to three egress cards denoted A, B and C. The table shows the LC-FMIDs assigned to the different LAG members for N=12 and N=24. The percentages shown for some of the configurations give the percentage of excessive (i.e., above optimal) traffic load on the interface between the switching fabric and the line card. Lower percentages indicate higher efficiencies. Total number of active LAG membersLAG member distribution among egress card(s)LC-FMID (offset from base) assuming N=12LC-FMID (offset from base) assuming N=2411 in A0-110-2321 in A0-5 (33%)0-111 in B6-11 (33%)12-2322 in A0-5, 6-110-11, 12-2331 in A0-30-71 in B4-78-151 in C8-1116-2332 in A0-3, 4-70-7, 8-151 in B8-1116-2333 in A0-3, 4-7, 8-110-7, 8-15, 16-2341 in A0-2 (33%)0-5 (33%)1 in B3-5 (167%)6-11 (33%)1 in C6-8 (167%)12-17 (33%)1 in D9-11 (33%)18-23 (33%)42 in A0-2, 3-5 (133%)0-5, 6-111 in B6-8 (33%)12-17 (33%)1 in C9-11 (33%)18-23 (33%)43 in A0-2, 3-5, 6-8 (33%)0-5, 6-11, 12-17 (11%)1 in B9-11 (33%)18-23 (33%)42 in A0-2, 3-5 (33%)0-5, 6-112 in B6-8, 9-11 (33%)12-17, 18-2344 in A0-2, 3-5, 6-8, 9-110-5,6-11,12-17, 18-23

[0064] Although the embodiments described herein mainly address forwarding of multicast packets over LAG, the methods and systems described herein can also be used for forwarding multicast packets over high capacity ring networks in which communication rings are grouped using link aggregation methods. High capacity ring networks of this sort are described, for example, in U.S. Patent Application Serial Number 11 / 367,231, filed March 2, 2006, which is assigned to the assignee of the present patent application and is incorporated herein by reference.

[0065] The methods and systems described herein are not limited to VPLS, and can be used in other applications such as in IP routers that perform IP multicast forwarding. In these applications, multicast group destinations are defined by a multicast tree created by the applicable multicast routing protocol. Similar methods can also be used in bridges.

[0066] Moreover, the methods and systems described herein can be used in any application in which packets are multiplied or duplicated and sent to a group of interfaces or destinations. Such applications are sometimes collectively referred to in the art as Equal Cost Multi Path (ECMP) entities. ECMP entities may comprise, for example, a group of Multi-Protocol Label Switching (MPLS) tunnels, which reach the same destination node via multiple different routes.

Claims

1. A network node (20) for use in a packet-switched network, the node comprising: multiple physical ports (28a, 28b, 28c, 28d, 28e) for communicating with other nodes in the packet-switched network; and two or more ports from the multiple physical ports configured as a first Link Aggregation Group, LAG, (32a); characterized in that: the node is further for use with a first multicast source (24), and further comprising: two or more ports from the multiple physical ports, distinct from the ports configured as the first LAG, configured as a second LAG (32b); and a first port different from the multiple physical ports connectable to the first multicast source (24) for receiving a first multicast packet therefrom, wherein the node is configured to select a single port in each of the LAGs, wherein the single port is associated with a first value that is based on a hash function that maps a second value in the header field of the first multicast packet to the first value from a range of values, and is configured to output (56) the first multicast packet via the selected ports in each of the LAGs.

2. The node according to claim 1, further comprising first (36a), second (36b, 36c, 36d, 36e), and third (36b, 36c, 36d, 36e) line cards, and a switching fabric connected to pass packets between the line cards, wherein the first line card is configured as an ingress card for receiving packets to the node and for passing the received packets to the switching fabric, and wherein the second and third line cards are configured as egress cards for receiving packets from the switching fabric and for outputting from the node the packets received from the switching fabric.

3. The node according to claim 2, wherein the first port is part of the first line-card for receiving the first multicast packet and for passing the received first multicast packet to the switching fabric.

4. The node according to claim 2, wherein at least part of the ports of the first LAG are part of the second line-card for receiving the first multicast packet from the switching fabric, and wherein at least part of the ports of the second LAG are part of the third line-card for receiving the first multicast packet from the switching fabric.

5. The node according to claim 4, wherein at least one of the ports of the first LAG is part of the third line-card.

6. The node according to claim 4, wherein the first multicast packet comprises a first multicast destination address, and wherein the switching fabric passes the first multicast packet to the second line-card and to the third line-card for outputting the first multicast packet via a single port in the first LAG and via a single port in the second LAG.

7. The node according to claim 2, wherein the switching fabric comprises hardware, firmware, or any combination thereof.

8. The node according to claim 2, wherein the switching fabric comprises an Application Specific Integrated Gate Array, FPGA, or a fabric processor.

9. The node according to claim 1, wherein the node is a Layer-2 switch, wherein the first multicast packet is a multicast frame, and wherein value in the header field of the multicast packet is based on the header field associated with the Media Access Control, MAC, field.

10. The node according to claim 1, wherein the node is a Layer-3 switch based on IP routing, wherein the first multicast packet is an IP multicast frame, and wherein value in the header field of the first multicast packet is based on the header field associated with the Internet Protocol, IP, field.

11. The node according to claim 1, further operative to run one or more Virtual Switching Instances, VSI, for switching between two or more virtual interfaces, and wherein at least one of the virtual interfaces comprises a physical, virtual LAN, VLAN, ring, or Pseudo-Wire, PW, interface.

12. The node according to claim 1, for use with an Internet Group Management Protocol, IGMP, Protocol Independent Multicast, PIM, or Virtual Private LAN Service, VPLS, and wherein the first multicast packet is respectively IGMP, PIM, or VPLS packet.

13. The node according to claim 1, further the hash-function is operative for load balancing in each of the LAGs.

14. The node according to claim 1, wherein the first multicast packet is duplicated and forwarded to all ports of the LAGs, and wherein the duplications are blocked or discarded in each one of the non-selected ports of the LAGs.

15. The node according to claim 1, wherein the node further assigns an identifier to the first received multicast, and wherein the node selects the port in each of the LAGs further based on the assigned identifier.

16. The node according to claim 1, wherein the first LAG consists of a first number of operative ports and the second LAG consists of a second number of operative ports, and wherein the single port that is selected in the first LAG is selected based on the hash function that uses the first number, and the single port that is selected in the second LAG is selected based on the hash function that uses the second number.

17. The node according to claim 16, wherein the hash function comprises a modulo-N calculation or wherein the hash-function is table-based.

18. The node according to claim 17, wherein N is the smallest common multiple of the number of physical ports in all the LAGs.

19. The node according to claim 18, wherein each one of the LAG ports is associated with distinct N / M elements from a list, where M is the number of the ports in the LAG that includes the respective LAG port.

20. The node according to claim 1, wherein each of the first and second LAGs is compatible with IEEE Standard 802.3, 2002 Edition, Clause 43.

21. The node according to claim 1, wherein the node is part of a ring topology network.

22. The node according to claim 1, wherein the node supports Multi-Protocol Label Switching, MPLS, and wherein the node transports the at least part of the received packets as part of an MPLS tunnel.

23. The node according to claim 1, further for use with a second multicast source in a packet-switched network, the node further comprising a second port different from the first port and from the multiple physical ports connectable to the second multicast source for receiving a second multicast packet therefrom, wherein the node selects a single port in each of the LAGs based on a hash function that maps a value in the header field of the second multicast packet to the selected port, and outputs (56) the second multicast packet via the selected ports in each of the LAGs.

24. The node according to claim 23, further operative to assign a first identifier to the first multicast packet and a second identifier to the second multicast packet.

25. The node according to claim 24, wherein the first LAG or the second LAG is selected in response to the first or second identifier.

26. The node according to claim 24, wherein the selecting of the single port in each of the LAGs is further based on the respective first or second identifier.