Transmission of layer two (L2) multicast traffic over multi-protocol label switching networks

Principles of the invention relate to techniques for transmission of Layer 2 (L2) multicast traffic over a point to multi-point (P2MP) label switched path (LSP) within a multi-protocol Label Switching (MPLS) network. The principles of the invention include configuring circuit cross-connect (CCC) switches that transparently cross-connect L2 interfaces to a P2MP LSP within an MPLS network. The transparent cross-connections allow L2 multicast traffic to be encapsulated as MPLS packets regardless of the type of payload the L2 multicast traffic is carrying. A CCC switch may be configured within an ingress router of a P2MP LSP to cross connect an L2 interface to the P2MP LSP. CCC switches may also be configured within each egress router of the P2MP LSP to cross-connect each leaf of the P2MP LSP to one or more L2 interfaces.

TECHNICAL FIELD

The invention relates to computer networks and, more particularly, to transmission of multicast traffic within a computer network.

BACKGROUND

Customer networks are networks established by individuals or companies for internal communication. Customer networks may include local area networks (LANs) or wide area networks (WANs) that comprise a plurality of subscriber devices, such as personal computers, laptops, workstations, personal digital assistants (PDAs), wireless devices, network-ready appliances, file servers, print servers or other devices. The customer networks may meet customer-specific needs using a number of different communication protocols, such as Asynchronous Transfer Mode (ATM) protocol, Ethernet protocol, Bridged Ethernet protocol, Frame Relay protocols, or other Layer 2 communication protocols. Such protocols may transfer information in fixed-length data units, such as frames or cells.

To transfer the data units, switches within a customer network often create a fixed network path, referred to as a virtual circuit. The frames transmitted by a source device within the customer network travel along the virtual circuit created by the switches. A destination device receives the data units from the virtual circuit, and reassembles the information from the data units.

Another popular network technology is the Internet Protocol (IP) networking protocol in which information is divided into variable-length blocks called packets. In contrast to fixed data unit protocols, such as ATM, IP-based networks individually route these packets, also referred to as datagrams, across the network from a source device to a destination device. In other words, unlike the virtual circuits within a customer network, each packet can take a different route from the source to the destination device within the IP network. The destination device reorders the packets upon receipt, extracts the information from the packets, and assembles the information into its original form.

In order to allow remote customer networks to communicate, IP-based communication techniques are being developed that relay frames through one or more intermediate IP network, such as the Internet. According to the techniques, routing devices near an edge of the IP network, often referred to as edge routers, can receive frames from one of the customer networks via an L2 protocol, encapsulate the frames within packets, and route the packets through the IP network to the other customer network. Routing devices within the IP network maintain tables of routing information that describe available routes through the network. Upon receiving an incoming packet, the routing device examines information within the packet and forwards the packet in accordance with the routing information. Some conventional systems use Multi-protocol Label Switching (MPLS) protocols to transport the L2 traffic through the intermediate networks. MPLS is a mechanism used to engineer traffic patterns within Internet Protocol (IP) networks. By utilizing MPLS, a source network device can request a path through a network, i.e., a Label Switched Path (LSP), to carry MPLS packets from the source network device to a destination network device.

In some cases, a router within an IP network may receive a join request for a multicast group from a subscriber device within a customer network. When the router receives the L2? multicast traffic associated with the multicast group from a source network, the router forwards the multicast traffic to the requesting subscriber device. When two or more subscriber devices connected to the same router request to join the same multicast group, the source device sends an identical copy of the associated multicast traffic to the router for each of the requesting subscriber devices over the same connection. This is not bandwidth efficient as multicast traffic typically comprises high bandwidth data, audio, or video streams.

SUMMARY

In general, the principles of the invention allows point to multi-point (P2MP) LSPs to be used for L2 multicast transmission. In this way, principles of the invention provide for the migration of legacy L2 networks to MPLS networks that utilize P2MP LSPs. The MPLS networks may include traffic engineering (TE) capabilities that provide bandwidth management and quality of service (QoS).

The principles of the invention include configuring circuit cross-connect (CCC) switches that transparently cross-connect L2 interfaces to one or more P2MP LSPs within an MPLS network. The transparent cross-connections allow L2 multicast traffic to be encapsulated as MPLS packets regardless of the type of payload the L2 multicast traffic is carrying. For example, a CCC switch may be configured within an ingress router of a P2MP LSP to cross connect an L2 interface from a multicast source network to the P2MP LSP. CCC switches may also be configured within each egress router of the P2MP LSP to cross-connect each leaf of the P2MP LSP to one or more L2 interfaces for customer networks.

A plurality of subscriber devices within a L2 customer network may request the same multicast traffic from a L2 multicast source network. The principles of the invention described herein substantially eliminate the use of ingress replication to carry L2 multicast traffic across an MPLS network. Ingress replication may cause congestion in the MPLS network due to transmitting multiple copies of the high bandwidth data, audio, or video streams that typically comprise multicast traffic. By cross-connecting an L2 interface of an ingress router of a P2MP LSP directly to the P2MP LSP, only a single copy of the multicast traffic is sent by the ingress router. The multicast traffic may be duplicated as necessary at transit routers of the P2MP LSP so as to substantially eliminate duplicate multicast traffic on the same physical connection.

In one embodiment, a method comprises establishing a P2MP label switched path LSP having a source device and multiple receiver devices within a computer network, configuring a CCC switch within the source device that cross-connects an ingress L2 interface to the P2MP LSP, and configuring a CCC switch within each of the multiple receiver devices, wherein each of the CCC switches cross-connects the P2MP LSP to at least one egress Layer 2 interface.

In another embodiment, a network device comprises a signaling protocol that establishes a P2MP LSP through a computer network, at least one Layer 2 interface card that receives at least one L2 interface, and a CCC module that configures a CCC switch that cross-connects the at least one L2 interface to the P2MP LSP.

In a further embodiment, a computer-readable medium comprises instructions that cause a programmable processor to establish a P2MP LSP having a source device and multiple receiver devices within a computer network, configure a CCC switch within the source device that cross-connects an ingress L2 interface to the P2MP LSP, and configure a CCC switch within each of the multiple receiver devices, wherein each of the CCC switches cross-connects the P2MP LSP to at least one egress L2 interface.

An another embodiment, a system comprises a signaling protocol that establishes a P2MP LSP through a computer network, a source device of the P2MP LSP that includes CCC switch that cross-connects an ingress Layer 2 interface to the P2MP LSP, and multiple receiver devices of the P2MP LSP, wherein each of the multiple receiver devise includes a CCC switch that cross-connects the P2MP LSP to at least one egress Layer 2 interface.

DETAILED DESCRIPTION

FIG. 1is a block diagram illustrating an exemplary computer system in which Layer 2 (L2) multicast traffic is transmitted across a Multi-protocol Label Switching (MPLS) network8in accordance with the principles of the invention. In this example, MPLS network8includes a point to multi-point (P2MP) label switched path (LSP)15established between a source edge (SE) router12(also referred to as a SE network device) and multiple receiver edge (RE) routers16A-16C (“RE routers16”) (also referred to as a RE network devices). Circuit cross-connect (CCC) switches are established within SE router12and each of RE routers16to allow L2 multicast traffic to be encapsulated as MPLS packets and transmitted across MPLS network8via P2MP LSPs. In this way, the invention is capable of migrating legacy L2 networks to MPLS networks

In the illustrated embodiment, a source network10couples to SE router12of MPLS network8via an L2 interface11. Source network10may comprise any public or private network that transmits L2 multicast traffic, such as high bandwidth data, audio, or video streams. Customer networks18A-18D (“customer networks18”) couple to RE routers16via L2 interfaces17A-17D (“L2 interfaces17”). Customer networks18may include local area networks (LAN) or wide area networks (WAN) that comprise a plurality of subscriber devices, such as personal computers, laptops, workstations, personal digital assistants (PDAs), wireless devices, network-ready appliances, file servers, print servers or other devices.

Source network10and customer networks18may use non-IP protocols, such as Asynchronous Transfer Mode (ATM) protocol, Ethernet protocol, Bridged Ethernet protocol, Frame Relay protocols, or other L2 communication protocols. For example, source network10and customer networks18may use the ATM communication protocol. The ATM protocol communicates information in fixed or variable-sized data units, referred to as frames. In this case, L2 interface11may comprise an ATM virtual circuit over which source network10communicates the frames to SE router12. L2 interfaces17may also comprise ATM virtual circuits over which RE routers16communicate frames to customer networks18.

