# Patent

## Title
System and method for providing support for multipoint L2VPN services in devices without local bridging

## Abstract

A network device has a network interface to allow the device to send and receive traffic across a network. The device also has a cable connection to allow the device to exchange data with at least one cable modem and a processor to associate a cable interface and cable service identifier with a cable modem; receive a packet from the cable modem; and insert a layer 2 network identifier, the identifier comprising two service provider VLAN (SP-VLAN) tags, into the packet. The processor in the network device identifies a virtual trunk interface based on the outer SP-VLAN tag and identifies the virtual private network based on the inner SP-VLAN tag.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 11/336,565, filed Jan. 19, 2006, now abandoned, the contents of which is herein incorporated by reference in its entirety


BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates generally to virtual private networks and, more particularly, to a system and method for providing support for multipoint layer 2 virtual private network services in devices without local bridging capabilities.
2. Description of the Related Art
A Virtual Private Network (VPN) allows service providers to connect multiple customer sites securely over a common shared network. Multipoint layer 2 VPN (L2VPN) service, better known as Virtual Private LAN Service (VPLS), is an important commercial service offered by service providers such as Cable Multiple Service Operators (MSOs) and telephone companies (Telcos) to their business customers. L2VPN service allows business customers to connect networks at geographically dispersed sites or campuses at layer 2 such that these geographically dispersed sites appear to be connected by a single local area network (LAN) segment. The term “layer 2” refers to the second layer in the protocol stack defined by the well-known Open Systems Interconnection (OSI) Reference model, also known as the logical link, data link, or MAC, layer.
FIG. 1 shows a basic diagram for VPLS 100. The customer sites 110 are connected to a service provider network 120, which appears as an L2 switch capable of learning and aging. The service provider network 120 can be divided into network segments, the access 130 (i.e., the provider edge) and core 140 networks. Customer edge (CE) devices 112 are those devices with the functionality needed on the customer premises to access the VPN services. Provider edge (PE) devices 132 are those devices at the edge of the service provider network 120 (i.e., at the access network 130) with the functionality needed to interface with the customer. The CE and PE devices include routers and switches. In a VPN environment, the CE devices 112 connect to the PE devices 132 over attachment circuits 114. IEEE 802.1Q defines a standard virtual LAN (VLAN) tagging scheme (Q-tagging) where a “tag” field 210 is added to Ethernet frames to indicate in which VLAN they are supposed to go. This scheme allows an Ethernet port to participate in multiple VLANs.
FIG. 2 shows an 802.1Q tagged packet 200. The depicted packet 200 includes: a media access control (MAC) destination address (DA) field 202; a MAC source address (SA) field 204; ether type field (ETYPE) 206; the customer edge VLAN (CE-VLAN) tag field 210; and other fields.
One technology that is increasingly used to interconnect devices in a layer 2 service provider network is 802.1ad. IEEE 802.1ad (Provider Bridges), which is nearing completion in the IEEE, builds on IEEE 802.1Q to enable stacked VLANs, commonly referred to as “Q-in-Q” tag stacking. IEEE 802.1ad codifies the use of a service provider VLAN tag visible and managed by the service provider in a manner that does not interfere with the client VLAN structure. FIG. 3 shows an 802.1ad (Q-in-Q) tagged packet 300. The packet format shown in FIG. 3 is similar to the packet format shown in FIG. 2. However, the packet format in FIG. 3 includes a service provider VLAN (SP-VLAN) tag 310 in addition to the customer CE-VLAN tag 320. This Q-in-Q tag stacking mechanism, where the outer tag 310 is managed by the service provider and the inner tag 320 belongs to the business customer, allows not only customer separation but differentiated treatment of customer traffic through the service provider cloud. With Q-in-Q tag stacking, the service provider ingress device (the PE) appends the second VLAN tag 310 in every frame header, which is later removed by the egress device. Each network segment, the access and the core, of the service provider network can add/remove its own tag independently. Traditionally, devices within each network segment only deals with a single tag—the tag that happens to be the outermost tag for that segment. Thus, when a packet crosses the boundary from one network segment to another, either the outermost tag gets disposed or a new tag gets added.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and other features and advantages of embodiments of the invention will become readily apparent by reference to the following detailed description when considered in conjunction with the accompanying drawings.
FIG. 1 is a diagram of a basic VPLS.
FIG. 2 shows an 802.1Q tagged packet.
FIG. 3 shows an 802.1ad (Q-in-Q) tagged packet.
FIG. 4 shows a packet having two service provider VLAN tags and an optional customer edge VLAN tag.
FIG. 5 is a schematic diagram depicting a DOCSIS network for providing L2VPN service.
FIG. 6 is a flowchart of a method for providing multipoint L2VPN service in an 802.1ad access network using a CMTS.
FIG. 7 is a packet flow diagram that shows how a packet traverses the service provider network using the method of FIG. 6.
FIG. 8 is a flowchart of a method of the mapping in the CMTS from the CM/Service flow attachment circuit belonging to a CM to the SP-VLAN outer tag on the upstream (step 1 of FIG. 6) and the reverse mapping on the downstream (step 5 of FIG. 6).



