Hardware-accelerated packet multicasting

US9407449B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9407449-B2
Application numberUS-201514633981-A
CountryUS
Kind codeB2
Filing dateFeb 27, 2015
Priority dateNov 18, 2002
Publication dateAug 2, 2016
Grant dateAug 2, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 further comprising: transforming headers of the first received multicast packet in accordance with transform control instructions of the routing context associated with the first selected VR; and transforming headers of the second received multicast packet in accordance with transform control instructions of the routing context associated with the second selected VR. 3. The method of claim 1 wherein during reading, multicast packets are read from a same buffer of the multicast address spaces associated with the selected VR for each instance of multicasting. 4. The method of claim 1 wherein switching the routing context of a VR includes switching a memory state of the VRE, and wherein the virtual routing system includes a plurality of VREs, each capable of instantiating multiple VRs. 5. The method of claim 1 further comprising: identifying a plurality of flow classification indices for the first received multicast packet; sending the first received multicast packet and a first of the flow classification indices to a packet transformer; buffering the first received multicast packet in a memory associated with the packet transformer; identifying first transform control instructions from the first flow classification index; and transforming the first received multicast packet in accordance with the first transform control instructions. 6. The method of claim 5 further comprising: sending a next of the flow classification indices without the first received multicast packet to the packet transformer; identifying next transform control instructions from the next of the flow classification indices; reading the first received multicast packet from the memory; transforming the first received multicast packet in accordance with the next transform control instructions; and repeating, for each of the flow classification indices of the plurality of flow classification indices, the sending the next flow classification index, the identifying the next transform control instructions, the reading and the transforming the first received multicast packet, to generate multicast packets for transmission. 7. The method of claim 6 wherein prior to transforming, the method further comprises: providing the first received multicast packet with each next flow classification index of the plurality of flow classification indices to an egress processor; and wherein transforming further comprises transforming the first received multicast packet by the egress processor in accordance with each next flow classification index; and wherein a packet classifier performs identifying the plurality of flow classification indices, sending the first received multicast packet and the first flow classification index, and sending each next flow classification index without the first received multicast packet; and wherein the packet transformer performs the buffering, the identifying the transform control instructions and providing the first received multicast packet with each next flow classification index of the plurality to the egress processor. 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. 9. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises: transforming headers of the first received multicast packet in accordance with transform control instructions of the routing context associated with the first selected VR; and transforming headers of the second received multicast packet in accordance with transform control instructions of the routing context associated with the second selected VR. 10. The non-transitory computer-readable storage medium of claim 8 , wherein during reading, multicast packets are read from a same buffer of the multicast address spaces associated with the selected VR for each instance of multicasting. 11. The non-transitory computer-readable storage medium of claim 8 , wherein switching the routing context of a VR includes switching a memory state of the VRE, and wherein the virtual routing system includes a plurality of VREs, each capable of instantiating multiple VRs. 12. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises: identifying a plurality o

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9407449B2 cover?
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 …
Who is the assignee on this patent?
Fortinet Inc
What technology area does this patent fall under?
Primary CPC classification H04L45/16. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).