MPLS network8includes SE router12, transit routers14A and14B, and RE routers16. In the example ofFIG. 1, SE router12uses RSVP-TE to establish point-to-point (P2P) LSPs to carry traffic between SE router12and each of RE routers16over routers14A and14B. A P2P LSP15A is established between SE router12and RE router16A coupled to customer network18A via L2 interface17A. A P2P LSP15B is also established between SE router12and RE router16B coupled to customer network18B via L2 interface17B. In addition, a P2P LSP15C is established between SE router12and RE router16C coupled to customer network18C via L2 interface17C and customer network18D via L2 interface17D.

P2MP LSP15is setup by merging the individual P2P LSPs15A-15C and relying on multicast capabilities of MPLS network8. P2P LSPs15A-15C that are merged to form P2MP LSP15may be referred to as branch LSPs. The branch LSPs are initiated by SE router12. Hence P2MP LSP15is as efficient as trees setup by a multicast routing protocol in an IP network. However, P2MP LSP15is achieved without burdening RSVP-TE with any of the mechanisms of a multicast routing protocol. As a result, routers12,14, and16within MPLS network8need not run a multicast routing protocol to support multicast traffic.

A CCC switch (not shown inFIG. 1) is configured within the ingress router of P2MP LSP15(i.e., SE router12) to transparently connect L2 interface11to P2MP LSP15. CCC switches are also configured within each egress router of P2MP LSP15(i.e., RE routers16) to transparently connect each leaf of P2MP LSP15to L2 interfaces17. The CCC switches may be viewed as logical cross-connections for delivering L2 traffic to LSPs. The transparent cross-connections allow L2 multicast traffic to be encapsulated as MPLS packets regardless of the type of payload the L2 multicast traffic is carrying. More specifically, SE router12may route frames through MPLS network8by pre-pending MPLS headers on sets of frames to form MPLS packets.

Upon receiving frames or other data units from source network10, for example, SE router12constructs an MPLS packet that includes one or more frames. SE router12routes the packet through MPLS network8to RE routers16via P2MP LSP15. RE routers16disassemble the MPLS packets into individual frames, and forward the frames to their respective customer networks18. Routers14A and14B within MPLS network8forward the MPLS packets without regard to the content of the frames. In this manner, routers14A and14B may relay frames of any type, including data and control frames, and need not disassemble or reassemble the information carried by the frames.

SE router12, routers14, and RE routers16maintain routing information that describes available routes through MPLS network8. For example, the routing information may include the route of P2MP LSP15. Upon receiving an incoming packet, the routers examine information within the packet and forward the packet in accordance with the routing information. In the case of a MPLS packet, the routers examine a label pushed onto the MPLS packet and swap the label based on the routing information. In order to maintain an accurate representation of network8, the routers exchange routing information, e.g., bandwidth availability of links, in accordance with a defined routing protocol, such as an Interior Gateway Protocol (IGP).

Subscriber devices within customer networks18may send requests to join specific multicast groups to source network10over MPLS network8. Source network10then forwards a single stream of the L2 multicast traffic associated with each of the requested multicast groups to SE router12. SE router12cross-connects L2 interface11from source network10to P2MP LSP15via the CCC switch. SE router12encapsulates the L2 multicast traffic in MPLS packets and forwards the packets to customer networks18via P2MP LSP15.

When subscriber devices with each of customer networks18request memberships in the same multicast group, SE router12may forward a copy of the associated multicast traffic encapsulated in a MPLS packet to both transit routers14A and14B. Transit router14A may simply forward the MPLS packet along branch LSP15A to RE router16A. RE router16A retrieves the L2 multicast traffic encapsulated in the MPLS packet and forwards the multicast stream to the requesting subscriber devices within customer network18A over L2 interface17A.

Transit router14B, on the other hand, is responsible for replicating the MPLS packet when customer networks coupled to both RE router16B and16C request the same multicast traffic. Transit router14B forwards one copy of the MPLS packet along branch LSP15B to RE router16B and forwards an identical copy of the MPLS packet along branch LSP15C to RE router16C. RE router16B retrieves the L2 multicast traffic encapsulated in the MPLS packet and forwards the multicast stream to the requesting subscriber devices within customer network18B over L2 interface17B. RE router16C retrieves the L2 multicast traffic encapsulated in the MPLS packet and forwards the multicast stream to the requesting subscriber devices within customer network18C over L2 interface17C and to the requesting subscriber devices within customer network18D over L2 interface17D.

FIG. 2is a block diagram illustrating an exemplary router20that enables L2 multicast traffic to be transmitted across an MPLS network consistent with the principles of the invention. For example, router20may be an ingress router (i.e., a source network device) of a P2MP LSP established across an MPLS network. Router20may also be one of multiple egress routers (i.e., destination network devices) of the P2MP LSP. Router20may operate substantially similar to SE router12or one of RE routers16within MPLS network8fromFIG. 1.

In the illustrated embodiment, router20includes a set of interface cards (IFCs)36A-36N (“IFCs36”) for communicating packets between router20and an MPLS network via inbound links37A-37N (“inbound links37”) and outbound links38A-38N (“outbound links38”). IFCs37are typically coupled to links37and38via one or more interface ports. Furthermore, router20includes a set of L2 IFCs32A-32N (“L2 IFCs32”) for communicating frames between router20and L2 networks via L2 interfaces33A-33N (“L2 interfaces33”). For example, at least one of L2 IFCs32may be an ATM interface card for communicating ATM frames (or cells) via virtual circuits33.

Router20further comprises a control unit22that includes an L2 interface module28. L2 interface module28maintains a record of L2 interfaces33on which router20receives L2 traffic via L2 IFCs32. In some cases, L2 interfaces33may carry multicast group join requests from router20to a L2 multicast source network. L2 interfaces33may then, in turn, carry L2 multicast traffic associated with the requested multicast groups. L2 interface module28may map each of L2 interfaces33to a specific multicast group

Control unit22also maintains routing information24. Routing information24describes the topology of a network and, in particular, routes through the network. Routing information24may include, for example, route data that describes various routes within the network, and corresponding next hop data indicating appropriate neighboring devices within the network for each of the routes. Router20updates routing information24to accurately reflect the topology of the network. In general, when router20receives a packet via one of inbound links37, control unit22determines a destination and associated next hop for the packet in accordance with routing information24and outputs the packet on one of outbound links38based on the destination.

In the example ofFIG. 2, control unit22provides an operating environment for a resource reservation protocol with traffic engineering26(“RSVP-TE26”) to execute within control unit22. In other embodiments, other protocols may be executed within control unit22, such as the label distribution protocol (LDP). RSVP-TE26receives resource reservation requests from other routing devices, and reserves the requested bandwidth on outbound links38for RSVP-TE traffic. In the event traffic needs to be rerouted around a network failure or a congested link, for example, a system administrator or software agent invokes RSVP-TE26to traffic engineer a new path through the network and establish the LSP. Although described for exemplary purposes in reference to RSVP-TE, the principles described herein may by applied to extend other protocols, such as different constraint-based routing protocols.

RSVP-TE26provides signaling mechanisms for establishing individual branch LSPs and merging the branch LSPs to form a P2MP LSP within an MPLS network. In this way, RSVP-TE26may establish a P2MP LSP from a SE router to multiple RE routers substantially similar to P2MP LSP15fromFIG. 1. The route data associated with the P2MP LSP is added to routing information24in order to accurately reflect the topology of the MPLS network.

CCC module30establishes and configures logical CCC switches to cross-connect one or more of L2 interfaces33to a P2MP LSP established by RSVP-TE26. CCC module30may configure the CCC switches based on configuration information provided by a user. For example, a user may specify the configuration information for router20via a user interface25included within control unit22. User interface25may include a display, a keyboard, a mouse or any other type of input device. CCC module30may also communicate with L2 interface module28to determine which one of L2 interfaces33is mapped to a specific multicast group. CCC module30cross-connects L2 interfaces33to network links37,38associated with P2MP LSPs to enable L2 multicast traffic to be transmitted across the MPLS network.

In the case where router20comprises an ingress router of the P2MP LSP, CCC module30configures a CCC switch that logically cross-connects the one of L2 interfaces33on which router20receives L2 multicast traffic from a source network to the transmitting P2MP LSP. The CCC switch is capable of mapping the L2 multicast traffic received on the one of L2 interfaces33to a specific one of outgoing links38associated with the P2MP LSP. CCC module30may receive configuration information from user interface25that includes a name for the ingress CCC switch (p2 mp_transmit_switch [name]), the name of the ingress L2 interface (input_interface [name]), and the name of the transmitting P2MP LSP (transmit_p2 mp_lsp [name]).