DETAILED DESCRIPTION OF THE EMBODIMENTS
The invention will be described below with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
Multipoint L2VPN service or VPLS is a bridged LAN service. That is, in order to support the VPLS function, the provider edge (PE) devices need to implement a bridging transport mechanism for traffic between remote sites belonging to a customer. Thus, to provide multipoint service in an 802.1ad access network, the PE devices are expected to support local switching (e.g., bridging) functionality.
To provide support for multipoint L2VPN services in devices without local switching capability, embodiments of the invention includes a PE device that uses an 802.1ad frame format and off loads the bridging function to an upstream switch. But rather than inserting a single service provider tag as in an ordinary 802.1ad network, the PE device adds two service provider tags for use inside the service provider network. FIG. 4 shows a packet 400 having two SP-VLAN tags 410, 420 and an optional CE-VLAN tag 430. The upstream switch then uses the two SP-VLAN tags 410, 420 to bridge the double SP-VLAN tagged packet 400 across the network.
Data Over Cable Service Interface Specification (DOCSIS) is the current guiding specification for data over cable modem networks with which most cable equipment and network providers comply. In DOCSIS networks, a Cable Modem Termination System (CMTS), located at the cable television system headend or distribution hub, functions as the PE device and provides functionality to cable modems (CMs) to enable connectivity to a wide-area network. Customer traffic is received from a CMTS (the ingress CMTS) or sent to a CMTS (the egress CMTS) in each service provider access network.
FIG. 5 is a schematic diagram depicting a DOCSIS network for providing L2VPN service. The example architecture shown is used for ease of discussion and is not intended to limit the scope of the invention. The CMTS functions as the PE device in an L2VPN by connecting the CMs, the customer edge (CE) devices, via attachment circuits to the service provider 802.1ad access network. The DOCSIS protocol uses the concept of service flows for traffic transmitted between the CM and CMTS devices. A service flow is a unidirectional flow of packets that provides a particular quality of service (QoS). Traffic is classified into a service flow, and each service flow has its own set of QoS parameters. The attachment circuits can either be a pair of upstream and downstream service flows or a set of service flows associated with a CM. In the latter case, a specific service flow in the attachment circuit is picked up for transmission based on standard DOCSIS classification.
As shown in FIG. 5, the CMTS 532 in the 802.1ad access network 530 is connected to six CMs 512 at a single cable interface. CM1 is a non-L2VPN device. CM2 and CM3, which belong to the same customer VPN (VPN1), are given separate pseudowires, PW1 and PW2, respectively. A pseudowire is an emulated point-to-point connection over a packet switched network that allows the interconnection of two nodes with any layer 2 technology. CM4, CM5, and CM6, which belong to another customer VPN (VPN2), are also given separate pseudowires, PW3, PW4, and PW5, respectively.
The CMTS 532 may not support local switching; instead, the CMTS may only support point-to-point tunneling of packets between a CM/service flow and a Q-in-Q tag (two VLAN tags). Such a CMTS receives layer 2 protocol data units (PDUs) from a CM or the upstream service flow, inserts the associated Q-in-Q tag, and transmits the packet on its network side interface (NSI). The NSI is the interface through which the device routes the traffic to the network or receives the network traffic. When the egress CMTS receives a Q-in-Q packet from the NSI, it removes the two VLAN tags and transmit the packets on the cable downstream using the associated CM/service flow. Data transfers from the CMTS to the CM are referred to as downstream, while transfers from the CM to the CMTS are referred to as upstream.
For point-to-point L2VPN service, the CMTS 532 in the 802.1ad access network 530 uses two SP-VLAN tags for each service flow. The first SP-VLAN tag (inner tag) identifies the CM/service flow on the destination node and the second SP-VLAN tag (outer tag) identifies the destination node. The upstream 802.1ad aggregation node (e.g., switch) 542 receives packets sent by the CMTS and switches the received packets based on the SP-VLAN outer tag alone. Since the outer tag represents a single fixed destination CMTS, this results only in a point-to-point connection between two CMTSes and, thus, precludes multipoint service.
To provide multipoint L2VPN service in a CMTS not having local switching capability, the CMTS 532 inserts two SP-VLAN tags as in the point-to-point service. However, for multipoint service, these two SP-VLAN tags are interpreted differently by the upstream 802.1ad aggregation switch 542: the SP-VLAN inner tag represents the customer VPN and the SP-VLAN outer tag identifies a single attachment circuit on the CMTS in that customer VPN. Thus, CM2 and CM3 may be assigned the same SP-VLAN inner tag representing VPN1 and different SP-VLAN outer tags identifying each pseudowire. For example, CM2 may be assigned inner tag=1 (representing VPN1) and outer tag=1 (representing PW1); while CM3 may be assigned inner tag=1 (representing VPN1) and outer tag=2 (representing PW2). Similarly, CM4, CM5, and CM6 may be assigned the same SP-VLAN inner tag representing VPN2. For example, CM4, CM5, and CM6 may be assigned inner tag=2. Since the inner tags for the CMs in VPN1 and VPN2 are different, the outer tags for the CMs need not be unique. For example, CM4 may be assigned outer tag=1 (representing PW1); CM5 may be assigned outer tag=2 (representing PW2); and CM6 may be assigned outer tag=3 (representing PW3).
After the packets entering the 802.1ad access network 530 are tagged by the CMTS 532, the double SP-VLAN tagged packets are forwarded to the aggregation node 542 in the service provider core network 540. For each packet, the aggregation node 542 uses the SP-VLAN outer tag to assign the virtual trunk interface and the SP-VLAN inner tag to assign it to a particular bridge group. Each VPN is a separate bridging group. For example, VPN 1 may be assigned to Bridge Group 1 and VPN2 to Bridge Group 2. The aggregation node 542 then bridges the packets accordingly.
An embodiment of a method for providing multipoint L2VPN service using the CMTS 532 in an 802.1ad access network 530 is shown in flowchart form in FIG. 6. FIG. 7 is a packet flow diagram that shows how a packet traverses the service provider network using the method of FIG. 6. Refer to FIGS. 6 and 7 in the discussion below.
In step 610, the ingress CMTS 532 maps an attachment circuit to a double SP-VLAN tag, where the SP-VLAN inner tag represents the broadcast domain (i.e., a customer VPN) and the SP-VLAN outer tag uniquely identifies a single attachment circuit on the CMTS in that customer VPN. Customers may have their own internal number schemes for their own local 802.1 Q VLANs. If a packet 710 arrives with a CE-VLAN tag 712, the ingress CMTS 532 does not strip the received CE-VLAN tag 712 from the header, but instead adds two SP-VLAN tags 722, 724.
The ingress interface upstream aggregation node 542 is configured with a number of virtual trunk interfaces, which is equal to the maximum number of attachment circuits that a CMTS can associate per interface for any customer VPN. In step 620, when the 802.1ad packet 720 is received on a physical interface of the upstream aggregation switch 542, the upstream aggregation switch 542 interprets the SP-VLAN outer tag 722 as a virtual trunk interface identifier (e.g., as a sub-interface) and removes the SP-VLAN outer tag 722. The upstream aggregation switch 542 then builds an L2 Forwarding Database based on the MAC addresses and inner SP-VLAN tag it learns from each virtual trunk interface and forwards/floods the packets among those virtual trunk interfaces (e.g., sub-interfaces). The upstream aggregation switch 542 uses the remaining SP-VLAN inner tag 724 to select the bridge filtering database, which is used to store membership information for the VPNs, to determine where the data is to be sent. In step 625, if the destination MAC is determined to belong to another virtual trunk interface, then the current node is also the egress aggregation node 544.
In step 630, the single SP-VLAN tagged packet 730 is bridged across the network as an 802.1ad packet and received by the egress aggregation node 544.
In step 640, when the packet 730 is received by the egress aggregation node 544, the egress aggregation node 544 adds a new SP-VLAN outer tag 726 based on the egress virtual trunk interface identifier and forwards the packet 740 to the egress CMTS 534.
In step 650, the double tagged packet 740 arrives at the egress CMTS 534. The egress CMTS 534 maps the packet 740 back to an attachment circuit, removes both SP-VLAN tags, and forwards the packet 750.
The mapping in the CMTS from the CM/Service flow attachment circuit belonging to a CM to the SP-VLAN outer tag on the upstream (step 610 of FIG. 6) and the reverse mapping on the downstream (step 650 of FIG. 6) can be done in several ways. An embodiment of a method of the mapping in the CMTS is shown in flowchart form in FIG. 8.
In step 810, a CM downloads a configuration file from the provisioning system which it uses to register with the CMTS. The configuration file may contain information that the CMTS can use to associate the CM/service flow with a particular customer VPN and SP-VLAN inner tag in step 812. When the CMTS discovers a new customer VPN in any configuration file, it initiates a free pool of SP-VLAN outer tags for that particular VPN in step 814. The size of the free pool of SP-VLAN outer tags depends on the maximum number of attachment circuits for any VPN at the CMTS. For example, if the maximum number of attachment circuits can be 12, then the CMTS initializes the free pool with SP-VLAN tags from 1 to 12. When the CM registers in step 820, the CMTS then chooses SP-VLAN outer tags for that particular customer VPN from the free pool of tags in step 822.
DOCSIS specifies that a service flow must be activated (step 830) before the CM can send traffic on that service flow. That is, a service flow is said to be “active” when it is permitted to forward data packets. A service flow must first be admitted before it is active. A service flow is said to be “admitted” when the CMTS has reserved resources (e.g., bandwidth) for it on the DOCSIS network. For all active service flows on the CM, the CMTS assigns Service Identifiers (SID) in step 832. The SID is available to the CMTS whenever it receives an upstream packet from the CM. In step 834, the CMTS can maintain a mapping table in the upstream data path to find the SP-VLAN outer and inner tags and the egress interface to the upstream aggregation node associated with the SID. When the CM sends traffic upstream (step 840), the CMTS then uses this information (step 842) to insert the two SP-VLAN tags in the packet and transmit it out on the egress interface (step 844) up to its upstream aggregation node.
On the downstream path, when a CMTS receives a double SP-VLAN tagged packet from its downstream aggregation node, the CMTS can use another lookup mapping table (step 852) to find the downstream SID and egress cable interface that it uses to transmit the packet out after disposing the two SP-VLAN tags (step 854).
When the CM goes offline (i.e., deregisters from the CMTS) in step 860, the SP-VLAN outer tags that may be associated with the CM are returned to the per customer VPN free pool maintained in the CMTS in step 862.
In the system and method for providing multipoint L2VPN services described above, the number of SP-VLAN outer tags is dictated by the maximum number of service flows belonging to a given customer. For example, if 1000 customer VPNs are supported by a CMTS and each has between 3 to 12 service flows, then the number of SP-VLAN inner tags required is 1000 and the number of SP-VLAN outer tags required is 12. Using this technique, over 4000 L2VPN service instances can be supported between one PE and the upstream 802.1ad aggregation device. Therefore, each of these L2VPNs can have over 4000 attachment circuits at the CMTS.
Having described exemplary embodiments of the invention, it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. Therefore, it is to be understood that changes may be made to embodiments of the invention disclosed that are nevertheless still within the scope and the spirit of the invention as defined by the appended claims.

## Claims

1. A method of processing a packet sent to a service provider network, comprising:
receiving the packet from a cable modem;
identifying a cable interface and cable service identifier associated with the cable modem;
inserting a layer 2 network identifier into the packet, the layer 2 (L2) network identifier comprising inner and outer Service Provider Virtual Local Area Network (SP-VLAN) tags, wherein the inner SP-VLAN tag represents a service flow on a destination node in a point-to point L2 Virtual Private Network (VPN) service or a customer VPN in a multipoint L2VPN service and wherein the outer SP-VLAN tag represents the destination node in the point-to-point L2VPN service or a single attachment circuit on a Cable Modem Termination System (CMTS); and
transmitting the double SP-VLAN tagged packet to an upstream network device, the upstream network device forwarding and routing the SP-VLAN tagged packet.

2. The method of claim 1, further comprising:
mapping the inner SP-VLAN tag to a virtual private network; and
mapping the outer SP-VLAN tag to the cable interface and the cable service identifier associated with the cable modem.

3. The method of claim 1, wherein forwarding and routing the SP-VLAN tagged packet comprises:
identifying a virtual trunk interface based on the outer SP-VLAN tag, wherein the virtual trunk interface is associated with the cable service identifier;
removing the outer SP-VLAN tag to form a single SP-VLAN tagged packet; and
forwarding the single SP-VLAN tagged packet to a downstream network device based on the inner SP-VLAN tag.

4. The method of claim 3, wherein the upstream and downstream network devices comprise a same device.

5. The method of claim 1, wherein the upstream network device is an aggregation device.

6. The method of claim 1, wherein the upstream network device interprets the outer SP-VLAN tags as a virtual trunk in the virtual private network, the upstream network device providing bridging among virtual trunks.

7. The method of claim 1, wherein the upstream network device interprets the inner SP-VLAN tag as a broadcast group of virtual private networks, the upstream network device performing bridging within the broadcast group.

8. The method of claim 1, wherein the packet received includes a customer VLAN tag.

9. The method of claim 1, wherein the packet received does not include a customer VLAN tag.

10. A method of processing a packet received from a service provider network, comprising:
receiving the packet having an inner SP-VLAN tag;
drawing an outer SP-VLAN tag from a plurality of outer SP-VLAN tags wherein the outer SP-VLAN tags of the plurality each correspond to an attachment circuit for a VPN corresponding to a same CMTS;
inserting the outer SP-VLAN tag into the received packet to form a double SP-VLAN tagged packet; and
forwarding the double SP-VLAN tagged packet to an egress network device, the egress network device routing the packet to an appropriate cable modem in the VPN.

11. The method of claim 10, wherein routing the packet comprises:
associating a cable interface and cable service identifier with a cable modem;
identifying a virtual trunk interface based on the outer SP-VLAN tag, wherein the virtual trunk interface is associated with the cable service identifier;
identifying the VPN based on the inner SP-VLAN tag;
removing the SP-VLAN tags; and
transmitting the packet to the cable modem in the VPN.

12. The method of claim 10, wherein the egress network device is a provider edge device not having a bridging functionality.

13. The method of claim 10, wherein the egress network device is a cable modem termination system.

14. The method of claim 10, wherein the packet received includes a customer VLAN tag.

15. The method of claim 10, wherein the packet received does not include a customer VLAN tag.

16. A network device, comprising:
a cable connection to allow the network device to exchange data with at least one cable modem;
a processor to:
receive a packet from a cable modem;
associate a cable interface and cable service identifier with the cable modem; and
insert a layer 2 network identifier into the packet, the identifier comprising inner and outer SP-VLAN tags, wherein the inner SP-VLAN tag represents a service flow on a destination node in a point-to-point L2VPN service or a customer VPN in a multi-point L2VPN service and wherein the outer SP-VLAN tag represents the destination node in a point-to-point L2VPN service or a single attachment circuit on a Cable Modem Termination System (CMTS); and

a network interface to allow the device to send and receive traffic across a network.

17. The network device of claim 16, wherein the network device has no bridging functionality.

18. The network device of claim 16, the processor further to:
receive a double SP-VLAN tagged packet through the network interface;
forward the packet to an appropriate downstream device in a VPN.

19. The network device of claim 18, the processor further to:
identify a virtual trunk interface based on the outer SP-VLAN tag, wherein the virtual trunk interface is associated with the cable service identifier;
identify the virtual private network based on the inner SP-VLAN tag;
remove the SP-VLAN tags; and
transmit the packet to the cable modem in the private virtual network.

20. The network device of claim 16, further comprising a memory to store network identifiers and cable service identifiers associated with the cable modem.

21. A network device, comprising:
means for allowing the network device to exchange data with at least one cable modem;
means for receiving a packet from a cable modem;
means for associating a cable interface and cable service identifier with the cable modem;
means for inserting a layer 2 network identifier into the packet, the identifier comprising inner and outer SP-VLAN tags, wherein the inner SP-VLAN tag represents a service flow on a destination node in a point-to point L2VPN service or a customer VPN in a multipoint L2VPN service and wherein the outer SP-VLAN tag represents the destination node in a point-to-point L2VPN service or a single attachment circuit on a Cable Modem Termination System (CMTS); and
means for allowing the network device to send and receive traffic across a network.

22. The network device of claim 21, further comprising:
means for receiving the double SP-VLAN tagged packet;
means for identifying a virtual trunk interface based on the outer SP-VLAN tag, wherein the virtual trunk interface is associated with the cable service identifier;
means for identifying a virtual private network based on the inner SP-VLAN tag;
means for removing the SP-VLAN tags; and
means for transmitting the packet to the cable modem in the private virtual network.

23. The network device of claim 21, further comprising means for storing network identifiers and cable service identifiers associated with the cable modem.

24. An article of computer-readable media containing instructions embedded in the computer readable media that, when executed, cause a computer to:
receive a packet from a cable modem;
associate a cable interface and cable service identifier with the cable modem;
insert a layer 2 network identifier into the packet, the layer 2 network identifier comprising inner and outer SP-VLAN tags, wherein the inner SP-VLAN tag represents a service flow on a destination node in a point-to point L2VPN service or a customer VPN in a multipoint L2VPN service and wherein the outer SP-VLAN tag represents the destination node in the point-to-point L2VPN service or a single attachment circuit on a Cable Modem Termination System (CMTS); and
transmit the SP-VLAN tagged packet across a network through a network interface.

25. The article of claim 24, the instructions, when executed, further causing the computer to:
receive a packet having an SP-VLAN tag in the packet;
insert an outer SP-VLAN tag into the received SP-VLAN tagged packet to form a double SP-VLAN tagged packet; and
forward the double SP-VLAN tagged packet to a network device; and
route the packet to an appropriate cable modem in a virtual private network.

26. The article of claim 25, wherein the instructions for routing the packet to the cable modem comprise instructions, when executed, further cause the computer to:
associate a cable interface and cable service identifier with a cable modem;
identify a virtual trunk interface based on the outer SP-VLAN tag, wherein the virtual trunk interface is associated with the cable service identifier;
identify a virtual private network based on the inner SP-VLAN tag;
remove the SP-VLAN tags; and
transmit the packet to the cable modem in the private virtual network.

27. A cable network, comprising:
a transmitting device to assign a network identifier to traffic and to transmit the traffic, the network identifier comprising outer and inner SP-VLAN tags inserted into a packet, wherein the outer SP-VLAN tag is selected from a plurality of outer SP-VLAN tags each corresponding to an attachment circuit for a VPN, the VPNs each associated with a single CMTS; and
a receiving device to receive the packet and to:
associate the network identifier with a cable modem in a virtual private network;
remove the SP-VLAN tags; and
route the packet to the cable modem in the virtual private network.

28. The cable network of claim 27, the transmitting device to assign a network identifier further comprising the transmitting device to:
map virtual private networks to inner SP-VLAN tags; and
map virtual trunk interfaces associated with cable modems to outer SP-VLAN tags.