US6704794B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Cell reassembly for packet based networks
Assignee: Nokia Solutions and Networks Oy
•
Filing: 2000-03-03
•
Granted: 2004-03-09
•
Expires: 2020-03-03
Abstract
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.
Inventors
- 👤 Prabhas Kejriwal
- 👤 Chi Fai Ho
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 20:12
CPC Classifications
H; H04; H04L; H04L9/00; H04L9/40; H04L69/00; H04L69/22; H04L69/30; H04L69/32; H04L69/322; H04L69/325
Claims Analysis
Total Claims: 82
Claim 1
Independent Claim
160 words
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.
Claim 2
Independent Claim
160 words
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.
Claim 3
Dependent Claim
86 words
The apparatus of claim 1 further comprising first register space and second register space, said first register space to store information that identifies a connection over which said cell arrived, said second register space to store information that identifies a connection over which said next cell arrived, said register to provide said packet state information back to said pipeline stage if the contents of said first and second register spaces indicate the same connection so as to indicate said next cell is also said following cell.
Claim 4
Dependent Claim
46 words
The apparatus of claim 2 wherein said first register space is accessible to a first pipeline stage that precedes said pipeline stage in said pipeline, and wherein, said second register space is accessible to a third pipeline stage that follows said pipeline stage in said pipeline.
Claim 5
Dependent Claim
60 words
The apparatus of claim 3 wherein said first and third pipeline stages are coupled to a memory, said memory to store packet state information determined by said pipeline stage upon its being sent from said third pipeline stage, said memory to provide said packet state information to said first pipeline stage upon said following cell being presented to said pipeline.
Claim 6
Dependent Claim
61 words
The apparatus of claim 4 wherein said memory is to further to store, along with said packet state information, said packet header portion parsed by said pipeline stage upon its being sent from said third pipeline stage, said memory to also provide said packet header portion to said first pipeline stage upon said following cell being said presented to said pipeline.
Claim 7
Dependent Claim
40 words
The apparatus of claim 5 further comprising a second memory coupled to said first stage, said second memory to provide said information that identifies a connection over which said cell arrived in response to a parameter associated with said cell.
Claim 8
Dependent Claim
12 words
The apparatus of claim 6 wherein said parameter is said cell's VPI/VCI.
Claim 9
Dependent Claim
15 words
The apparatus of claim 7 wherein said second memory is a content addressable memory (CAM).
Claim 10
Dependent Claim
85 words
The apparatus of claim 1 further comprising a first pipeline stage that precedes said pipeline stage in said pipeline and a third pipeline stage that follows said pipeline stage in said pipeline, said first and third pipeline stages coupled to a memory, said memory to store packet state information determined by said pipeline stage upon its being sent from said third pipeline stage, said memory to provide said packet state information to said first pipeline stage upon said following cell being presented to said pipeline.
Claim 11
Dependent Claim
61 words
The apparatus of claim 9 wherein said memory is to further to store, along with said packet state information, said packet header portion parsed by said pipeline stage upon its being sent from said third pipeline stage, said memory to also provide said packet header portion to said first pipeline stage upon said following cell being said presented to said pipeline.
Claim 12
Dependent Claim
39 words
The apparatus of claim 9 further comprising a second memory coupled to said first stage, said second memory to provide information that identifies a connection over which said cell arrived in response to a parameter associated with said cell.
Claim 13
Dependent Claim
11 words
The apparatus of claim 11 said parameter is said cell's VPI/VCI.
Claim 14
Dependent Claim
15 words
The apparatus of claim 11 wherein said second memory is a content addressable memory (CAM).
Claim 15
Dependent Claim
31 words
The apparatus of claim 1 wherein said packet state information includes a cell count that tracks how many cells of said packet have been evaluated for parsing by said pipeline stage.
Claim 16
Dependent Claim
27 words
The apparatus of claim 1 further comprising a micro-program memory coupled to said sequencer, said micro-program memory to store micro-programs that are executable by said pipeline stage.
Claim 17
Dependent Claim
31 words
The apparatus of claim 15 wherein at least one of said micro-programs is to be executed by said pipeline stage for cells carrying a portion of a specific type of packet.
Claim 18
Dependent Claim
13 words
The apparatus of claim 16 wherein said specific type of packet is IP.
Claim 19
Dependent Claim
13 words
The apparatus of claim 16 wherein said specific type of packet is MPLS.
Claim 20
Dependent Claim
14 words
The apparatus of claim 16 wherein said specific type of packet is Frame Relay.
Claim 21
Dependent Claim
13 words
The apparatus of claim 16 wherein said specific type of packet is AAL0.
Claim 22
Dependent Claim
13 words
The apparatus of claim 16 wherein said specific type of packet is AAL5.
Claim 23
Dependent Claim
15 words
The apparatus of claim 16 wherein said specific type of packet is Packet Over SONET.
Claim 24
Dependent Claim
42 words
The apparatus of claim 22 wherein said at least one of said micro-programs contains instructions sufficient for said pipeline stage to determine at least one of the following: a) a length indicator; b) a timestamp insert flag; c) a record route flag.
Claim 25
Dependent Claim
61 words
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.
Claim 26
Dependent Claim
34 words
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.
Claim 27
Dependent Claim
56 words
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.
Claim 28
Dependent Claim
71 words
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.
Claim 29
Dependent Claim
17 words
The apparatus of claim 1 wherein said pipeline stage does not said parse for Layer 2 flows.
Claim 30
Independent Claim
131 words
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.
Claim 31
Independent Claim
131 words
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.
Claim 32
Dependent Claim
21 words
The method of claim 29 further comprising within said first cycle: looking up a connection that said next cell arrived on.
Claim 33
Dependent Claim
23 words
The method of claim 30 wherein an input parameter for said looking up employs at least a portion of said next cell's header.
Claim 34
Dependent Claim
23 words
The method of claim 30 wherein said recognizing further comprises recognizing that said connection is the same connection that said cell arrived on.
Claim 35
Dependent Claim
23 words
The method of claim 29 further comprising executing a micro program to perform said parsing and said determining within said first pipeline cycle.
Claim 36
Dependent Claim
18 words
The method of claim 33 wherein said micro program is specific to the specific type of said packet.
Claim 37
Dependent Claim
13 words
The method of claim 34 wherein said specific type of packet is IP.
Claim 38
Dependent Claim
13 words
The method of claim 34 wherein said specific type of packet is MPLS.
Claim 39
Dependent Claim
14 words
The method of claim 34 wherein said specific type of packet is Frame Relay.
Claim 40
Dependent Claim
13 words
The method of claim 34 wherein said specific type of packet is AAL0.
Claim 41
Dependent Claim
13 words
The method of claim 34 wherein said specific type of packet is AAL5.
Claim 42
Dependent Claim
15 words
The method of claim 34 wherein said specific type of packet is Packet Over SONET.
Claim 43
Dependent Claim
37 words
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.
Claim 44
Dependent Claim
27 words
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.
Claim 45
Dependent Claim
22 words
The method of claim 42 further comprising performing said writing during a third pipeline cycle that immediately follows said second pipeline cycle.
Claim 46
Dependent Claim
49 words
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.
Claim 47
Dependent Claim
21 words
The method of claim 44 further comprising writing said updated packet state information into a memory during said third pipeline cycle.
Claim 48
Dependent Claim
38 words
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.
Claim 49
Dependent Claim
15 words
The method of claim 46 where said term at least includes said cell's VPI/VCI information.
Claim 50
Dependent Claim
49 words
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.
Claim 51
Dependent Claim
21 words
The method of claim 48 further comprising writing said updated packet state information into a memory during said third pipeline cycle.
Claim 52
Dependent Claim
38 words
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.
Claim 53
Dependent Claim
15 words
The method of claim 50 where said term at least includes said cell's VPI/VCI information.
Claim 54
Independent Claim
129 words
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.
Claim 55
Independent Claim
129 words
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.
Claim 56
Dependent Claim
23 words
The apparatus of claim 52 further comprising means for, within said first cycle, looking up a connection that said next cell arrived on.
Claim 57
Dependent Claim
38 words
The apparatus of claim 52 further comprising means for retrieving, within said first 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.
Claim 58
Dependent Claim
28 words
The apparatus of claim 52 further comprising means for writing said updated packet state information into a memory during a third cycle that immediately follows said second cycle.
Claim 59
Dependent Claim
50 words
The apparatus of claim 52 further comprising means for, during said second 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.
Claim 60
Dependent Claim
28 words
The apparatus of claim 56 further comprising means for writing said updated packet state information into a memory during a third cycle that immediately follows said second cycle.
Claim 61
Dependent Claim
174 words
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.
Claim 62
Dependent Claim
174 words
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.
Claim 63
Dependent Claim
91 words
The machine readable medium of claim 58 wherein said circuit further comprises first register space and second register space, said first register space to store information that identifies a connection over which said cell arrived, said second register space to store information that identifies a connection over which said next cell arrived, said register to provide said packet state information back to said pipeline stage if the contents of said first and second register spaces indicate the same connection so as to indicate said next cell is also said following cell.
Claim 64
Dependent Claim
48 words
The machine readable medium of claim 59 wherein said first register space is accessible to a first pipeline stage that precedes said pipeline stage in said pipeline, and wherein, said second register space is accessible to a third pipeline stage that follows said pipeline stage in said pipeline.
Claim 65
Dependent Claim
15 words
The machine readable medium of claim 58 of wherein said circuit is described in VHDL.
Claim 66
Dependent Claim
18 words
The machine readable medium of claim 58 wherein said circuit is described at a Register Transfer Level (RTL).
Claim 67
Dependent Claim
174 words
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.
Claim 68
Dependent Claim
174 words
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.
Claim 69
Dependent Claim
92 words
The networking system of claim 63 wherein said packet aggregation layer further comprises first register space and second register space, said first register space to store information that identifies a connection over which said cell arrived, said second register space to store information that identifies a connection over which said next cell arrived, said register to provide said packet state information back to said pipeline stage if the contents of said first and second register spaces indicate the same connection so as to indicate said next cell is also said following cell.
Claim 70
Dependent Claim
47 words
The networking system of claim 64 wherein said first register space is accessible to a first pipeline stage that precedes said pipeline stage in said pipeline, and wherein, said second register space is accessible to a third pipeline stage that follows said pipeline stage in said pipeline.
Claim 71
Dependent Claim
61 words
The networking system of claim 65 wherein said first and third pipeline stages are coupled to a memory, said memory to store packet state information determined by said pipeline stage upon its being sent from said third pipeline stage, said memory to provide said packet state information to said first pipeline stage upon said following cell being presented to said pipeline.
Claim 72
Dependent Claim
62 words
The networking system of claim 66 wherein said memory is to further to store, along with said packet state information, said packet header portion parsed by said pipeline stage upon its being sent from said third pipeline stage, said memory to also provide said packet header portion to said first pipeline stage upon said following cell being said presented to said pipeline.
Claim 73
Dependent Claim
41 words
The networking system of claim 67 further comprising a second memory coupled to said first stage, said second memory to provide said information that identifies a connection over which said cell arrived in response to a parameter associated with said cell.
Claim 74
Dependent Claim
13 words
The networking system of claim 68 wherein said parameter is said cell's VPI/VCI.
Claim 75
Dependent Claim
16 words
The networking system of claim 69 wherein said second memory is a content addressable memory (CAM).
Claim 76
Dependent Claim
86 words
The networking system of claim 63 further comprising a first pipeline stage that precedes said pipeline stage in said pipeline and a third pipeline stage that follows said pipeline stage in said pipeline, said first and third pipeline stages coupled to a memory, said memory to store packet state information determined by said pipeline stage upon its being sent from said third pipeline stage, said memory to provide said packet state information to said first pipeline stage upon said following cell being presented to said pipeline.
Claim 77
Dependent Claim
62 words
The networking system of claim 71 wherein said memory is to further to store, along with said packet state information, said packet header portion parsed by said pipeline stage upon its being sent from said third pipeline stage, said memory to also provide said packet header portion to said first pipeline stage upon said following cell being said presented to said pipeline.
Claim 78
Dependent Claim
32 words
The networking system of claim 63 wherein said packet state information includes a cell count that tracks how many cells of said packet have been evaluated for parsing by said pipeline stage.
Claim 79
Dependent Claim
28 words
The networking system of claim 63 further comprising a micro-program memory coupled to said sequencer, said micro-program memory to store micro-programs that are executable by said pipeline stage.
Claim 80
Dependent Claim
32 words
The networking system of claim 74 wherein at least one of said micro-programs is to be executed by said pipeline stage for cells carrying a portion of a specific type of packet.
Claim 81
Dependent Claim
43 words
The networking system of claim 74 wherein said at least one of said micro-programs contains instructions sufficient for said pipeline stage to determine at least one of the following: a) a length indicator; b) a timestamp insert flag; c) a record route flag.
Claim 82
Dependent Claim
62 words
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.
References Cited (Backward Citations)
US5311509A
Cited
US5329623A
Cited
US5794073A
Cited
US5537403A
Cited
US6426957B1
Cited
US6147996A
Cited
US5892761A
Cited
US5781549A
Cited
US5841772A
Cited
US5745488A
Cited
US6377583B1
Cited
US5841874A
Cited
US5831980A
Cited
US6088355A
Cited
US5999518A
Cited
US20020010793A1
Cited
US6377574B1
Cited
US6389031B1
Cited
US6122274A
Cited
US6259699B1
Cited
US6324164B1
Cited
US6310893B1
Cited
US6421342B1
Cited
US6173386B1
Cited
US6046677A
Cited
US6510509B1
Cited
US20020099855A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2007-03-09 | 2007-09-08 | 2008-03-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2011-03-09 | 2011-09-08 | 2012-03-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2015-03-09 | 2015-09-08 | 2016-03-09 | $7700.00 | Window Closed / Lapsed |