IP Library › Granted Patent US 9,722,933
Granted Patent B2
US 9,722,933 · App. 14/611,510 · Granted Aug 1, 2017

Selective packet sequence acceleration in a network environment

Inventors: Bhagatram Yaugand Janarthanan (Bangalore, IN); Imnaz Meher Jilani (Morrisville, NC); Robert A. Mackie (Cary, NC); Tzu-Ming Tsang (Chapel Hill, NC); Walter Dixon (Fuquay Varina, NC)
Assignee: CISCO TECHNOLOGY, INC.
H04L47/2483H04L12/2896H04L47/20H04L47/245H04L49/3009
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,722,933
App. No.
14/611,510
Granted
Aug 1, 2017
Kind
B2
Abstract

A data flow is received at a network processor that includes a plurality of frames. A first set of frames in the plurality of frames are passed from the network processor to a general processor for processing by the general processor. A flow acceleration request is received at the network processor from the general processor based at least in part on inspection of a first frame in the first set of frames. The flow acceleration request is received subsequent to passing at least two of the first set of frames to the general processor. A particular frame in the plurality of frames received subsequent to the first set of frames is processed by the network processor such that it is accelerated relative to processing of the first set of frames by the general processor and bypasses the general processor.

Claims (42)

1. A method comprising:

receiving a data flow at a network processor, wherein the data flow comprises a plurality of frames;

passing a first set of frames in the plurality of frames from the network processor to a general processor for processing, wherein the first set of frames comprises at least two frames;

receiving a flow acceleration request at the network processor from the general processor, wherein the flow acceleration request is generated by the general processor based at least in part on inspection of a first frame in the first set of frames by the general processor, the flow acceleration request is received subsequent to passing at least two of the first set of frames to the general processor, and the flow acceleration request identifies a set of conditions for accelerated processing; and

processing, at the network processor, a particular frame in the plurality of frames received subsequent to the first set of frames and the flow acceleration request, wherein processing of the particular frame by the network processor is based on the set of conditions and is accelerated relative to processing of the first set of frames by the general processor, and the processing of the particular frame bypasses the general processor based on the flow acceleration request.

2. The method of claim 1 , wherein acceleration of processing of the particular frame is based on at least one of the set of conditions.

3. The method of claim 2 , further comprising determining that one or more of the set of conditions is satisfied.

4. The method of claim 1 , wherein the set of conditions includes at least one condition for returning control of the set of frames to the general processor following acceleration of frames in the set of frames, the method further comprising:

receiving a subsequent frame of the data flow after the particular frame;

analyzing the subsequent frame at the network processor to determine that the at least one condition has been satisfied; and

passing the subsequent frame to the general processor for processing.

5. The method of claim 1 , further comprising:

receiving, at the network processor, each of the first set of frames returned from the general processor following respective inspection of the first set of frames by the general processor; and

forwarding the first set of frames to a remote network node by the network processor.

6. The method of claim 5 , wherein the at least one condition includes a trigger defining that the acceleration of frames in the set of frames be halted in response to processing a threshold amount of traffic, wherein the threshold, when met, triggers return of control of the data flow to the general processor.

7. The method of claim 5 , wherein the subsequent frame is forwarded by the network processor to the remote network node independent of the general processor.

8. The method of claim 1 , wherein the inspection of the first frame includes identifying a particular subscriber account associated with the data flow.

9. The method of claim 1 , wherein performing the inspection of the first frame includes identifying a particular policy associated with the data flow.

10. The method of claim 1 , further comprising generating a flow record for the data flow and maintaining statistics of the data flow in the flow record.

11. The method of claim 10 , wherein the flow record includes a temporary flow record maintained by the network processor during an accelerated data flow session.

12. The method of claim 11 , further comprising deleting the temporary copy of the flow record upon conclusion of the accelerated data flow session.

13. The method of claim 1 , further comprising sending an acknowledgement message from the network processor to the general processor in response to the received flow acceleration request.

14. The method of claim 1 , further comprising receiving, at the network processor, a deceleration request from the general processor, requesting that processing of at least a next frame in the data flow is to be returned to the general processor for processing.

15. Logic encoded in non-transitory media that includes code for execution and when executed by a processor is operable to perform operations comprising:

receiving a data flow at a network processor, wherein the data flow comprises a plurality of frames;

passing a first set of frames in the plurality of frames from the network processor to a general processor for processing, wherein the first set of frames comprises at least two frames;

receiving a flow acceleration request at the network processor from the general processor, wherein the flow acceleration request is generated by the general processor based at least in part on inspection of a first frame in the first set of frames by the general processor, the flow acceleration request is received subsequent to passing at least two of the first set of frames to the general processor, and the flow acceleration request identifies a set of conditions for accelerated processing; and

processing, at the network processor, a particular frame in the plurality of frames received subsequent to the first set of frames and the flow acceleration request, wherein processing of the particular frame by the network processor is based on the set of conditions and is accelerated relative to processing of the first set of frames by the general processor, and the processing of the particular frame bypasses the general processor based on the flow acceleration request.

16. A system, comprising:

a network processor configured to:

receive frames in a particular data flow, wherein the particular data flow comprises a plurality of frames;

pass a first set of frames in the plurality of frames from the network processor to a general processor for processing;

receive a flow acceleration request at the network processor from the general processor, wherein the flow acceleration request is received subsequent to passing at least two of the first set of frames to the general processor, and the flow acceleration request identifies a set of conditions for accelerated processing; and

process a particular frame in the plurality of frames received subsequent to the first set of frames and the flow acceleration request, wherein processing of the particular frame is based on the set of conditions and is accelerated by bypassing processing by the general processor based on the flow acceleration request; and

the general processor configured to:

perform a set of deep packet inspection operations on at least the first frame; and

generate the flow acceleration request based on results of the deep packet inspection operations.

17. The system of claim 16 , further comprising:

an in-band communication link between the network processor and the general processor; and

an out-of-band communication link between the network processor and the general processor.

18. The system of claim 16 , wherein the acceleration request includes at least one condition for decelerating an accelerated portion of the particular data flow, and the at least one network processor is further configured to identify that the at least one condition has been met and pass processing of at least a subsequent portion of the particular data flow to the general processor.

19. The system of claim 16 , wherein the at least one network processor is further configured to initially receive the particular data flow, determine that a particular frame in the received data flow is to be processed by the general processor, and forward the particular frame to the general processor.

Continuity (2)
Continuation 13159906 · Jun 14, 2011
Related Publication 20150146719A1 · May 28, 2015