Defferrable processing option for fast path forwarding
First Claim
1. A method of processing a received data unit in a networking device, the method comprising:
- determining whether said received data unit includes an indication that at least a portion of the processing of said received data unit is to be deferred;
determining in response to said indication, a location of a portion of said received data unit to be used during said deferred processing of said received data unit, said portion of said received data unit including at least a part of a non-header portion of said received data unit;
storing a copy of said portion of said received data unit;
forwarding said received data unit; and
performing said deferred processing after and independently of said forwarding and in response to said portion of said received data unit.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for providing deferred processing of information within a received data unit. An indication of a deferrable processing option in a received packet is detected, such as a particular option type or flag, as well as other deferred processing control parameters, and some relevant portion of the packet is stored. The received packet may then be forwarded out of the device, without waiting for the deferred processing to be completed. The deferred processing may be performed in parallel, or subsequent to, forwarding of the packet. The disclosed system is embodied in a networking device such as a router, which includes a fast processing path for packet forwarding functions, and a relatively slow processing path for other functions such as network management. Detection of the deferred processing indication and copying of the relevant packet portion are performed in the fast path. Deferred processing itself may be performed in the slow path.
42 Citations
40 Claims
-
1. A method of processing a received data unit in a networking device, the method comprising:
-
determining whether said received data unit includes an indication that at least a portion of the processing of said received data unit is to be deferred;
determining in response to said indication, a location of a portion of said received data unit to be used during said deferred processing of said received data unit, said portion of said received data unit including at least a part of a non-header portion of said received data unit;
storing a copy of said portion of said received data unit;
forwarding said received data unit; and
performing said deferred processing after and independently of said forwarding and in response to said portion of said received data unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method of processing a received data unit in a networking device, the method comprising:
-
determining whether said received data unit includes an indication of deferrable processing, said indication of deferrable processing being included within at least a portion of an option field within a header portion of said received data unit, said portion of said option field including a flag bit having a predetermined value;
storing a copy of a portion of said received data unit associated with said indication;
forwarding said received data unit;
performing said deferrable processing;
in response to said portion of said received data unit, and, at least in part, after said forwarding of said received data unit; and
determining whether to store a copy of all of said received data unit or a copy of a header of said received data unit responsive to a second flag bit of said option field.
-
-
25. A method of processing a received data unit in a networking device, the method comprising:
-
determining whether said received data unit includes an indication of deferrable processing;
storing a copy of a portion of said received data unit associated with said indication, said portion of said received data unit associated with said indication including a plurality of contiguous regions within said received data unit;
forwarding said received data unit;
performing said deferrable processing, in response to said portion of said received data unit, and, at least in part, after said forwarding of said received data unit; and
determining a location of each of said plurality of contiguous regions within said received data unit in response to a bit mask, each bit within said bit mask indicating, in a first predetermined state, one of said plurality of contiguous regions. - View Dependent Claims (26)
-
-
27. A method of processing a received data unit in a networking device, the method comprising:
-
determining whether said received data unit includes an indication of deferrable processing;
storing a copy of a portion of said received data unit associated with said indication;
forwarding said received data unit;
performing said deferrable processing, in response to said portion of said received data unit, and, at least in part, after said forwarding of said received data unit; and
determining a size of said portion of said received data unit associated with said indication in response to an indication of a length of said portion of said received data unit associated with said indication, said length included in said received data unit, said portion of said received data unit associated with said indication beginning at a beginning of said received data unit.
-
-
28. A method of processing a received data unit in a networking device, the method comprising:
-
determining whether said received data unit includes an indication of deferrable processing;
determining, in response to said received data unit, a location of a portion of said received data unit associated with said indication, a copy of said portion of said received data unit associated with said indication to be stored for said deferrable processing, said portion of said received data unit associated with said indication including at least a part of a non-header portion of said received data unit;
storing a copy of said portion of said received data unit associated with said indication;
forwarding said received data unit; and
performing said deferrable processing, in response to said portion of said received data unit, and, at least in part, after said forwarding of said received data unit;
wherein said deferrable processing includes determining a level of network performance in response to said stored portion of said received data unit.
-
-
29. A networking device, comprising:
-
packet processing logic including logic for detecting an indication that at least a portion of the processing of a received data unit is to be deferred, determining, in response to said indication, a location of a portion of said received data unit, said portion of said received data unit to be used during said deferred processing, said portion of said received data unit including at least a part of a non-header portion of said received data unit, storing a copy of said portion of said received data unit, and forwarding said received data unit from a first communications interface to a second communications interface for transmission from said networking device; and
a microprocessor based subsystem for performing said deferred processing after and independently of said forwarding of said received data unit by said packet processing logic, in response to said portion of said received data unit. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A networking device, comprising:
-
packet processing logic including logic for detecting an indication of deferrable processing, said indication of deferrable processing included within at least a portion of an option field within a header portion of a received data unit, said portion of said option field including a first flag bit having a predetermined value, storing a copy of at least a portion of said received data unit for access during said deferrable processing, forwarding said received data unit from a first communications interface to a second communications interface for transmission from said networking device, and whether to store a copy of all of said received data unit or a copy of a header of said received data unit in response to a second flag bit of said option field; and
a microprocessor based subsystem for performing said deferrable processing, at least in part, after said forwarding of said received data unit by said packet processing logic.
-
-
40. A networking device, comprising:
-
packet processing logic including logic for detecting an indication of deferrable processing in a received data unit, determining, in response to said received data unit, a location of a portion of said received data unit associated with said indication, a copy of said portion of said received data unit associated with said indication to be stored for said deferrable processing, said portion of said received data unit associated with said indication including at least a part of a non-header portion of said received data unit, storing a cops of said portion of said received data unit for access during said deferrable processing, and forwarding said received data unit from a first communications interface to a second communications interface for transmission from said networking device; and
a microprocessor based subsystem for performing said deferrable processing, at least in part, after said forwarding of said received data unit by said packet processing logic, and wherein said deferrable processing includes determining a level of network performance in response to said stored portion of said received data unit.
-
Specification