System and method for routing traffic through a virtual router-based network switch
DCFirst Claim
Patent Images
1. A method comprising:
- establishing a packet flow cache having a plurality of entries each identifying one of a plurality of virtual router (VR) flows through a VR-based network device and corresponding forwarding state information;
receiving a packet at a processing engine of a plurality of processing engines of the VR-based network device;
determining one or more appropriate packet transformations for application to the packet by an ingress unit of a packet forwarding engine associated with the processing engine by performing flow-based packet classification on the packet;
using a result of the flow-based packet classification to retrieve an entry of a plurality of entries of the packet flow cache;
on a packet flow cache hit, determining, based on the corresponding forwarding state information of the retrieved packet flow cache entry, whether to software forward the packet via a processor of the VR-based network device or hardware forward the packet without intervention by the processor via a network interface of the VR-based network device;
on a packet flow cache miss, identifying the existence of a new VR flow and upon successful allocation of a new entry of the packet flow cache for the new VR flow, forwarding the packet to software on the processor for flow learning.
5 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A method for routing packets in a router includes establishing a flow data structure identifying a packet flow through a virtual router in the router. Next, a system executing the method receives a packet, said packet having at least one packet header. The method then compares a subset of the at least one packet header to a subset of the flow data structure. If the subset of the at least one packet header matches the subset of the flow data structure, then the packet can be hardware accelerated to a network interface. Otherwise, the packet can be either dropped, or forwarded to a general purpose processor for processing.
367 Citations
24 Claims
-
1. A method comprising:
-
establishing a packet flow cache having a plurality of entries each identifying one of a plurality of virtual router (VR) flows through a VR-based network device and corresponding forwarding state information; receiving a packet at a processing engine of a plurality of processing engines of the VR-based network device; determining one or more appropriate packet transformations for application to the packet by an ingress unit of a packet forwarding engine associated with the processing engine by performing flow-based packet classification on the packet; using a result of the flow-based packet classification to retrieve an entry of a plurality of entries of the packet flow cache; on a packet flow cache hit, determining, based on the corresponding forwarding state information of the retrieved packet flow cache entry, whether to software forward the packet via a processor of the VR-based network device or hardware forward the packet without intervention by the processor via a network interface of the VR-based network device; on a packet flow cache miss, identifying the existence of a new VR flow and upon successful allocation of a new entry of the packet flow cache for the new VR flow, forwarding the packet to software on the processor for flow learning. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable medium having stored thereon instructions, which when executed by one or more processors cause the one or more processors to perform a method comprising:
-
establishing a packet flow cache having a plurality of entries each identifying one of a plurality of virtual router (VR) flows through a VR-based network device and corresponding forwarding state information; receiving a packet at a processing engine of a plurality of processing engines of the VR-based network device; determining one or more appropriate packet transformations for application to the packet by an ingress unit of a packet forwarding engine associated with the processing engine by performing flow-based packet classification on the packet; using a result of the flow-based packet classification to retrieve an entry of a plurality of entries of the packet flow cache; on a packet flow cache hit, determining, based on the corresponding forwarding state information of the retrieved packet flow cache entry, whether to software forward the packet via a processor of the VR-based network device or hardware forward the packet without intervention by the processor via a network interface of the VR-based network device; on a packet flow cache miss, identifying the existence of a new VR flow and upon successful allocation of a new entry of the packet flow cache for the new VR flow, forwarding the packet to software on the processor for flow learning. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A virtual router (VR)-based network device comprising:
-
a means for establishing a packet flow cache having a plurality of entries each identifying one of a plurality of VR flows through the VR-based network device and corresponding forwarding state information; a means for receiving a packet at a processing engine of a plurality of processing engines of the VR-based network device; a means for determining one or more appropriate packet transformations for application to the packet by an ingress unit of a packet forwarding engine associated with the processing engine by performing flow-based packet classification on the packet; a packet flow cache retrieval means for using a result of the flow-based packet classification to retrieve an entry of a plurality of entries of the packet flow cache; a means, responsive to the packet flow cache retrieval means, for determining on a packet flow cache hit and based on the corresponding forwarding state information of the retrieved packet flow cache entry whether to software forward the packet via a processor of the VR-based network device or hardware forward the packet without intervention by the processor via a network interface of the VR-based network device; a means, responsive to the packet flow cache retrieval means, for identifying on a packet flow cache miss the existence of a new VR flow and upon successful allocation of a new entry of the packet flow cache for the new VR flow, for forwarding the packet to software on the processor for flow learning. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification