Dynamic, conditon-based packet redirection
First Claim
1. A method comprising:
- at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for not routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications;
at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows;
at the packet-forwarding engine, determining whether one or more of the conditions for not routing the particular packet to the particular one of the applications are met;
at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; and
updating one or more metrics based on the particular packet, wherein;
one of the metrics tracks a number of packets in the particular one of the packet flows routed to the particular one of the applications; and
one of the conditions specifies that packets in the particular one of the packet flows are not to be routed to the particular one of the applications when the number of packets exceeds a predetermined value.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, a method includes receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route the particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications. The method further includes, receiving a particular packet in the particular one of the packet flows, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are met, and routing or not routing the particular packet to the particular one of the applications based on the determination.
-
Citations
30 Claims
-
1. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for not routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for not routing the particular packet to the particular one of the applications are met; at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; and updating one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows routed to the particular one of the applications; and one of the conditions specifies that packets in the particular one of the packet flows are not to be routed to the particular one of the applications when the number of packets exceeds a predetermined value. - View Dependent Claims (2)
-
-
3. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for not routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for not routing the particular packet to the particular one of the applications are met; at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; and updating one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of bits in the packets in the particular one of the packet flows routed to the particular one of the applications; and one of the conditions specifies that packets in the particular one of the packet flows are not to be routed to the particular one of the applications when the number of bits in the packets exceeds a predetermined value.
-
-
4. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are met˜
at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; andupdating one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the number of packets exceeds a predetermined value.
-
-
5. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; and updating one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the number of packets equals one of one or more predetermined values.
-
-
6. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination; and updating one or more metrics based on the particular packet, wherein; one of the metrics tracks an actual sequencing of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the actual sequencing differs from a predetermined sequencing.
-
-
7. The method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; and at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination, wherein one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when a time interval between packets in the particular one of the packet flows exceeds a predetermined value.
-
-
8. A method comprising:
-
at a packet-forwarding engine for receiving packet flows and conditionally routing packets in the packet flows to one or more applications, receiving from a particular one of the applications a request that requests the packet-forwarding engine not to route a particular one of the packet flows to the particular one of the applications and identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; at the packet-forwarding engine, receiving a particular packet in the particular one of the packet flows; at the packet-forwarding engine, determining whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; and at the packet-forwarding engine, routing or not routing the particular packet to the particular one of the applications based on the determination, wherein one of the conditions specifies that the request not to route the particular one of the packet flows to the particular one of the applications is to be terminated if a predetermined event occurs. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. One or more non-transitory computer-readable storage media encoding software that is operable when executed to:
-
receive from a particular one of one or more applications a request to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for not routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for not routing the particular packet to the particular one of the applications are met; route or not route the particular packet to the particular one of the applications based on the determination; and update one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows routed to the particular one of the applications; and one of the conditions specifies that packets in the particular one of the packet flows are not to be routed to the particular one of the applications when the number of packets exceeds a predetermined value. - View Dependent Claims (17)
-
-
18. One or more non-transitory computer-readable storage media encoding software that is operable when executed to:
-
receive from a particular one of one or more applications a request to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for not routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for not routing the particular packet to the particular one of the applications are met; route or not route the particular packet to the particular one of the applications based on the determination; and update one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of bits in the packets in the particular one of the packet flows routed to the particular one of the applications; and one of the conditions specifies that packets in the particular one of the packet flows are not to be routed to the particular one of the applications when the number of bits in the packets exceeds a predetermined value.
-
-
19. One or more non-transitory computer-readable storage media embodying software that is operable when executed to:
-
receive from a particular one of one or more applications a request not to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; route or not route the particular packet to the particular one of the applications based on the determination; and update one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the number of packets exceeds a predetermined value.
-
-
20. One or more non-transitory, computer-readable storage media embodying software that is operable when executed to:
-
receive from a particular one of one or more applications a request not to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for routing particular ones of the packets in the particular one, of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; route or not route the particular packet to the particular one of the applications based on the determination; and update one or more metrics based on the particular packet, wherein; one of the metrics tracks a number of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the number of packets equals one of one or more predetermined values.
-
-
21. One or more non-transitory computer-readable storage media embodying software that is operable when executed to:
-
receive from a particular one of one or more applications a request not to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; route or not route the particular packet to the particular one of the applications based on the determination; and update one or more metrics based on the particular packet, wherein; one of the metrics tracks an actual sequencing of packets in the particular one of the packet flows received at the packet-forwarding engine; and one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when the actual sequencing differs from a predetermined sequencing.
-
-
22. One or more non-transitory computer-readable storage media embodying software that is operable when executed to:
-
receive from a particular one of one or more applications a request not to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; and route or not route the particular packet to the particular one of the applications based on the determination, wherein one of the conditions specifies that packets in the particular one of the packet flows are to be routed to the particular one of the applications when a time interval between packets in the particular one of the packet flows exceeds a predetermined value.
-
-
23. One or more non-transitory computer-readable storage media embodying software that is operable when executed to:
-
receive from a particular one of one or more applications a request not to route a particular one of one or more packet flows to the particular one of the applications, wherein the request also identifies one or more conditions for routing particular ones of the packets in the particular one of the packet flows to the particular one of the applications; receive a particular packet in the particular one of the packet flows; determine whether one or more of the conditions for routing the particular packet to the particular one of the applications are met; and route or not route the particular packet to the particular one of the applications based on the determination, wherein one of the conditions specifies that the request not to route the particular one of the packet flows to the particular one of the applications is to be terminated if a predetermined event occurs. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
Specification