Systems, methods, and computer readable media for providing instantaneous failover of packet processing elements in a network
First Claim
1. A packet distribution system, comprising:
- a processor; and
a memory coupled to the processor, the memory configured to store instructions executable by the processor to cause the packet distribution system to;
maintain information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets;
maintain information about packet flows being processed by the packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow, wherein to maintain the information about the packet flows being processed by the packet processing devices, the instructions are executable by the processor to further cause the packet distribution system to;
receive a packet,determine whether the packet is associated with a new packet flow or an existing packet flow, andin response to a determination that the packet is associated with a new packet flow, assign one of the plurality of packet processing devices as a primary packet processing device for the new packet flow, and, prior to a failure of the primary packet processing device for the new packet flow, assign another of the plurality of packet processing devices as a secondary packet processing device for the new packet flow; and
route packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer program products for providing instantaneous failover of packet processing elements in a network are disclosed. According to one aspect, the subject matter described herein includes a system for providing instantaneous failover of packet processing elements in a network. The system includes a plurality of packet processing elements for processing packets in a network and a packet distribution module for maintaining information about the operating status of each element of the plurality of packet processing elements, for maintaining information about packet flows being processed by the packet processing elements, and, for each packet flow, assigning one of the plurality of packet processing elements as the primary element for the packet flow and assigning another of the plurality of packet processing elements as the secondary element for the packet flow. The packet distribution module routing packets to the packet processing elements according to the operating status of the packet processing elements that have been assigned to the packet flow with which the packets are associated.
-
Citations
30 Claims
-
1. A packet distribution system, comprising:
-
a processor; and a memory coupled to the processor, the memory configured to store instructions executable by the processor to cause the packet distribution system to; maintain information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintain information about packet flows being processed by the packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow, wherein to maintain the information about the packet flows being processed by the packet processing devices, the instructions are executable by the processor to further cause the packet distribution system to; receive a packet, determine whether the packet is associated with a new packet flow or an existing packet flow, and in response to a determination that the packet is associated with a new packet flow, assign one of the plurality of packet processing devices as a primary packet processing device for the new packet flow, and, prior to a failure of the primary packet processing device for the new packet flow, assign another of the plurality of packet processing devices as a secondary packet processing device for the new packet flow; and route packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A packet distribution system, comprising:
-
a processor; and a memory coupled to the processor, the memory configured to store instructions executable by the processor to cause the packet distribution system to; maintain information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintain information about packet flows being processed by the packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow; and route packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated, wherein to route the packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the flow with which the packets are associated, the instructions are executable by the processor to further cause the packet distribution system to; receive a packet that is associated with a packet flow, determine the operational status of the primary packet processing device assigned to the packet flow, in response to a determination that the primary packet processing device is capable of processing the packet, forward the packet to the primary packet processing device for processing, and in response to a determination that the primary packet processing device is not capable of processing the packet, forward the packet to the secondary packet processing device for processing. - View Dependent Claims (10)
-
-
11. packet distribution system, comprising:
-
a processor; and a memory coupled to the processor, the memory configured to store instructions executable by the processor to cause the packet distribution system to; maintain information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintain information about packet flows being processed by the packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow, wherein to maintain the information about the packet flows, the instructions are executable by the processor to further cause the packet distribution system to use packet flow objects, each packet flow object including; a packet flow identifier for identifying the packet flow, an identification of the primary packet processing device assigned to the packet flow, and an identification of the secondary packet processing device assigned to the packet flow; and route packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated. - View Dependent Claims (12, 13)
-
-
14. A packet distribution system, comprising:
-
a processor; and a memory coupled to the processor, the memory configured to store instructions executable by the processor to cause the packet distribution system to; maintain information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets, wherein maintaining information about the operating status of each device of the plurality of packet processing devices includes using a status map for indicating the operational status of each packet processing device; maintain information about packet flows being processed by the packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow; and route packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated. - View Dependent Claims (15)
-
-
16. A method comprising:
-
maintaining information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintaining information about packet flows being processed by the plurality of packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow, wherein maintaining information about packet flows being processed by the packet processing devices includes; receiving a packet, determining whether the packet is associated with a new packet flow or with an existing packet flow, and in response to a determination that the packet is associated with a new packet flow, assigning one of the plurality of packet processing devices as a primary packet processing device for the new packet flow, and, prior to a failure of the primary packet processing device for the new packet flow, assigning another of the plurality of packet processing devices as a secondary packet processing device for the new packet flow; and routing packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated. - View Dependent Claims (17, 18, 19)
-
-
20. A method comprising:
-
maintaining information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintaining information about packet flows being processed by the plurality of packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow; and routing packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated, wherein routing packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the flow with which the packets are associated includes; receiving a packet that is associated with a packet flow, determining the operational status of the primary packet processing device assigned to the packet flow, in response to a determination that the primary packet processing device is capable of processing the packet, forwarding the packet to the primary packet processing device for processing, and in response to a determination that the primary packet processing device is not capable of processing the packet, forwarding the packet to the secondary packet processing device for processing. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A method comprising:
-
maintaining information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintaining information about packet flows being processed by the plurality of packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow, wherein maintaining information about packet flows being processed by the packet processing devices includes using packet flow objects for maintaining information about packet flows, and wherein each packet flow object includes; a packet flow identifier for identifying the packet flow, an identification of the primary packet processing device assigned to the packet flow, and an identification of the secondary packet processing device assigned to the packet flow; and routing packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated. - View Dependent Claims (28)
-
-
29. A method comprising:
-
maintaining information about an operating status of each of a plurality of packet processing devices, the information indicating whether a corresponding one of the packet processing devices is capable or not capable of processing packets; maintaining information about packet flows being processed by the plurality of packet processing devices, and, for each packet flow, assigning one of the plurality of packet processing devices as a primary device for the packet flow and assigning another of the plurality of packet processing devices as a secondary device for the packet flow; and routing packets to the packet processing devices according to the operating status of the packet processing devices that have been assigned to the packet flow with which the packets are associated; wherein determining the operational status of the primary packet processing device comprises accessing a data structure configured to store operational status for each packet processing device; and wherein the data structure configured to store operational status for each packet processing device comprises a bitmap, wherein a first value of a bit in the bitmap indicates that a packet processing device corresponding to that bit is currently capable of processing packets and wherein a second value of the bit in the bitmap indicates that the packet processing device corresponding to that bit is not currently capable of processing packets.
-
-
30. A computer readable medium having stored thereon computer-executable instructions that, upon execution by a processor of a packet distribution system, causes the packet distribution system to:
-
identify one of a plurality of packet flows to which a received packet belongs; determine whether a given packet processing device corresponding to the identified packet flow is presently capable of processing the received packet based, at least in part, upon;
(i) a flow table correlating each of the plurality of packet flows to a corresponding one of a plurality of packet processing devices, and (ii) a bitmap indicating whether each of the plurality of packet processing devices is presently capable or not capable to process packets; andat least one of;
(a) in response to the given packet processing device being presently capable of processing the received packet, distributing the received packet to the given packet processing device;
or (b) in response to the given packet processing device not being presently capable of processing the received packet, distributing the received packet to another one of the plurality of packet devices designated as an alternate packet processing device for the identified packet flow in the flow table.
-
Specification