×

Routing traffic through a virtual router-based network switch

  • US 8,111,690 B2
  • Filed: 10/29/2008
  • Issued: 02/07/2012
  • Est. Priority Date: 06/04/2002
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • establishing, by flow learning software running on a processor of a processing element of a plurality of processing elements of a virtual router-based network device, a flow data structure within a memory of the processing element, the flow data structure including (i) information identifying a plurality of current packet flows associated with a plurality of virtual routers running within the processing element and (ii) corresponding forwarding state information for each of the plurality of current packet flows, wherein each of the plurality of virtual routers comprise an instance of software, executing within a processor of the processing element, that emulates functionality of an individual physical router and to which at least a subset of physical hardware resources of the processing element are partitioned;

    receiving, by a packet forwarding engine of the processing element, an incoming packet;

    determining, by the packet forwarding engine, whether the incoming packet is associated with any of the plurality of current packet flows by accessing the flow data structure based on a header associated with the incoming packet;

    if the incoming packet is associated with a current packet flow of the plurality of current packet flows, thendetermining, by the packet forwarding engine, whether the incoming packet is to be hardware forwarded or software forwarded based on the forwarding state information corresponding to the current packet flow;

    if the incoming packet is to be hardware forwarded, then hardware forwarding the incoming packet, by the packet forwarding engine, via a network interface of the virtual router-based network device without intervention by the processor; and

    otherwise, if the incoming packet is to be software forwarded, then software forwarding the incoming packet, by an appropriate virtual router of the plurality of virtual routers, via the network interface; and

    otherwise, if the incoming packet is not associated with any of the plurality of current packet flows, then providing information regarding the incoming packet to the flow learning software on the processor to allow the flow data structure to be updated to include information identifying a flow with which the incoming packet is associated within the plurality of current packet flows.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×