Hardware-accelerated packet multicasting
First Claim
1. In a virtual routing system having a plurality of virtual routers (VRs) instantiated by a virtual routing engine (VRE), wherein the instantiation of each VR includes an associated routing context, a method of multicasting packets comprising:
- receiving a first multicast packet to be multicast to a first multicast destination and a second multicast packet to be multicast to a second multicast destination;
classifying the first received multicast packet and the second received multicast packet in accordance with different VRs of the plurality of VRs by determining a first selected VR of the plurality of VRs to multicast the first received multicast packet and a second selected VR of the plurality of VRs to multicast the second received multicast packet;
switching a routing context of the VRE to a routing context associated with the first selected VR for the first received multicast packet; and
reading at least a portion of the first received multicast packet from one of a plurality of multicast address spaces associated with the first selected VR to multicast the first received multicast packet;
forwarding the first received multicast packet to the first multicast destination;
switching the routing context of the VRE to a routing context associated with the second selected VR for the second received multicast packet;
reading at least a portion of the second received multicast packet from a plurality of multicast address spaces associated with the second selected VR to multicast the first received multicast packet; and
forwarding the second received multicast packet to the second multicast destination.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for hardware-accelerated packet multicasting are provided. According to one embodiment, a first packet to be multicast to a first destination and a second packet to be multicast to a second destination are received. The first and second packets are classified in accordance with different virtual routers (VRs) of multiple VRs instantiated by a virtual routing engine (VRE) of a virtual routing system by determining a first selected VR to multicast the first packet and a second selected VR to multicast the second packet. For each of the first and second packets: a routing context of the VRE is switched to a routing context associated with the selected VR; at least a portion of the packet is read from one of multiple multicast address spaces associated with the selected VR; and the packet is forwarded to the destination.
216 Citations
14 Claims
-
1. In a virtual routing system having a plurality of virtual routers (VRs) instantiated by a virtual routing engine (VRE), wherein the instantiation of each VR includes an associated routing context, a method of multicasting packets comprising:
-
receiving a first multicast packet to be multicast to a first multicast destination and a second multicast packet to be multicast to a second multicast destination; classifying the first received multicast packet and the second received multicast packet in accordance with different VRs of the plurality of VRs by determining a first selected VR of the plurality of VRs to multicast the first received multicast packet and a second selected VR of the plurality of VRs to multicast the second received multicast packet; switching a routing context of the VRE to a routing context associated with the first selected VR for the first received multicast packet; and reading at least a portion of the first received multicast packet from one of a plurality of multicast address spaces associated with the first selected VR to multicast the first received multicast packet; forwarding the first received multicast packet to the first multicast destination; switching the routing context of the VRE to a routing context associated with the second selected VR for the second received multicast packet; reading at least a portion of the second received multicast packet from a plurality of multicast address spaces associated with the second selected VR to multicast the first received multicast packet; and forwarding the second received multicast packet to the second multicast destination. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium embodying a set of instructions, which when executed by one or more processors of a virtual routing system, cause the one or more processors to perform a method of multicasting packets comprising:
-
receiving, by a virtual routing system having a plurality of virtual routers (VRs) instantiated by a virtual routing engine (VRE), a first multicast packet to be multicast to a first multicast destination and a second multicast packet to be multicast to a second multicast destination, wherein each VR instance of the plurality of VRs includes an associated routing context; classifying the first received multicast packet and the second received multicast packet in accordance with different VRs of the plurality of VRs by determining a first selected VR of the plurality of VRs to multicast the first received multicast packet and a second selected VR of the plurality of VRs to multicast the second received multicast packet; switching a routing context of the VRE to a routing context associated with the first selected VR for the first received multicast packet; and reading at least a portion of the first received multicast packet from one of a plurality of multicast address spaces associated with the first selected VR to multicast the first received multicast packet; forwarding the first received multicast packet to the first multicast destination; switching the routing context of the VRE to a routing context associated with the second selected VR for the second received multicast packet; reading at least a portion of the second received multicast packet from a plurality of multicast address spaces associated with the second selected VR to multicast the first received multicast packet; and forwarding the second received multicast packet to the second multicast destination. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification