Patent US6650640B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6650640B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for managing a network flow in a high performance network interface

Assignee: Oracle America Inc
•
Filing: 1999-03-01
•
Granted: 2003-11-18
•
Expires: 2019-03-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method are provided for managing information concerning a network flow comprising packets sent from a source entity to a destination entity served by a network interface. A network flow is established for each datagram sent from the source entity to the destination entity. A flow key, identifying the source and destination entities, is stored in a data structure along with information concerning validity of the flow, sequence of data in the flow datagram and how recently the flow was active. Once a flow is established, it is updated each time a packet containing data from the flow's datagram is received. When such a packet is received, an operation code is generated for identifying whether the packet is suitable for a particular network interface function. An operation code may, for example, indicate that a packet contains data to be re-assembled with other data from the same flow. Another operation code may indicate that a packet is not suitable for data re-assembly. Another operation code may specify that the packet is simply a control packet, has no data, or that the packet was received out of order.

Inventors

  • 👤 Shimon Muller
  • 👤 Denton E. Gentry, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 20:17
CPC Classifications
H; H04; H04L; H04L49/00; H04L49/90; H04L49/9063; H04L49/60; H04L49/602; H04L49/901; H04L49/9084; H04L49/9089; H04L49/9094; H04L49/20; H04L49/201; H04L49/30; H04L49/3009; H04L49/3018; H04L49/35; H04L49/351; H04L49/354; H04L69/00; H04L69/22

Claims Analysis