Upon receiving the L2 multicast traffic from the source network on the specific one of L2 interfaces33via L2 IFCs32, control unit22sends the L2 multicast traffic to CCC module30. CCC module30encapsulates the L2 multicast traffic in a MPLS packet regardless of the type of payload the L2 multicast traffic is carrying. CCC module30then forwards the MPLS packet onto the P2MP LSP according to the CCC switch. More specifically, control unit22forwards the MPLS packet on the one of outgoing links38associated with the P2MP LSP via IFCs36.

In the case where the P2MP LSP branches to multiple transit routers from the ingress router, as shown inFIG. 1, the CCC switch is capable of mapping the L2 multicast traffic to two or more of outgoing links38associated with the P2MP LSP. Therefore, router20encapsulates the L2 multicast traffic received on the appropriate one of L2 interfaces33via L2 IFCs32in a MPLS packet, replicates the MPLS packet, and forwards one copy of the MPLS packet on each of the associated outgoing links38via IFCs36.

In the case when router20comprises one of the multiple egress routers of the P2MP LSP, CCC module30configures a CCC switch that cross-connects a leaf of the receiving P2MP LSP to one of L2 interfaces33coupled to a customer network that includes subscriber devices requesting the L2 multicast traffic. The CCC switch is capable of mapping MPLS packets received on the one of incoming links37associated with the P2MP LSP to a specific one of L2 interfaces33. In this case, CCC module30may receive configuration information from user interface25that includes a name for the egress CCC switch (p2 mp_receive_switch [name]), the name of the egress L2 interface (output_interface [name]), and the name of the receiving P2MP LSP (transmit_p2 mp_lsp [name]).

Upon receiving the MPLS packet from the P2MP LSP on the one of incoming links37via IFCs36, control unit22sends the MPLS packet to CCC module30. CCC module30retrieves the L2 multicast traffic from the MPLS packet. CCC module30then forwards the L2 multicast traffic onto one of L2 interfaces33according to the CCC switch. More specifically, control unit22forwards the L2 multicast traffic to a customer network on a specific one of L2 interfaces33via L2 IFCs32.

In the case where more than one customer network is coupled to the egress routers of the P2MP LSP, as shown inFIG. 1, the CCC switch may map the MPLS packet from the P2MP LSP to two or more of L2 interfaces33. Router20retrieves the L2 multicast traffic from the MPLS packet received on one of incoming links37via IFCs36, replicates the L2 multicast traffic, and forwards one copy of the L2 multicast traffic on each of the L2 interfaces33via L2 IFCs32.

The architecture of router20illustrated inFIG. 2is shown for exemplary purposes only. The invention is not limited to this architecture. In other embodiments, router20may be configured in a variety of ways. In one embodiment, for example, some of the functionally of control unit22may be distributed within IFCs36or L2 IFCs32. In another embodiment, control unit22may include a routing engine that performs routing functions and maintains a routing information base (RIB), e.g., routing information24, and a forwarding engine that performs packet forwarding based on a forwarding information base (FIB) generated in accordance with the RIB.

Control unit22may be implemented solely in software, or hardware, or may be implemented as a combination of software, hardware, or firmware. For example, control unit22may include one or more processors which execute software instructions. In that case, the various software modules of control unit22, such as RSVP-TE26, may comprise executable instructions stored on a computer-readable medium, such as computer memory or hard disk.

FIG. 3is a flow chart illustrating an exemplary process of configuring network devices within an MPLS network to transmit L2 multicast traffic across the MPLS network. The network devices may comprise either a SE router (i.e., a source network device) of a P2MP LSP or one of multiple RE routers (i.e., receiver network devices) of the P2MP LSP. The network devices may be substantially similar to router20illustrated inFIG. 2.

Each of the network devices includes a signaling protocol that establishes the P2MP LSP between the SE router and the multiple RE routers (44). For example, the signaling protocol may comprise RSVP-TE. RSVP-TE may be used to set up several branch LSPs between the SE router and each of the RE routers separately. RSVP-TE then merges the branch LSPs into a single P2MP LSP. The route data of the P2MP LSP is then added to routing information included within the network devices in order to accurately reflect the topology of the MPLS network.

The SE router of the P2MP LSP receives ingress CCC switch configuration information from a user via a user interface or via a software agent (46). A CCC module within the SE router uses the configuration information to configure a CCC switch that cross-connects an ingress L2 interface to the P2MP LSP (48). The configuration information may include a name for the ingress CCC switch and names of the ingress L2 interface and the transmitting P2MP LSP to be cross-connected.

Each of the multiple RE routers of the P2MP LSP receives egress CCC switch configuration information from a user via a user interface or from an automated software agent (50). A CCC module within each of the RE routers uses the configuration information to configure a CCC switch that cross-connects the P2MP LSP to at least one egress L2 interface (52). The configuration information may include a name for the egress CCC switch and names of the receiving P2MP LSP and the egress L2 interfaces to be cross-connected.

FIG. 4is a flowchart illustrating an exemplary process of transmitting L2 multicast traffic across an MPLS network. For exemplary purposes, the process is described relative to MPLS network8illustrated inFIG. 1. MPLS network8includes P2MP LSP15from SE router12to multiple RE routers16. L2 multicast source network10couples to SE router12via L2 interface11. Customer networks18couple to RE routers16via L2 interfaces17. Each of customer networks18may include a plurality of subscriber devices. CCC switches are configured within SE router12and each of RE routers16to cross-connect the L2 interfaces to P2MP LSP15.

SE router12receives L2 multicast traffic from source network10on L2 interface11(60). A CCC switch within SE router12encapsulates the L2 multicast traffic into a MPLS packet (62) by pre-pending a MPLS header to the set of frames. SE router12then forwards the MPLS packet according to the CCC switch. Specifically, SE router12forwards the MPLS packet on P2MP LSP15which is cross-connected to L2 interface11via the CCC switch (64). SE router12pushes a forwarding label onto the MPLS packet that identifies the next hop along P2MP LSP15.

The MPLS packet is transmitted to one of transit routers14A and14B based on the label affixed to the MPLS packet. Transit router14B, for example, receives the MPLS packet from SE router12(66). Transit router14B may forward the MPLS packet without regard to the L2 multicast content encapsulated within the packet. In this manner, router14B need not disassemble the MPLS packet to retrieve the L2 multicast data.

In the embodiment illustrated inFIG. 1, branch LSPs15B and15C of P2MP LSP15separate at transit router14B. Therefore, transit router14B determines whether both RE router16B and RE router16C requested the multicast traffic encapsulated in the MPLS packet. If both RE routers16B and16C requested the multicast traffic, transit router14duplicates the MPLS packet for each branch LSP (68).

Transit router14B then forwards a copy of the MPLS packet on each of branch LSPs15B and15C of P2MP LSP15(70). Transit router14B pushes a forwarding label onto the first copy of the MPLS packet that identifies the next hop along branch LSP15B. Transit router14B also pushes a forwarding label onto the second copy of the MPLS packet that identifies the next hop along branch LSP15C. In the embodiments described herein, RSVP-TE may establish P2MP LSP15with penultimate hop popping turned off such that each RE router16advertises a non-null label.

The MPLS packets are transmitted to RE routers16B and16C based on the labels affixed to the MPLS packets. RE router16C, for example, receives one of the MPLS packets from transit router14B (72). RE router16C disassembles the MPLS packet and retrieves the L2 multicast traffic encapsulated in the MPLS packet (74). In the embodiment illustrated inFIG. 1, both customer networks18C and18D are coupled to RE router16C. Therefore, RE router16C determines whether both customer network18C and customer network18D include subscriber device that requested the multicast traffic. If both customer networks18C and18D requested the multicast traffic, RE router16C duplicates the L2 multicast traffic for each customer network.

RE router16C then forwards the identical copies of the L2 multicast traffic according to the CCC switch configured within RE router16C by forwarding the L2 multicast traffic on L2 interfaces17C and17D which are cross-connected to P2MP LSP15(76). Customer networks18C and18D are then responsible for transmitting the L2 multicast traffic from the L2 interfaces to each requesting subscriber device within the customer networks.