Cell reassembly for packet based networks
First Claim
Patent Images
1. An apparatus, comprising:
- a cell processing pipeline comprising a plurality of pipeline stages, said cell processing pipeline further comprising a pipeline stage to, within a pipeline cycle, 1) parse a payload of a cell if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
2) determine packet state information, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information;
said pipeline stage further comprising, to said parse and to said determine, a micro program sequencer and an execution unit coupled to said micro program sequencer, said pipeline stage coupled to a register, said register to provide said packet state information back to said pipeline stage if a next cell to be evaluated for parsing by said pipeline stage within a next pipeline cycle after said pipeline cycle is also said following cell.
8 Assignments
0 Petitions
Accused Products
Abstract
A cell processing pipeline is described having a plurality of stages for cell reassembly. The cell has a cell header and a cell payload. One of the stages is configured to parse packet header information located within the cell payload.
-
Citations
77 Claims
-
1. An apparatus, comprising:
-
a cell processing pipeline comprising a plurality of pipeline stages, said cell processing pipeline further comprising a pipeline stage to, within a pipeline cycle, 1) parse a payload of a cell if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
2) determine packet state information, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information;
said pipeline stage further comprising, to said parse and to said determine, a micro program sequencer and an execution unit coupled to said micro program sequencer, said pipeline stage coupled to a register, said register to provide said packet state information back to said pipeline stage if a next cell to be evaluated for parsing by said pipeline stage within a next pipeline cycle after said pipeline cycle is also said following cell. - 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, 25, 26, 27, 28)
a) a length indicator;
b) a timestamp insert flag;
c) a record route flag.
-
-
24. The apparatus of claim 1 wherein said pipeline stage further comprises an interface to a free space lists manager so that a pointer can be retrieved within said pipeline cycle, said pointer to point to a location in a packet buffer where payload information (if any) of said packet carried by said following cell will be written into said packet buffer.
-
25. The apparatus of claim 24 further comprising register space accessible to said pipeline stage to which said pipeline stage provides said pointer, said packet state information and any parsed portion of said packet'"'"'s header.
-
26. The apparatus of claim 24 wherein said pipeline further comprises a following pipeline stage relative to said pipeline stage, said following pipeline stage coupled to said packet buffer so that said packet payload information (if any) carried by said following cell can be written to said location in said packet buffer pointed to by said pointer.
-
27. The apparatus of claim 26 further comprising another pipeline stage that precedes said pipeline stage in said pipeline, said following and another pipeline stages coupled to a memory, said memory to store packet state information determined by said pipeline stage upon its being sent from said following pipeline stage, said memory to provide said packet state information to said another pipeline stage upon said following cell being presented to said pipeline.
-
28. The apparatus of claim 1 wherein said pipeline stage does not said parse for Layer 2 flows.
-
29. A method, comprising:
-
a) within a first cycle of a pipeline;
parsing a cell payload if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
determining packet state information for said packet, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information; and
,b) within a second cycle of said pipeline that immediately follows said first cycle and as a consequence of recognizing that a next cell that immediately follows said cell in the processing sequences of said pipeline is said following cell;
using said packet state information to determine whether or not said next cell carries a portion of said packet'"'"'s header. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
looking up a connection that said next cell arrived on.
-
-
31. The method of claim 30 wherein an input parameter for said looking up employs at least a portion of said next cell'"'"'s header.
-
32. The method of claim 30 wherein said recognizing further comprises recognizing that said connection is the same connection that said cell arrived on.
-
33. The method of claim 29 further comprising executing a micro program to perform said parsing and said determining within said first pipeline cycle.
-
34. The method of claim 33 wherein said micro program is specific to the specific type of said packet.
-
35. The method of claim 34 wherein said specific type of packet is IP.
-
36. The method of claim 34 wherein said specific type of packet is MPLS.
-
37. The method of claim 34 wherein said specific type of packet is Frame Relay.
-
38. The method of claim 34 wherein said specific type of packet is AAL0.
-
39. The method of claim 34 wherein said specific type of packet is AAL5.
-
40. The method of claim 34 wherein said specific type of packet is Packet Over SONET.
-
41. The method of claim 29 further comprising retrieving, within said first pipeline cycle, a pointer that identifies where payload information (if any) of said packet carried by said following cell will be written into a buffer memory.
-
42. The method of claim 41 further comprising writing payload information of said packet carried by said following cell into said buffer memory after said second pipeline cycle.
-
43. The method of claim 42 further comprising performing said writing during a third pipeline cycle that immediately follows said second pipeline cycle.
-
44. The method of claim 43 further comprising, during said second pipeline cycle, updating said packet state information for said packet, so that, it can be determined whether or not a second following cell that carries a second next portion of said packet carries a portion of said packet'"'"'s header.
-
45. The method of claim 44 further comprising writing said updated packet state information into a memory during said third pipeline cycle.
-
46. The method of claim 45 further comprising looking up said updated packet state information with a term associated with said second following cell as a consequence of said second following cell being presented to said pipeline for processing.
-
47. The method of claim 46 where said term at least includes said cell'"'"'s VPI/VCI information.
-
48. The method of claim 29 further comprising, during said second pipeline cycle, updating said packet state information for said packet, so that, it can be determined whether or not a second following cell that carries a second next portion of said packet carries a portion of said packet'"'"'s header.
-
49. The method of claim 48 further comprising writing said updated packet state information into a memory during said third pipeline cycle.
-
50. The method of claim 49 further comprising looking up said updated packet state information with a term associated with said second following cell as a consequence of said second following cell being presented to said pipeline for processing.
-
51. The method of claim 50 where said term at least includes said cell'"'"'s VPI/VCI information.
-
52. An apparatus, comprising:
-
a) means for, within a first cycle, parsing a cell payload if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
determining packet state information for said packet, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information; and
,b) means for, within a second cycle that immediately follows said first cycle and as a consequence of recognizing that a next cell that immediately follows said cell in a series of pipelined processing sequences is said following cell, using said packet state information to determine whether or not said next cell carries a portion of said packet'"'"'s header. - View Dependent Claims (53, 54, 55, 56, 57)
-
-
58. A machine readable medium containing a description of a design for a semiconductor circuit, said circuit comprising:
-
a cell processing pipeline comprising a plurality of pipeline stages, said cell processing pipeline further comprising a pipeline stage to, within a pipeline cycle, 1) parse a payload of a cell if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
2) determine packet state information, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information;
said pipeline stage further comprising, to said parse and to said determine, a micro program sequencer and an execution unit coupled to said micro program sequencer, said pipeline stage coupled to a register, said register to provide said packet state information back to said pipeline stage if a next cell to be evaluated for parsing by said pipeline stage within a next pipeline cycle after said pipeline cycle is also said following cell. - View Dependent Claims (59, 60, 61, 62)
-
-
63. A networking system, comprising:
-
a packet aggregation layer to perform cell reassembly, said packet aggregation layer comprising;
a cell processing pipeline comprising a plurality of pipeline stages, said cell processing pipeline further comprising a pipeline stage to, within a pipeline cycle, 1) parse a payload of a cell if said cell payload carries a portion of a packet'"'"'s header and a portion of said packet'"'"'s payload;
2) determine packet state information, where, whether or not a following cell that carries a next portion of said packet carries a portion of said packet'"'"'s header can be determined from said packet state information;
said pipeline stage further comprising, to said parse and to said determine, a micro program sequencer and an execution unit coupled to said micro program sequencer, said pipeline stage coupled to a register, said register to provide said packet state information back to said pipeline stage if a next cell to be evaluated for parsing by said pipeline stage within a next pipeline cycle after said pipeline cycle is also said following cell. - View Dependent Claims (64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77)
a) a length indicator;
b) a timestamp insert flag;
c) a record route flag.
-
-
77. The networking system of claim 63 wherein said pipeline stage further comprises an interface to a free space lists manager so that a pointer can be retrieved within said pipeline cycle, said pointer to point to a location in a packet buffer where payload information (if any) of said packet carried by said following cell will be written into said packet buffer.
Specification