Abstract:
A VPLS model is implemented in a network-facing provider edge (n-PE) device configured to receive a packet from an access network; the packet having a first Virtual Local Area Network (VLAN) tag of a first predetermined bit length. The n-PE device mapping the service instance identifier of the first VLAN tag into a second VLAN tag of a second predetermined bit length greater than the first predetermined bit length, the second VLAN tag identifying a Virtual Private LAN Service (VPLS) instance. The n-PE device then sends the packet with the second VLAN tag across a service provider (SP) core network via a pseudowire (PW) that functions as a logical link to another PE device. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. 37 CFR 1.72(b).

Description:
RELATED APPLICATIONS 
     The present application is related to application Ser. Nos. 11/117,016 filed Apr. 28, 2005, entitled, “Metro Ethernet Network With Scaled Broadcast And Service Instance Domains”; 11/117,017 filed Apr. 28, 2005, entitled, “System And Method For DSL Subscriber Identification Over Ethernet Network”; and 11/117,249 filed Apr. 28, 2005, entitled, “Scalable System And Method For DSL Subscriber Traffic Over An Ethernet Network”, which applications are assigned to the assignee of the present application. 
     FIELD OF THE INVENTION 
     The present invention relates generally to digital computer network technology; more particularly, to methods and apparatus for providing Local Area Network (LAN) emulation services over Internet protocol (IP) networks. 
     BACKGROUND OF THE INVENTION 
     A LAN is a high-speed network (typically 10 to 1000 Mbps) that supports many computers connected over a limited distance (e.g., under a few hundred meters). Typically, a LAN spans a single building. U.S. Pat. No. 6,757,286 provides a general description of a LAN segment. A Virtual Local Area Network (VLAN) is mechanism by which a group of devices on one or more LANs that are configured using management software so that they can communicate as if they were attached to the same LAN, when in fact they are located on a number of different LAN segments. Because VLANs are based on logical instead of physical connections, they are extremely flexible. 
     The IEEE 802.1Q specification defines a standard for Virtual LAN and its associated Ethernet frame format. Broadcast and multicast frames are typically constrained by VLAN boundaries such that only devices whose ports are members of the same VLAN see those frames. Since 802.1Q VLANs commonly span many switches across different LAN segments, sharing of Virtual LANs by a common set of infrastructure switches is achieved by inserting a VLAN tag into the Ethernet frame. For example, according to the existing standard, a VLAN tag with 12-bit VLAN identifier (VLAN ID) is inserted into an Ethernet frame. This VLAN ID may be used to specify the broadcast domain and to identify the customer associated with a particular VLAN. The customer identifier is frequently referred to as the service instance domain since it identifies the service provided for a particular customer. In a typical service provider (SP) metropolitan area network (MAN) the broadcast domain constrains the scope of traffic among network devices such that data packets are not multicast to all devices connected to the network. A system and method for efficiently distributing multicast messages within computer networks configured to have one or more VLAN domains is disclosed in U.S. Pat. No. 6,839,348. 
     A Virtual Private Network (VPN) enables IP traffic (the Internet is basically a conglomeration of WANs) to travel securely over a public Transmission Control Protocol (TCP)/IP network by encrypting all traffic from one network to another. A VPN uses “tunneling” to encrypt all information at the IP level. In a Layer 3 IP VPN, customer sites are connected via IP routers (e.g., provider edge (PE) devices and nodes) that can communicate privately over a shared backbone as if they are using their own private network. Multi-protocol label switching (MPLS) Border Gateway Protocol (BGP) networks are one type of L3VPN solution. An example of an IP-based Virtual Private Network is disclosed in U.S. Pat. No. 6,693,878. U.S. Pat. No. 6,665,273 describes a MPLS system within a network device for traffic engineering. 
     One problem associated with existing IEEE 802.1 specifications is that the 12-bit VLAN ID can only support a combined total of up to 4,094 broadcast domains and service instance domains. The 4K VLAN ID space thus limits the number of VLANs or VPNs that can be handled, and is inadequate for operations over a SP MAN/WAN network. A proposed solution to the scalability problem imposed by the 4K VLAN ID space limitation is described in U.S. Patent Application Publication 2004/0165600. 
     Virtual Private LAN Service (VPLS) has recently emerged to meet the need to connect geographically dispersed locations with a protocol-transparent, any-to-any connectivity service. VPLS is an architecture that delivers Layer 2 service that in all respects emulates an Ethernet LAN across a WAN and inherits the scaling characteristics of a LAN. All sites in a VPLS instance appear to be on the same LAN, regardless of location. In other words, with VPLS, customers can communicate as if they were connected via a private Ethernet LAN segment. Basically, VPLS offers a MPLS-based approach with multipoint connectivity for L2 services, i.e., multipoint Ethernet LAN services, often referred to as Transparent LAN Service (TLS). VPLS thus supports the connection of multiple sites in a single broadcast domain over a managed IP/MPLS network. Since a VPLS is normally provided over a service provider MAN/WAN network, it therefore needs to scale to accommodate a very large number of VPNs (e.g., a large number of customers, numerous services for each customer, and a large number of customer sites). 
     Conceptually, VPLS can be thought of as an emulated Ethernet LAN network with each Virtual Switch Instance (VSI) being analogous to a virtual Ethernet switch. Current VPLS models are described in the Internet Engineering Task Force (IETF) working group (WG) documents draft-ietf-l2vpn-vpls-ldp-03.txt and draft-ietf-l2vpn-vpls-bpg-02.txt, which are herein incorporated by reference. These documents address the aforementioned scalability problem in terms of the number of VPNs that can be supported. These VPLS models, however, create additional problems in terms of Operations and Management (OAM) maintainability and scalability because of the very large number of pseudowire (PW) meshes required. 
     In the VPLS model described in the IETF draft-ietf-l2vpn-vpls-ldp-03.txt, a VPLS instance has a filtering database for supporting its own MAC address domain, and uses a set of PWs per service instance for defining the broadcast domain of the L2 VPN. It also uses split horizon mechanism on each set of PWs to prevent loops in the MPLS/IP network. Since the current model uses a set of PWs per L2 VPN, the number of PWs that need to be supported per PE can be very large, i.e., on the order of 100K or 1M (e.g., 10K L2 VPNs with 10-100 sites per VPN). Considering existing requirements for partial mesh detection and timing constraints, it is extremely difficult to run a fast failure detection mechanism on a per PW basis for such a large number of PWs and exchange state information among PEs for partial mesh detection. 
     Thus, what is needed is a new VPLS architectural model that reduces the number of PWs in the network while maintaining scalability and support for a large number of VPNs as well as OAM. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will be understood more fully from the detailed description that follows and from the accompanying drawings, which however, should not be taken to limit the invention to the specific embodiments shown, but are for explanation and understanding only. 
         FIG. 1  is conceptual diagram that illustrates a PE device in accordance with one embodiment of the present invention. 
         FIG. 2  shows one embodiment of the extended VLAN format utilized in accordance with the present invention. 
         FIG. 3  is a diagram of a service provider network using the extended VLAN mechanism to identify a VPLS instance according to one embodiment of the present invention. 
         FIG. 4  is a network diagram that illustrates a redundancy mechanism utilized in accordance with one embodiment of the present invention. 
         FIG. 5  is a partial network diagram that shows virtual trunk blocking in accordance with one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     A VPLS model that utilizes an extended VLAN (E-VLAN) mechanism that tremendously reduces the number of PWs in a VPLS system is described. In the following description specific details are set forth, such as device types, protocols, configurations, etc., in order to provide a thorough understanding of the present invention. However, persons having ordinary skill in the networking arts will appreciate that these specific details may not be needed to practice the present invention. 
     A computer network is a geographically distributed collection of interconnected subnetworks for transporting data between nodes, such as intermediate nodes and end nodes. A local area network (LAN) is an example of such a subnetwork; a plurality of LANs may be further interconnected by an intermediate network node, such as a router or switch, to extend the effective “size” of the computer network and increase the number of communicating nodes. Examples of the end nodes may include servers and personal computers. The nodes typically communicate by exchanging discrete frames or packets of data according to predefined protocols. In this context, a protocol consists of a set of rules defining how the nodes interact with each other. 
     Each node typically comprises a number of basic subsystems including a processor subsystem, a main memory and an input/output (I/O) subsystem. Data is transferred between main memory (“system memory”) and processor subsystem over a memory bus, and between the processor and I/O subsystems over a system bus. Examples of the system bus may include the conventional lightning data transport (or hyper transport) bus and the conventional peripheral component [computer] interconnect (PCI) bus. Each network node may also comprise other hardware units/modules coupled to system bus for performing additional functions. The processor subsystem may comprise one or more processors and a controller device that incorporates a set of functions including a system memory controller, support for one or more system buses and direct memory access (DMA) engines. In general, the single-chip device is designed for general-purpose use and is not heavily optimized for networking applications. 
     In a typical networking application, packets are received from a framer, such as an Ethernet media access control (MAC) controller, of the I/O subsystem attached to the system bus. A DMA engine in the MAC controller is provided a list of addresses (e.g., in the form of a descriptor ring in a system memory) for buffers it may access in the system memory. As each packet is received at the MAC controller, the DMA engine obtains ownership of (“masters”) the system bus to access a next descriptor ring to obtain a next buffer address in the system memory at which it may, e.g., store (“write”) data contained in the packet. The DMA engine may need to issue many write operations over the system bus to transfer all of the packet data. 
       FIG. 1  is a conceptual block diagram of one embodiment of a PE device  10  in accordance with the VPLS model of the present invention. PE device  10  includes a processing engine (CPU)  11  coupled with a main memory  12 . CPU  11  processes packets received by a plurality of physical ports  13  facing toward one or more CE devices. After processing, packets are delivered to one or more output ports  15  that face toward the SP network core. Each port  15  includes one or more PWs  16 . 
     In accordance with the present invention, each PW  16  functions as a logical link (e.g., an IEEE 802.1Q specification trunk) between bridge components of two PE devices. This is a departure from the prior art use of PWs as part of VLAN emulation. That is, according to the traditional VPLS model, a full mesh of PWs of a service instance emulates a provider VLAN with respect to the bridge component of a PE device. However, in accordance with the present invention, the VLAN emulation model is discarded and each PW functions like a logical link transport mechanism that carries the provider VLANs. According to the VPLS model of the present invention, each VPLS instance is identified by an extended VLAN (E-VLAN) tag that is generated by CPU  11  of PE device  10 . Basically, CPU  11  converts the incoming SP VLAN tag associated with packets arriving at ports  13  into the E-VLAN tag format that is sent across the SP core network. 
       FIG. 2  shows the E-VLAN tag format in accordance with one embodiment of the present invention. An Ethertype associated with the E-VLAN may be used to identify this extended tag in an Ethernet frame. A key feature of the E-VLAN tag format is a 20-bit VLAN ID/Service ID field that allows identification, in certain applications, of up to one million different service instances. Also included is a 4-bit Class of Service (CoS) field, a Discard eligible (D) bit, a FCS (F) bit, a customer MAC address encapsulation (M) bit, and a stack (S) bit that indicates that VLAN stacking is utilized in the data packet format. Setting of the M bit indicates the entire customer frame, including the customer&#39;s MAC address, is encapsulated in the Ethernet frame. In cases where the M bit is set, the provider MAC address is used for tunneling through the SP network. These latter two features will be discussed in more detail below. 
     In one implementation, the E-VLAN tag of  FIG. 2  is utilized as a VPLS service instance identifier (i.e., customer VPN ID), with the E-VLAN tag being embedded within the Ethernet frame. In this manner, up to one million service instances may be supported in transmission across the SP core network. 
       FIG. 3  is a simplified example of a SP network in accordance with one embodiment of the present invention in which a core network  20  is shown connected to a pair of Ethernet access networks  21  &amp;  22  via network provider edge (n-PE) devices  32  &amp;  33 , respectively. User-facing provider edge (u-PE) devices  31  &amp;  34  connect respective customer edge (CE) devices  41  &amp;  42  to Ethernet access networks  21  &amp;  22 . In this illustration, n-PE devices  32  and  33  are implemented in accordance with the PE device model shown in  FIG. 1 . That is, for traffic passing from left to right in  FIG. 3 , n-PE device  32  maps the 12-bit provider VLAN ID associated with customer edge device  41  into a 20-bit E-VLAN tag identifier that is then sent over core network  20 . At the other end, n-PE device  33  translates the 20-bit E-VLAN tag back to a standard 12-bit provider VLAN ID, which eventually passes to CE device  42  at the destination end. 
     It is appreciated that each of the u-PE and n-PE devices shown in the embodiment of  FIG. 4  are configured to both convert 12-bit VLAN IDs into E-VLAN identifiers in the direction across core network  20 , and to convert E-VLAN identifiers into 12-bit VLAN IDs in the direction from core network  20  to the CE device. In other words, the PE devices  32  &amp;  33  at the edge of the core and access networks are capable of handling both ingress and egress traffic in the manner described above. By way of example, processing of the identifiers may be performed by a software routine running on CPU  11  of the corresponding PE device. 
     Note that in accordance with the present invention, the filtering database normally associated with each customer is unchanged; that is, the filtering database is used as before (prior model) for each customer. But instead of using a full mesh of PWs to designate a broadcast domain over the core network (i.e., to emulate a provider VLAN), the E-VLAN mechanism described above is utilized. To limit the broadcast domain associated with a provider VLAN (or VPLS instance) over a set of PWs, a modified version of GARP (Generic Attribute Registration Protocol) VLAN Registration Protocol (GVRP) is run, which modified version is herein referred to as Extended GVRP (E-GVRP), among the PE devices (or n-PE devices only). GVRP is a known application defined in the IEEE 802.1Q standard that allows for the control of 802.1Q VLANs, i.e., 802.1Q-compliant VLAN pruning and dynamic VLAN creation on 802.1Q trunk ports. GVRP basically allows a switch to exchange VLAN configuration information with other GVRP switches, prune unwanted VLANs and their associated broadcast, multicast, and unicast traffic, and dynamically create and manage VLANs on switches connected through 802.1Q trunk ports. 
     The E-GVRP is essentially a compact GVRP that has a coding used to compress the VLAN information for up to 4K VLANs into a single Ethernet frame. In the E-GVRP, a jumbo Ethernet frame is utilized to carry the information needed for a large number of E-VLANs. Like GVRP, E-GVRP only runs among PE devices (or n-PEs); it does not interfere with and runs independently from each access domain&#39;s GVRP. Using E-GVRP each PE device may indicate to other PE devices what VPLS instances (E-VLANs) it is interested in on a given PW. Thus, the other PE devices may operate by only sending traffic from those VLANs over that PW, thereby limiting the scope of broadcast domain for each E-VLAN. 
     It should be understood that the Multiple VLAN Registration Protocol (MVRP) may also be utilized in conjunction with the present invention in replacement for GVRP for the purposes of auto-discovery and notification of active VLANs. 
       FIG. 4  is a network diagram that illustrates how redundancy is handled in accordance with one embodiment of the present invention.  FIG. 4  shows access domains (i.e., islands)  50  and  70  on opposite sides of core network  20 . In  FIG. 4 , n-PE devices  60  &amp;  61  connect with nodes  51 - 55  of island  50 , and n-PE devices  80  &amp;  81  connect with nodes  71 - 77  of island  70 . A full mesh of PWs  91 - 94  connects n-PE devices  60  &amp;  61  with n-PE devices  80  &amp;  81 . 
     Each of islands  50  and  70  runs its own Spanning Tree Protocol (STP), or some variant of STP, e.g., MSTP or RSTP. As is well known, switches in a network running STP gather information about other switches in the network through an exchange of control messages called Bridge Protocol Data Units (BPDUs). BPDUs contain information about the transmitting switch and its ports, including its switch and port Media Access Control (MAC) addresses and priorities. The exchange of BPDU messages results in the election of a root bridge on the network, and computation of the best path from each switch to the root switch. To provide path redundancy, STP defines a tree from the root that spans all of the switches in the network, with certain redundant paths being forced into a standby (i.e., blocked) state. If a particular network segment becomes unreachable the STP algorithm reconfigures the tree topology and re-establishes the link by activating an appropriate standby path. 
     According to one embodiment, link and node level redundancy is achieved by BPDU loopback at the remote n-PE device. In the example shown in  FIG. 4 , a BPDU packet sent by n-PE devices  60  or  61  across any of PWs  91 - 94  is looped back via another PW. This loopback operation is indicated by the dashed lines in  FIG. 4  shown connecting PW  91  &amp;  93  and PW  92  &amp;  94 . By looping the BPDU back, it looks to the island (e.g., island  50 ) sending the BPDU as if the two PWs are actually connected together (i.e., like a LAN segment). This means that the local STP in island  50  running over n-PE devices  60  &amp;  61  can block the appropriate virtual trunk, thus providing redundancy. This blocking function is illustrated in  FIG. 5  by the shaded blocks at n-PE device  61  for each of the two PW paths from n-PE device  60  to n-PE device  61  (looped back at the remote n-PE devices  80  &amp;  81 ). For instance, one path from n-PE device  60  to n-PE device  61  includes PWs  91  &amp;  93 , while the other path includes PWs  94  &amp;  92 . 
     Practitioners will appreciate that the examples of  FIGS. 4 &amp; 5  illustrate how the provider BPDU path is exactly the same as that of the provider data. 
     In addition, since PWs function as a transport mechanism for VPLS identifiers in the present invention, either full or partial meshes may be implemented among the n-PE devices so connected across the core network. In other words, problems caused by partial meshes in the prior art VPLS model are obviated in the present invention since PWs are no longer part of an emulated VLAN. Instead, PWs are used as logical links, which means that bridge protocols may be leveraged to take care of PW failures. The present invention also allows for an efficient recovery mechanism since a single PW failure does not result in a PE failure (as was often the case in the prior art). Furthermore, Ethernet OAM protocol (IEEE 802. 1 ag) can be readily applied to the VPLS model of the present invention. 
     It should be understood that elements of the present invention may also be provided as a computer program product which may include a machine-readable medium having stored thereon instructions which may be used to program a computer (e.g., a processor or other electronic device) to perform a sequence of operations. Alternatively, the operations may be performed by a combination of hardware and software. The machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnet or optical cards, propagation media or other type of media/machine-readable medium suitable for storing electronic instructions. For example, elements of the present invention may be downloaded as a computer program product, wherein the program may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a customer or client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection). 
     Additionally, although the present invention has been described in conjunction with specific embodiments, numerous modifications and alterations are well within the scope of the present invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.