HARDWARE-ACCELERATED PACKET MULTICASTING IN A VIRTUAL ROUTING SYSTEM
First Claim
1. A method comprising:
- providing a virtual routing engine (VRE) including a plurality of virtual routing processors and corresponding memory systems, the VRE implementing a plurality of virtual routers (VRs) operable on one or more of the plurality of virtual routing processors and associated routing contexts utilizing a plurality of potentially overlapping multicast address spaces resident in the corresponding memory systems; and
simultaneously performing multicasting on behalf of a plurality of subscribers of a service provider by, for each of a plurality of multicast flows originated by the plurality of subscribers;
selecting a VR of the plurality of VRs to handle multicast packets associated with the multicast flow;
switching a routing context of the VRE to the associated routing context of the selected VR; and
forwarding a multicast packet of the multicast flow to a plurality of multicast destinations by reading at least a portion of the multicast packet from a common buffer for each instance of multicasting and applying destination specific transform control instructions to the multicast packet for each instance of multicasting.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are provided for hardware-accelerated packet multicasting in a virtual routing system. According to one embodiment, a virtual routing engine (VRE) including virtual routing processors and corresponding memory systems are provided. The VRE implements virtual routers (VRs) operable on the virtual routing processors and associated routing contexts utilizing potentially overlapping multicast address spaces resident in the memory systems. Multicasting of multicast flows originated by subscribers of a service provider is simultaneously performed on behalf of the subscribers. A VR is selected to handle multicast packets associated with a multicast flow. A routing context of the VRE is switched to one associated with the VR. A packet of the multicast flow is forwarded to multiple destinations by reading a portion of the packet from a common buffer for each instance of multicasting and applying transform control instructions to the packet for each instance of multicasting.
-
Citations
12 Claims
-
1. A method comprising:
-
providing a virtual routing engine (VRE) including a plurality of virtual routing processors and corresponding memory systems, the VRE implementing a plurality of virtual routers (VRs) operable on one or more of the plurality of virtual routing processors and associated routing contexts utilizing a plurality of potentially overlapping multicast address spaces resident in the corresponding memory systems; and simultaneously performing multicasting on behalf of a plurality of subscribers of a service provider by, for each of a plurality of multicast flows originated by the plurality of subscribers; selecting a VR of the plurality of VRs to handle multicast packets associated with the multicast flow; switching a routing context of the VRE to the associated routing context of the selected VR; and forwarding a multicast packet of the multicast flow to a plurality of multicast destinations by reading at least a portion of the multicast packet from a common buffer for each instance of multicasting and applying destination specific transform control instructions to the multicast packet for each instance of multicasting. - View Dependent Claims (2, 3, 5, 6, 7, 10, 11, 12)
-
-
4. A virtual routing system comprising:
-
a plurality of virtual routing engines (VREs) each including a plurality of virtual routing processors and corresponding memory systems, each of the plurality of VREs implement a plurality of virtual routers (VRs) operable on one or more of the plurality of virtual routing processors and associated routing contexts utilizing a plurality of potentially overlapping multicast address spaces resident in the corresponding memory systems; a flow manager operable to cause appropriate VRs of the plurality of VRs to handle multicast packets received from a service provider; and wherein the virtual routing system simultaneously handles multicasting for a plurality of subscribers of the service provider by performing a method comprising for each of a plurality of multicast flows originated by the plurality of subscribers; dynamically identifying a VRE of the plurality of VREs for the multicast flow by selecting a VR of the plurality of VRs implemented by the identified VRE to handle multicast packets associated with the multicast flow; switching a routing context of the identified VRE to the associated routing context of the selected VR; and forwarding a multicast packet of the multicast flow to a plurality of multicast destinations by reading at least a portion of the multicast packet from a common buffer for each instance of multicasting and applying destination specific transform control instructions to the multicast packet for each instance of multicasting. - View Dependent Claims (8)
-
-
9. A virtual routing system comprising:
-
a plurality of virtual routing engines (VREs) each including a plurality of virtual routing processors and corresponding memory systems, each of the plurality of VREs implement a plurality of virtual routers (VRs) operable on one or more of the plurality of virtual routing processors and associated routing contexts utilizing a plurality of potentially overlapping multicast address spaces resident in the corresponding memory systems; a flow manager operable to cause appropriate VRs of the plurality of VRs to handle multicast packets received from a service provider; and wherein the virtual routing system simultaneously handles multicasting for a plurality of subscribers of the service provider by performing a method comprising; receiving a first multicast flow from the service provider that is originated by a first subscriber of the plurality of subscribers; dynamically identifying a first VRE of the plurality of VREs for the first multicast flow by selecting a first VR of the plurality of VRs implemented by the first VRE to handle multicast packets associated with the first multicast flow; switching a routing context of the first VRE to the associated routing context of the first VR; forwarding a first multicast packet of the first multicast flow to a multicast destination associated with the first multicast flow by reading at least a portion of the first multicast packet from a first multicast address space of the plurality of potentially overlapping multicast address spaces; receiving a second multicast flow from the service provider that is originated by a second subscriber of the plurality of subscribers; dynamically identifying the first VRE for the second multicast packet flow by selecting a second VR of the plurality of VRs implemented by the first VRE to handle multicast packets associated with the second multicast flow; switching a routing context of the first VRE to the associated routing context of the second VR; and forwarding a second multicast packet of the second multicast flow to a multicast destination associated with the second multicast flow by reading at least a portion of the second multicast packet from a second multicast address space of the plurality of potentially overlapping multicast address spaces.
-
Specification