Total Claims: 69
Claim 1
Independent Claim 105 words
A method of managing a communication flow comprising one or more packets received by a network interface, the method comprising: identifying a flow index of a packet received at a network interface, wherein said flow index identifies a communication flow comprising said packet; searching a flow database for a flow record comprising said flow index; at a flow database manager, generating an operation code representing an eligibility of said packet for one or more predetermined processes; and forwarding said operation code to a reassembly engine configured to reassemble a data portion of the packet with a data portion of another packet in the communication flow.
Claim 2
Independent Claim 105 words
A method of managing a communication flow comprising one or more packets received by a network interface, the method comprising: identifying a flow index of a packet received at a network interface, wherein said flow index identifies a communication flow comprising said packet; searching a flow database for a flow record comprising said flow index; at a flow database manager, generating an operation code representing an eligibility of said packet for one or more predetermined processes; and forwarding said operation code to a reassembly engine configured to reassemble a data portion of the packet with a data portion of another packet in the communication flow.
Claim 3
Dependent Claim 12 words
The method of claim 1 , further comprising storing said operation code.
Claim 4
Dependent Claim 18 words
The method of claim 1 , further comprising receiving packet information extracted from a header of said packet.
Claim 5
Dependent Claim 17 words
The method of claim 3 , wherein said packet information comprises a sequence number of said packet.
Claim 6
Dependent Claim 23 words
The method of claim 3 , wherein said packet information comprises an indicator configured to indicate whether said packet includes a data portion.
Claim 7
Dependent Claim 28 words
The method of claim 3 , wherein said packet information comprises an identifier of a source of said packet and an identifier of a destination of said packet.
Claim 8
Dependent Claim 12 words
The method of claim 1 , further comprising updating said flow record.
Claim 9
Dependent Claim 19 words
The method of claim 7 , wherein said updating comprises incrementing a flow activity indicator in said flow record.
Claim 10
Dependent Claim 20 words
The method of claim 8 , wherein said updating further comprises modifying a flow sequence number in said flow record.
Claim 11
Dependent Claim 35 words
The method of claim 1 , further comprising adding a flow record to said flow database comprising said flow index if a flow record comprising said flow index is not found in said flow database.
Claim 12
Dependent Claim 12 words
The method of claim 1 , further comprising replacing said flow record.
Claim 13
Dependent Claim 28 words
The method of claim 1 , wherein said identifying comprises receiving said flow index from a network interface module configured to examine a header portion of said packet.
Claim 14
Dependent Claim 44 words
The method of claim 1 , wherein said generating comprises: determining whether said packet is suitable for a function that said network interface is configured to perform; and assigning an operation code for said packet to indicate whether said function is to be performed.
Claim 15
Dependent Claim 19 words
The method of claim 13 , wherein said generating further comprises determining whether said packet includes a data portion.
Claim 16
Dependent Claim 20 words
The method of claim 14 , wherein said generating further comprises determining whether said data portion exceeds a pre-determined size.
Claim 17
Dependent Claim 20 words
The method of claim 13 , wherein said generating further comprises determining whether said packet was received out of order.
Claim 18
Dependent Claim 18 words
The method of claim 13 , wherein said generating further comprises determining whether said flow database is full.
Claim 19
Dependent Claim 74 words
The method of claim 1 , further comprising: determining whether said flow database is full; for each flow record in said flow database, examining a flow activity indicator configured to indicate a recency of traffic in an associated communication flow; selecting an aged flow record having a flow activity indicator indicating least recent traffic among said associated communication flows; and replacing said aged flow record with a new flow record comprising said flow index.
Claim 20
Independent Claim 148 words
A method of managing a communication flow comprising a collection of data directed from a source entity to a destination entity, the method comprising: receiving a first packet at a network interface, said first packet comprising a first portion of a collection of data; identifying a first flow key, said first flow key comprising an identifier of a source of said first packet and an identifier of a destination of said first packet; setting up a first communication flow for said collection of data, wherein said first communication flow is identifiable by said first flow key; and assigning an operation code to said first packet, said operation code indicating whether said first portion of data is reassembleable with another portion of data in said collection of data; wherein said first communication flow is configured to be terminated after said collection of data is received at said network interface.
Claim 21
Independent Claim 148 words
A method of managing a communication flow comprising a collection of data directed from a source entity to a destination entity, the method comprising: receiving a first packet at a network interface, said first packet comprising a first portion of a collection of data; identifying a first flow key, said first flow key comprising an identifier of a source of said first packet and an identifier of a destination of said first packet; setting up a first communication flow for said collection of data, wherein said first communication flow is identifiable by said first flow key; and assigning an operation code to said first packet, said operation code indicating whether said first portion of data is reassembleable with another portion of data in said collection of data; wherein said first communication flow is configured to be terminated after said collection of data is received at said network interface.
Claim 22
Dependent Claim 61 words
The method of claim 19 , further comprising: receiving a second packet at said network interface, said second packet comprising a second portion of said collection of data; determining whether said second portion of said collection of data comprises a final portion of said collection of data; and terminating said first communication flow if said second portion comprises said final portion.
Claim 23
Dependent Claim 28 words
The method of claim 20 , wherein said setting up comprises: storing said first flow key in a database; and indicating that said first communication flow is valid.
Claim 24
Dependent Claim 17 words
The method of claim 21 , wherein said indicating comprises configuring a validity indicator in said database.
Claim 25
Dependent Claim 23 words
The method of claim 22 , wherein said terminating comprises modifying said validity indicator to indicate that said first communication flow is invalid.
Claim 26
Dependent Claim 18 words
The method of claim 21 , wherein said terminating comprises removing said first flow key from said database.
Claim 27
Dependent Claim 36 words
The method of claim 19 , further comprising: receiving a second packet at said network interface; and associating an operation code with said second packet to indicate whether said first communication flow is to be terminated.
Claim 28
Dependent Claim 36 words
The method of claim 25 , wherein said associating comprises: receiving information extracted from a header portion of said second packet; and examining said information to determine whether said first communication flow is to be terminated.
Claim 29
Dependent Claim 45 words
The method of claim 26 , wherein said associating further comprises examining said information to determine whether a second communication flow is to be established and whether a data portion of said second packet is to be re-assembled with a data portion of another packet.
Claim 30
Independent Claim 93 words
A method of managing a network flow received at a network interface, comprising: parsing a packet received at a network interface; assembling a flow identifier configured to identify a network flow comprising said packet; searching a flow database on said network interface for said flow identifier; updating a flow sequence number in a flow database record comprising said flow identifier; setting a flow activity indicator in said flow database record to reflect receipt of said packet; and setting a flow validity indicator in said flow database to indicate said network flow is valid.
Claim 31
Independent Claim 93 words
A method of managing a network flow received at a network interface, comprising: parsing a packet received at a network interface; assembling a flow identifier configured to identify a network flow comprising said packet; searching a flow database on said network interface for said flow identifier; updating a flow sequence number in a flow database record comprising said flow identifier; setting a flow activity indicator in said flow database record to reflect receipt of said packet; and setting a flow validity indicator in said flow database to indicate said network flow is valid.
Claim 32
Independent Claim 146 words
A method of processing a packet received at a network interface, comprising: receiving a packet at a network interface, wherein said packet was sent from a source entity to a destination entity; parsing said packet to identify a flow between said source entity and said destination entity that comprises said packet; receiving a status indicator extracted from said packet; searching a flow database for said flow; generating an operation code based on said status indicator, wherein said operation code is configured to: indicate whether said packet is a control packet; and indicate whether a header portion of said packet conforms to one of a set of pre-selected communication protocols; and updating said flow database by: updating a flow activity indicator associated with said flow to reflect receipt of said packet; and updating a flow validity indicator associated with said flow to indicate said flow is valid.
Claim 33
Independent Claim 146 words
A method of processing a packet received at a network interface, comprising: receiving a packet at a network interface, wherein said packet was sent from a source entity to a destination entity; parsing said packet to identify a flow between said source entity and said destination entity that comprises said packet; receiving a status indicator extracted from said packet; searching a flow database for said flow; generating an operation code based on said status indicator, wherein said operation code is configured to: indicate whether said packet is a control packet; and indicate whether a header portion of said packet conforms to one of a set of pre-selected communication protocols; and updating said flow database by: updating a flow activity indicator associated with said flow to reflect receipt of said packet; and updating a flow validity indicator associated with said flow to indicate said flow is valid.
Claim 34
Dependent Claim 19 words
The method of claim 29 , wherein said generating comprises determining whether said status indicator has a predetermined value.
Claim 35
Dependent Claim 18 words
The method of claim 29 , wherein said generating comprises determining whether said packet includes a data portion.
Claim 36
Dependent Claim 22 words
The method of claim 29 , wherein said generating comprises determining whether a data portion of said packet exceeds a predetermined size.
Claim 37
Dependent Claim 31 words
The method of claim 29 , wherein said generating comprises determining whether a sequence number of said packet correlates with a sequence number associated with said flow in said flow database.
Claim 38
Dependent Claim 21 words
The method of claim 29 , wherein said generating comprises determining whether said packet comprises a request to reset a flow.
Claim 39
Dependent Claim 15 words
The method of claim 29 , further comprising determining whether said flow database is full.
Claim 40
Dependent Claim 28 words
The method of claim 29 , wherein said parsing comprises assembling a flow key configured to identify a communication flow between said source entity and said destination entity.
Claim 41
Dependent Claim 18 words
The method of claim 36 , wherein said searching comprises searching a flow database for said flow key.
Claim 42
Dependent Claim 178 words
A network interface for receiving a communication flow from a network, comprising: a parser for examining a header portion of a first packet received from a network, said first packet comprising a first portion of data transmitted from a source entity to a destination entity; a data structure comprising: a flow key for identifying said communication flow, wherein said flow key comprises identifiers of said source entity and said destination entity; an activity indicator for indicating a recency with which a packet in said communication flow has been received; and a validity indicator for indicating whether said communication flow is valid; a data manager for managing said data structure; and a generator configured to generate an operation code for every packet in said communication flow, to facilitate forwarding of said data toward the destination entity from the network interface; wherein said data manager establishes said communication flow and stores said flow key in said data structure upon receipt of said first portion of data, and terminates said communication flow upon receipt of a final portion of said data.
Claim 43
Dependent Claim 178 words
A network interface for receiving a communication flow from a network, comprising: a parser for examining a header portion of a first packet received from a network, said first packet comprising a first portion of data transmitted from a source entity to a destination entity; a data structure comprising: a flow key for identifying said communication flow, wherein said flow key comprises identifiers of said source entity and said destination entity; an activity indicator for indicating a recency with which a packet in said communication flow has been received; and a validity indicator for indicating whether said communication flow is valid; a data manager for managing said data structure; and a generator configured to generate an operation code for every packet in said communication flow, to facilitate forwarding of said data toward the destination entity from the network interface; wherein said data manager establishes said communication flow and stores said flow key in said data structure upon receipt of said first portion of data, and terminates said communication flow upon receipt of a final portion of said data.
Claim 44
Dependent Claim 115 words
A network interface, comprising: a database configured to facilitate management of a network flow, said network flow comprising one or more packets sent from a source entity to a destination entity, said database comprising: a flow key configured to identify said network flow; and a validity indicator configured to indicate whether said network flow is valid; a database manager configured to manage said database; and an operation code generator configured to generate an operation code for every packet within said network flow, wherein said operation code is configured to specify an operation to be performed with said packet; wherein said database manager receives said flow key and updates said database when said packet is received.
Claim 45
Dependent Claim 115 words
A network interface, comprising: a database configured to facilitate management of a network flow, said network flow comprising one or more packets sent from a source entity to a destination entity, said database comprising: a flow key configured to identify said network flow; and a validity indicator configured to indicate whether said network flow is valid; a database manager configured to manage said database; and an operation code generator configured to generate an operation code for every packet within said network flow, wherein said operation code is configured to specify an operation to be performed with said packet; wherein said database manager receives said flow key and updates said database when said packet is received.
Claim 46
Dependent Claim 30 words
The network interface of claim 39 , further comprising: a control memory; wherein said database manager further stores said operation code in said control memory when said packet is received.
Claim 47
Dependent Claim 16 words
The network interface of claim 39 , wherein said database manager comprises said operation code generator.
Claim 48
Dependent Claim 126 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a network flow database storing information relating to a network flow received by a network interface, the method comprising: identifying a flow index of a packet received at a network interface, wherein said flow index identifies a communication flow comprising said packet; searching a flow database for a flow record comprising said flow index; at a flow database manager, generating an operation code representing an eligibility of said packet for one or more predetermined processes; and forwarding said operation code to a reassembly engine configured to reassemble a data portion of the packet with a data portion of another packet in the communication flow.
Claim 49
Dependent Claim 126 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a network flow database storing information relating to a network flow received by a network interface, the method comprising: identifying a flow index of a packet received at a network interface, wherein said flow index identifies a communication flow comprising said packet; searching a flow database for a flow record comprising said flow index; at a flow database manager, generating an operation code representing an eligibility of said packet for one or more predetermined processes; and forwarding said operation code to a reassembly engine configured to reassemble a data portion of the packet with a data portion of another packet in the communication flow.
Claim 50
Dependent Claim 30 words
The network interface of claim 39 , wherein said database further comprises an activity indicator for indicating a recency with which a packet in said network flow has been received.
Claim 51
Dependent Claim 33 words
The method of claim 1 , wherein said one or more predetermined processes include reassembly of a data portion of the packet with a data portion of another packet in the communication flow.
Claim 52
Dependent Claim 28 words
The method of claim 1 , wherein said one or more predetermined processes include batch processing of headers of multiple packets in the communication flow, including the packet.
Claim 53
Dependent Claim 25 words
The method of claim 1 , wherein said one or more predetermined processes include distributing packets of different communication flows to different host computer processors.
Claim 54
Dependent Claim 31 words
The method of claim 1 , further comprising forwarding said operation code to a packet batching module configured to facilitate batch processing of headers of multiple packets in the communication flow.
Claim 55
Dependent Claim 166 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a communication flow comprising a collection of data directed from a source entity to a destination entity, the method comprising: receiving a first packet at a network interface, said first packet comprising a first portion of a collection of data; identifying a first flow key, said first flow key comprising an identifier of a source of said first packet and an identifier of a destination of said first packet; setting up a first communication flow for said collection of data, wherein said first communication flow is identifiable by said first flow key; and assigning an operation code to said first packet, said operation code indicating whether said first portion of data is reassembleable with another portion of data in said collection of data; wherein said first communication flow is configured to be terminated after said collection of data is received at said network interface.
Claim 56
Dependent Claim 166 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a communication flow comprising a collection of data directed from a source entity to a destination entity, the method comprising: receiving a first packet at a network interface, said first packet comprising a first portion of a collection of data; identifying a first flow key, said first flow key comprising an identifier of a source of said first packet and an identifier of a destination of said first packet; setting up a first communication flow for said collection of data, wherein said first communication flow is identifiable by said first flow key; and assigning an operation code to said first packet, said operation code indicating whether said first portion of data is reassembleable with another portion of data in said collection of data; wherein said first communication flow is configured to be terminated after said collection of data is received at said network interface.
Claim 57
Dependent Claim 166 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of processing a packet received at a network interface, the method comprising: receiving a packet at a network interface, wherein said packet was sent from a source entity to a destination entity; parsing said packet to identify a flow between said source entity and said destination entity that comprises said packet; receiving a status indicator extracted from said packet; searching a flow database for said flow; generating an operation code based on said status indicator, wherein said operation code is configured to: indicate whether said packet is a control packet; and indicate whether a header portion of said packet conforms to one of a set of pre-selected communication protocols; and updating said flow database by: updating a flow activity indicator associated with said flow to reflect receipt of said packet; and updating a flow validity indicator associated with said flow to indicate said flow is valid.
Claim 58
Dependent Claim 166 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of processing a packet received at a network interface, the method comprising: receiving a packet at a network interface, wherein said packet was sent from a source entity to a destination entity; parsing said packet to identify a flow between said source entity and said destination entity that comprises said packet; receiving a status indicator extracted from said packet; searching a flow database for said flow; generating an operation code based on said status indicator, wherein said operation code is configured to: indicate whether said packet is a control packet; and indicate whether a header portion of said packet conforms to one of a set of pre-selected communication protocols; and updating said flow database by: updating a flow activity indicator associated with said flow to reflect receipt of said packet; and updating a flow validity indicator associated with said flow to indicate said flow is valid.
Claim 59
Dependent Claim 18 words
The method of claim 28 , wherein said flow sequence number comprises a sequence number of said packet.
Claim 60
Dependent Claim 22 words
The method of claim 28 , wherein said flow activity indicator is configured to indicate how recently said network flow was active.
Claim 61
Dependent Claim 19 words
The method of claim 28 , wherein said setting a flow activity indicator comprises incrementing said flow activity indicator.
Claim 62
Dependent Claim 20 words
The method of claim 28 , further comprising: generating an operation code configured to identify a status of said packet.
Claim 63
Dependent Claim 21 words
The method of claim 53 , wherein said operation code is configured to indicate whether said packet includes a data portion.
Claim 64
Dependent Claim 26 words
The method of claim 53 , wherein said operation code is configured to indicate whether said packet includes a data portion larger than a pre-determined size.
Claim 65
Dependent Claim 22 words
The method of claim 53 , wherein said operation code is configured to indicate whether said packet was received out of order.
Claim 66
Dependent Claim 25 words
The method of claim 53 wherein said operation code is configured to indicate whether said packet is reassembleable with another packet in said network flow.
Claim 67
Dependent Claim 21 words
The method of claim 53 , said operation code is configured to indicate whether said network flow is to be terminated.
Claim 68
Dependent Claim 113 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a network flow received at a network interface, the method comprising: parsing a packet received at a network interface; assembling a flow identifier configured to identify a network flow comprising said packet; searching a flow database on said network interface for said flow identifier; updating a flow sequence number in a flow database record comprising said flow identifier; setting a flow activity indicator in said flow database record to reflect receipt of said packet; and setting a flow validity indicator in said flow database to indicate said network flow is valid.
Claim 69
Dependent Claim 113 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of managing a network flow received at a network interface, the method comprising: parsing a packet received at a network interface; assembling a flow identifier configured to identify a network flow comprising said packet; searching a flow database on said network interface for said flow identifier; updating a flow sequence number in a flow database record comprising said flow identifier; setting a flow activity indicator in said flow database record to reflect receipt of said packet; and setting a flow validity indicator in said flow database to indicate said network flow is valid.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-11-17 2007-05-19 2007-11-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-11-17 2011-05-19 2011-11-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-11-17 2015-05-19 2015-11-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag