Service providers (SPs) are seeking an efficient, scalable, yet simple means of distributing multicast data. There are a number of different approaches with trade-offs for each. Historically, the SP has either provided basic transport for multicast data where the subscriber is responsible for the replication or the SP provides multicast services where replication is done on behalf of the subscriber. The former model is very inefficient, as the subscriber must replicate the data onto each transport instance built in the SP; nevertheless, the architecture is simple for the provider to support. In contrast, the multicast service is much more efficient; however, it is much more complex for the SP to operate. In both cases, scalability is constrained by bandwidth efficiency or operational complexity, respectively. An ideal solution leverages the concepts of both the multicast transport and the multicast service mitigating the extreme compromises of either solution.
Prior methods of facilitating multicast distribution typically couple the transport plane with the service plane. Examples include the use of Virtual Switch Instances (VSIs) which represent Layer 2 (L2) bridging entities where the VSI interprets the contents of the service plane, maintains a cache of the service end-point locations, and manages the state of the end-points. This architecture uses the VSI as the merging and branching point. It does require managing state of the services plane.
Another alternative is to link the services plane into a label-switching infrastructure that is mapped into point to multipoint (P2MP) Label Switching Paths (LSPs). This model requires the service plane to be linked to the Multi-Protocol Label Switch (MPLS) control plane. Typically, the MPLS control plane requires a P2MP LSP that might be based on Resource Reservation Protocol Traffic Engineering (RSVP-TE). The RSVP-TE provides the transport mechanism; however, the higher layer association of label switching to service plane switching is still required.
Conventional mechanisms such as those explained above suffer from a variety of deficiencies. These two methods do allow optimized distribution trees; however, both of the existing prior art methods require the transport provider to interact with the services plane. This is a huge impediment to deployment as the service plane typically belongs to a different provider that does not want to establish any interaction with the transport provider.
Embodiments of the invention significantly overcome such deficiencies and provide mechanisms and techniques that provide a method and apparatus for point-to-multipoint distribution using pseudowires. The presently defined architecture decouples the transport plane from the service plane enabling a more scaleable operational model. It also provides an optimized distribution tree for P2MP flows that are typical of broadcast video. The transport provider has explicit control over the merge and replication points in the network.
In a particular embodiment of a method for providing point-to-multipoint multihop distribution using Pseudowires (PWs), the method includes receiving data at a switching provider edge (S-PE) router from an upstream originating provider edge (O-PE) router by way of a first PW, the first PW having a head-end coupled to the O-PE and a tail end coupled to the S-PE. The method also includes replicating the data received by the S-PE to at least one receiver provider edge (R-PE) router by way of a respective PW for each of the at least one R-PE, each of the respective PW between the S-PE and the R-PE having a head end coupled to the SPE and a tail end coupled to the R-PE.
Other embodiments include a computer readable medium having computer readable code thereon for providing a point-to-multipoint multihop distribution using Pseudowires (PWs). The medium includes instructions for receiving data at a switching provider edge (S-PE) router from an upstream originating provider edge (O-PE) router by way of a first PW, said first PW having a head-end coupled to said O-PE and a tail end coupled to said S-PE. The medium also includes instructions for replicating said data received by said S-PE to at least one receiver provider edge (R-PE) router by way of a respective PW for each of said at least one R-PE, each of said respective PW between said S-PE and said R-PE having a head end coupled to said SPE and a tail end coupled to said R-PE.
Still other embodiments include a computerized device, configured to process all the method operations disclosed herein as embodiments of the invention. In such embodiments, the computerized device includes a memory system, a processor, communications interface in an interconnection mechanism connecting these components. The memory system is encoded with a process that provides point-to-multipoint multihop distribution using Pseudowires as explained herein that when performed (e.g. when executing) on the processor, operates as explained herein within the computerized device to perform all of the method embodiments and operations explained herein as embodiments of the invention. Thus any computerized device that performs or is programmed to perform up processing explained herein is an embodiment of the invention.
Other arrangements of embodiments of the invention that are disclosed herein include software programs to perform the method embodiment steps and operations summarized above and disclosed in detail below. More particularly, a computer program product is one embodiment that has a computer-readable medium including computer program logic encoded thereon that when performed in a computerized device provides associated operations providing point-to-multipoint multihop distribution using Pseudowires as explained herein. The computer program logic, when executed on at least one processor with a computing system, causes the processor to perform the operations (e.g., the methods) indicated herein as embodiments of the invention. Such arrangements of the invention are typically provided as software, code and/or other data structures arranged or encoded on a computer readable medium such as an optical medium (e.g., CD-ROM), floppy or hard disk or other a medium such as firmware or microcode in one or more ROM or RAM or PROM chips or as an Application Specific Integrated Circuit (ASIC) or as downloadable software images in one or more modules, shared libraries, etc. The software or firmware or other such configurations can be installed onto a computerized device to cause one or more processors in the computerized device to perform the techniques explained herein as embodiments of the invention. Software processes that operate in a collection of computerized devices, such as in a group of data communications devices or other entities can also provide the system of the invention. The system of the invention can be distributed between many software processes on several data communications devices, or all processes could run on a small set of dedicated computers, or on one computer alone.
It is to be understood that the embodiments of the invention can be embodied strictly as a software program, as software and hardware, or as hardware and/or circuitry alone, such as within a data communications device. The features of the invention, as explained herein, may be employed in data communications devices and/or software systems for such devices such as those manufactured by Cisco Systems, Inc. of San Jose, Calif.
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
Referring to
Referring now to
The services plane remains disjoint from the transport plane in the sense that the PW and it's control plane have no knowledge of the multicast sources. The root of the tree is engineered to be located at the multicast source. The premise of this solution is that the multicast stream is a persistent stream that is to be replicated to all receivers. An example of this application is broadcast video where all receivers expect to receive all content any time that it is available.
Upstream is distinguished from downstream at the PW switching-PE (S-PE) by associating upstream to the content source while downstream is associated with the content receiver. Traffic that is received from an upstream PW is replicated to all the downstream PWs.
The present invention described in
The flow model used on the multipoint multihop pseudowire is described as one-way with regards to application contact; however, the actual tree supports bidirectional flows up and down the tree. The innovation specifies that upstream flows are only merged onto the tail-end of the upstream PW while downstream flows are replicated onto the head-ends of the downstream PW. PE5 recognizes it is a branch point and needs to replicate received packets. PE5 decapsulates the received packet from the tail-end PW, replicates the packet, and subsequently encapsulates the packet into the respective head-end PW to each of PE2, PE3 and PE4. Due to the use of PWs, there is simply a layer 2 connection. No multicast state is maintained and handled by the S-PE. In fact, the payload of the PW might not even be a multicast packet. By way of the present environment 20, the transport provider is able to specify the location of SPE(s) branchpoints in order to conserve bandwidth and provide optimal utilization of the system, especially in multicast type applications such as broadcast video.
Referring now to
Referring now to
Referring now to
A flow chart of a particular embodiment of the presently disclosed method for point-to-multipoint distribution using pseudowires is depicted in
Referring now to
Processing block 110 states replicating the data received by the S-PE to at least one receiver provider edge (R-PE) router by way of a respective PW for each of the at least one R-PE, each of the respective PW between the S-PE and the R-PE having a head end coupled to the SPE and a tail end coupled to the R-PE. As recited in processing block 112, the replicating comprises replicating, at the S-PE, downstream flows onto headends of downstream PWs.
Processing block 114 discloses merging, by the S-PE, upstream flows to a tail end of an upstream PW. Processing block 116 states receiving data at a second switching provider edge (S-PE) router from the upstream originating provider edge (O-PE) router by way of a second PW, the second PW having a head-end coupled to the O-PE and a tail end coupled to the second S-PE.
Processing block 118 recites replicating the data received by the second S-PE to at least one receiver provider edge (R-PE) router by way of a respective PW for each of the at least one R-PE, each of the respective PW between the second S-PE and the R-PE having a head end coupled to the second SPE and a tail end coupled to the R-PE.
Processing block 120 discloses receiving data at the switching provider edge (S-PE) router from a second upstream originating provider edge (O-PE) router by way of a second PW, the second PW having a head-end coupled to the second O-PE and a tail end coupled to the S-PE. In this scenario, as recited in processing block 122, one of the O-PE and the second O-PE can be designated as a preferred source of data.
The memory system 212 may be any type of computer readable medium that is encoded with an application 255-A that represents software code such as data and/or logic instructions (e.g., stored in the memory or on another computer readable medium such as a disk) that embody the processing functionality of embodiments of the invention as explained above. The processor 213 can access the memory system 212 via the interconnection mechanism 211 in order to launch, run, execute, interpret or otherwise perform the logic instructions of the applications 255-A for the network device in order to produce a corresponding process 255-B. In other words, the process 255-B represents one or more portions of the application 255-A performing within or upon the processor 213 in the network device.
The architectural innovation facilitates an efficient traffic replication model for P2MP while simplifying operational complexities. The transport provider is able to specify the optimal fan-out points in the network in order to conserve bandwidth. The application in the services plane is decoupled from the transport plane minimizing the interaction the transport provider and the service provider.
It is to be understood that embodiments of the invention include the applications (i.e., the un-executed or non-performing logic instructions and/or data) encoded within a computer readable medium such as a floppy disk, hard disk or in an optical medium, or in a memory type system such as in firmware, read only memory (ROM), or, as in this example, as executable code within the memory system 212 (e.g., within random access memory or RAM). It is also to be understood that other embodiments of the invention can provide the applications operating within the processor 213 as the processes. While not shown in this example, those skilled in the art will understand that the computer system may include other processes and/or software and hardware components, such as an operating system, which have been left out of this illustration for ease of description of the invention.
Having described preferred embodiments of the invention it will now become apparent to those of ordinary skill in the art that other embodiments incorporating these concepts may be used. Additionally, the software included as part of the invention may be embodied in a computer program product that includes a computer useable medium. For example, such a computer usable medium can include a readable memory device, such as a hard drive device, a CD-ROM, a DVD-ROM, or a computer diskette, having computer readable program code segments stored thereon. The computer readable medium can also include a communications link, either optical, wired, or wireless, having program code segments carried thereon as digital or analog signals. Accordingly, it is submitted that that the invention should not be limited to the described embodiments but rather should be limited only by the spirit and scope of the appended claims.