Claims Analysis
Total Claims: 71
Claim 1
Independent Claim
99 words
A method of transferring a packet to a computer system, wherein the packet is received at a communication device from a network, comprising: parsing a header portion of a first packet received at a communication device to determine if said first packet conforms to a pre-selected protocol; generating a flow key to identify a first communication flow that includes said first packet; transferring said first packet to a host computer system for processing in accordance with said pre-selected protocol; and associating an operation code with said first packet, wherein said operation code indicates a status of said first packet.
Claim 2
Independent Claim
99 words
A method of transferring a packet to a computer system, wherein the packet is received at a communication device from a network, comprising: parsing a header portion of a first packet received at a communication device to determine if said first packet conforms to a pre-selected protocol; generating a flow key to identify a first communication flow that includes said first packet; transferring said first packet to a host computer system for processing in accordance with said pre-selected protocol; and associating an operation code with said first packet, wherein said operation code indicates a status of said first packet.
Claim 3
Dependent Claim
48 words
The method of claim 1 , wherein said parsing comprises: copying a header portion of said first packet into a header memory; and examining said header portion according to a series of parsing instructions; wherein said parsing instructions are configured to reflect a set of pre-selected communication protocols.
Claim 4
Dependent Claim
12 words
The method of claim 2 , wherein said parsing instructions are updateable.
Claim 5
Dependent Claim
21 words
The method of claim 2 , further comprising copying a value from a field in a header of said header portion.
Claim 6
Dependent Claim
39 words
The method of claim 1 , wherein said parsing comprises: extracting an identifier of a source of said first packet from said header portion; and extracting an identifier of a destination of said first packet from said header portion.
Claim 7
Dependent Claim
18 words
The method of claim 5 , wherein said generating comprises combining said source identifier and said destination identifier.
Claim 8
Dependent Claim
21 words
The method of claim 1 , wherein said generating comprises retrieving an identifier of a communication connection from said header portion.
Claim 9
Dependent Claim
20 words
The method of claim 1 , further comprising storing said first packet in a packet memory prior to said transferring.
Claim 10
Dependent Claim
30 words
The method of claim 1 , further comprising storing said flow key in a flow database, wherein said flow database is configured to facilitate management of said first communication flow.
Claim 11
Dependent Claim
31 words
The method of claim 9 , further comprising associating a flow number with said first packet, wherein said flow number comprises an index of said flow key within said flow database.
Claim 12
Dependent Claim
16 words
The method of claim 10 , further comprising storing said flow number in a flow memory.
Claim 13
Dependent Claim
31 words
The method of claim 9 , further comprising updating an entry in said flow database associated with said flow key when a second packet in said first communication flow is received.
Claim 14
Dependent Claim
189 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transferring a packet received at a network interface from a network to a host computer system, the method comprising: receiving a packet from a network at a network interface for a host computer system; parsing a header portion of said packet to extract an identifier of a source entity and an identifier of a destination entity; generating a flow key from said source identifier and said destination identifier to identify a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; storing said flow key in a database; associating an operation code with said packet, wherein said operation code identifies a status of said packet; storing said packet in a packet memory; if said header conforms to said pre-selected protocol: storing a data portion of said packet in a re-assembly buffer; and storing said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, storing said packet in a non-re-assembly buffer.
Claim 15
Dependent Claim
189 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transferring a packet received at a network interface from a network to a host computer system, the method comprising: receiving a packet from a network at a network interface for a host computer system; parsing a header portion of said packet to extract an identifier of a source entity and an identifier of a destination entity; generating a flow key from said source identifier and said destination identifier to identify a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; storing said flow key in a database; associating an operation code with said packet, wherein said operation code identifies a status of said packet; storing said packet in a packet memory; if said header conforms to said pre-selected protocol: storing a data portion of said packet in a re-assembly buffer; and storing said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, storing said packet in a non-re-assembly buffer.
Claim 16
Dependent Claim
33 words
The method of claim 1 , wherein said associating comprises: retrieving one or more header fields of said header portion; and analyzing said header fields to determine said status of said first packet.
Claim 17
Dependent Claim
37 words
The method of claim 14 , wherein said analyzing comprises: determining whether said first packet includes a data portion; and if said first packet includes a data portion, determining whether said data portion exceeds a pre-determined size.
Claim 18
Dependent Claim
25 words
The method of claim 14 , wherein said analyzing comprises determining whether said first packet was received out of order in said first communication flow.
Claim 19
Dependent Claim
16 words
The method of claim 1 , further comprising storing said operation code in a control memory.
Claim 20
Dependent Claim
69 words
The method of claim 1 , wherein said first pack et is determined to conform to said pre-selected protocol, said transferring comprising: storing a data portion of said first packet in a re-assembly storage area, wherein said re-assembly storage area is configured to only store data portions of packets in said first communication flow; and storing one or more headers from said header portion in a header storage area.
Claim 21
Dependent Claim
49 words
The method of claim 1 , wherein said transferring comprises: if said first packet is smaller than a predetermined threshold, storing said first packet in a first storage area; and if said first packet is larger than said predetermined threshold, storing said first packet in a second storage area.
Claim 22
Dependent Claim
24 words
The method of claim 1 , further comprising determining whether a second packet received from said network is part of said first communication flow.
Claim 23
Dependent Claim
63 words
The method of claim 20 , wherein said determining comprises: maintaining a packet memory configured to store one or more packets received from said network; maintaining a flow memory configured to store, for each of said one or more packets, an identifier of a communication flow comprising said packet; and searching said flow memory for a first identifier of said first communication flow.
Claim 24
Dependent Claim
14 words
The method of claim 21 , wherein said first identifier comprises said flow key.
Claim 25
Dependent Claim
33 words
The method of claim 21 , wherein said first identifier comprises a flow number of said first packet, wherein said flow number is an index of said flow key within a flow database.
Claim 26
Dependent Claim
57 words
The method of claim 1 , wherein said host computer system comprises a plurality of processors, further comprising: identifying a quantity of processors in said host computer system available for processing packets; and associating a first processor identifier with said first packet to identify a first processor in said host computer system for processing said first packet.
Claim 27
Dependent Claim
27 words
The method of claim 24 , further comprising: receiving a second packet in said first communication flow; and associating said first processor identifier with said second packet.
Claim 28
Dependent Claim
42 words
The method of claim 24 , further comprising: receiving a second packet from a second communication flow; and associating a second processor identifier with said second packet to identify a second processor in said host computer system for processing said second packet.
Claim 29
Dependent Claim
20 words
The method of claim 1 , further comprising alerting said host computer system to the arrival of said first packet.
Claim 30
Dependent Claim
35 words
The method of claim 1 , further comprising: maintaining a packet memory configured to store packets received from said network; and randomly discarding a packet if said packet memory contains a pre-determined level of traffic.
Claim 31
Dependent Claim
13 words
The method of claim 28 , wherein said packet is said first packet.
Claim 32
Dependent Claim
71 words
The method of claim 28 , wherein said packet memory comprises a plurality of regions, said randomly discarding comprising: identifying one of said plurality of regions, wherein a level of traffic stored in said packet memory has reached said region; applying a probability indicator associated with said region to determine a probability that said first packet should be discarded; and if said probability exceeds a predetermined threshold, discarding said first packet.
Claim 33
Dependent Claim
14 words
The method of claim 1 , wherein said communication device is a network interface.
Claim 34
Independent Claim
106 words
A method of transferring a packet received at a network interface to a host computer system, comprising: receiving a packet from a network; storing said packet in a packet memory; parsing a header portion of said packet; extracting a value stored in said header portion; identifying a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; determining whether a second packet in said packet memory is part of said communication flow; if the host computer system contains a plurality of processors, identifying a processor to process said packet; and storing said packet in a host memory area.
Claim 35
Independent Claim
106 words
A method of transferring a packet received at a network interface to a host computer system, comprising: receiving a packet from a network; storing said packet in a packet memory; parsing a header portion of said packet; extracting a value stored in said header portion; identifying a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; determining whether a second packet in said packet memory is part of said communication flow; if the host computer system contains a plurality of processors, identifying a processor to process said packet; and storing said packet in a host memory area.
Claim 36
Independent Claim
169 words
A method of transferring a packet received at a network interface from a network to a host computer system, comprising: receiving a packet from a network at a network interface for a host computer system; parsing a header portion of said packet to extract an identifier of a source entity and an identifier of a destination entity; generating a flow key from said source identifier and said destination identifier to identify a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; storing said flow key in a database; associating an operation code with said packet, wherein said operation code identifies a status of said packet; storing said packet in a packet memory; if said header conforms to said pre-selected protocol: storing a data portion of said packet in a re-assembly buffer; and storing said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, storing said packet in a non-re-assembly buffer.
Claim 37
Independent Claim
169 words
A method of transferring a packet received at a network interface from a network to a host computer system, comprising: receiving a packet from a network at a network interface for a host computer system; parsing a header portion of said packet to extract an identifier of a source entity and an identifier of a destination entity; generating a flow key from said source identifier and said destination identifier to identify a communication flow comprising said packet; determining whether a header in said header portion conforms to a pre-selected protocol; storing said flow key in a database; associating an operation code with said packet, wherein said operation code identifies a status of said packet; storing said packet in a packet memory; if said header conforms to said pre-selected protocol: storing a data portion of said packet in a re-assembly buffer; and storing said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, storing said packet in a non-re-assembly buffer.
Claim 38
Dependent Claim
31 words
The method of claim 33 , wherein said parsing comprises executing a series of updateable instructions configured to parse a packet header conforming to one of a set of pre-selected protocols.
Claim 39
Dependent Claim
16 words
The method of claim 33 , further comprising storing said operation code in a control memory.
Claim 40
Dependent Claim
33 words
The method of claim 33 , further comprising storing a flow number of said packet in a flow memory, wherein said flow number comprises an index of said flow key in said database.
Claim 41
Dependent Claim
24 words
The method of claim 36 , further comprising indicating whether said packet memory includes another packet with said flow number or said flow key.
Claim 42
Dependent Claim
35 words
The method of claim 33 , wherein the host computer system comprises multiple processors, further comprising identifying a first processor in the host computer system to process said packet in accordance with said pre-selected protocol.
Claim 43
Dependent Claim
42 words
The method of claim 38 , further comprising: receiving a second packet at said network interface, wherein said second packet is part of a second communication flow; and identifying a second processor in the host computer system to process said second packet.
Claim 44
Dependent Claim
19 words
The method of claim 33 , further comprising informing said host computer system of said receipt of said packet.
Claim 45
Dependent Claim
50 words
The method of claim 33 , wherein said packet memory comprises a plurality of regions, further comprising: determining a level of network traffic stored in said packet memory; and applying a probability indicator associated with one of said regions to determine whether to discard a packet received from said network.
Claim 46
Independent Claim
117 words
An apparatus for transferring a packet to a host computer system, comprising: a traffic classifier configured to classify a first packet received from a network by a communication flow that includes said first packet; a packet memory configured to store said first packet; a packet batching module configured to determine whether another packet in said packet memory belongs to said communication flow; and a flow re-assembler configured to re-assemble a data portion of said first packet with a data portion of a second packet in said communication flow; wherein said first packet data portion and said second packet data portion are stored in a host computer memory area to enable efficient transfer of said memory area contents.
Claim 47
Independent Claim
117 words
An apparatus for transferring a packet to a host computer system, comprising: a traffic classifier configured to classify a first packet received from a network by a communication flow that includes said first packet; a packet memory configured to store said first packet; a packet batching module configured to determine whether another packet in said packet memory belongs to said communication flow; and a flow re-assembler configured to re-assemble a data portion of said first packet with a data portion of a second packet in said communication flow; wherein said first packet data portion and said second packet data portion are stored in a host computer memory area to enable efficient transfer of said memory area contents.
Claim 48
Dependent Claim
73 words
The apparatus of claim 42 , wherein said traffic classifier comprises: a parser configured to parse a header portion of said first packet; a flow database configured to store a flow key identifying said communication flow; and a flow database manager configured to manage said flow database; wherein said flow key is generated from an identifier of a source of said first packet and an identifier of a destination of said first packet.
Claim 49
Dependent Claim
106 words
A computer system for receiving a packet from a network, comprising: a memory configured to store packets received from a network; and a communication device configured to receive a first packet from said network, the communication device comprising: a parser configured to extract information from a header portion of a first packet; a flow manager configured to examine said information; a flow database configured to store an identifier of a first communication flow comprising multiple packets, including said first packet; and a re-assembler for storing data portions of said multiple packets in a first portion of said memory; and a processor for processing said first packet.
Claim 50
Dependent Claim
106 words
A computer system for receiving a packet from a network, comprising: a memory configured to store packets received from a network; and a communication device configured to receive a first packet from said network, the communication device comprising: a parser configured to extract information from a header portion of a first packet; a flow manager configured to examine said information; a flow database configured to store an identifier of a first communication flow comprising multiple packets, including said first packet; and a re-assembler for storing data portions of said multiple packets in a first portion of said memory; and a processor for processing said first packet.
Claim 51
Dependent Claim
52 words
The apparatus of claim 42 , further comprising: a load distributor for identifying a first processor within the host computer system for processing said first packet and said second packet; wherein said load distributor identifies a second processor in the host computer system for processing a packet from a different communication flow.
Claim 52
Dependent Claim
43 words
The apparatus of claim 42 , further comprising: a probability indicator for determining a probability of discarding a packet at said packet memory when a level of traffic stored in said packet memory is within a pre-determined region associated with said probability indicator.
Claim 53
Independent Claim
163 words
A device for receiving a packet from a network and transferring the packet to a host computer system, comprising: a parser configured to parse a header portion of a packet received from a network, wherein said parsing comprises: determining whether a header within said header portion conforms to one of a set of communication protocols; and if said header conforms to one of said communication protocols, extracting information from said header portion to identify a communication flow to which said packet belongs; a flow memory configured to store a flow identifier for identifying said communication flow; a flow manager configured to assign an operation code to said packet, wherein said operation code: indicates a status of said packet; and indicates a manner of transferring said packet to the host computer system; a packet memory configured to store said packet; and a transfer module configured to transfer said packet from said packet memory to a host computer system in accordance with said operation code.
Claim 54
Independent Claim
163 words
A device for receiving a packet from a network and transferring the packet to a host computer system, comprising: a parser configured to parse a header portion of a packet received from a network, wherein said parsing comprises: determining whether a header within said header portion conforms to one of a set of communication protocols; and if said header conforms to one of said communication protocols, extracting information from said header portion to identify a communication flow to which said packet belongs; a flow memory configured to store a flow identifier for identifying said communication flow; a flow manager configured to assign an operation code to said packet, wherein said operation code: indicates a status of said packet; and indicates a manner of transferring said packet to the host computer system; a packet memory configured to store said packet; and a transfer module configured to transfer said packet from said packet memory to a host computer system in accordance with said operation code.
Claim 55
Dependent Claim
13 words
The device of claim 47 , wherein the device is a network interface.
Claim 56
Dependent Claim
43 words
The device of claim 47 , said flow memory comprising a flow database configured to store a flow key, wherein said flow key is assembled from an identifier of a source of said packet and an identifier of a destination of said packet.
Claim 57
Dependent Claim
30 words
The device of claim 47 , wherein said flow manager is further configured to update said flow memory as additional packets in said communication flow are received from the network.
Claim 58
Dependent Claim
34 words
The device of claim 47 , said flow memory comprising a flow memory configured to store a flow number, wherein said flow number comprises an index of said communication flow in a flow database.
Claim 59
Dependent Claim
17 words
The device of claim 47 , further comprising a control memory configured to store said operation code.
Claim 60
Dependent Claim
111 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transferring a packet from a communication device to a host computer, the method comprising: parsing a header portion of a first packet received at a communication device to determine if said first packet conforms to a pre-selected protocol; generating a flow key to identify a first communication flow that includes said first packet; transferring said first packet to a host computer system for processing in accordance with said pre-selected protocol; and associating an operation code with said first packet, wherein said operation code indicates a status of said first packet.
Claim 61
Dependent Claim
111 words
A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of transferring a packet from a communication device to a host computer, the method comprising: parsing a header portion of a first packet received at a communication device to determine if said first packet conforms to a pre-selected protocol; generating a flow key to identify a first communication flow that includes said first packet; transferring said first packet to a host computer system for processing in accordance with said pre-selected protocol; and associating an operation code with said first packet, wherein said operation code indicates a status of said first packet.
Claim 62
Dependent Claim
42 words
The device of claim 47 , wherein said host computer system is a multi-processor host computer system, further comprising a load distributor configured to select one of said multiple processors for processing said packet in accordance with one of said communication protocols.
Claim 63
Dependent Claim
35 words
The device of claim 47 , wherein said transfer module is configured to transfer a data portion of said packet into one of a set of host memory areas in accordance with said operation code.
Claim 64
Dependent Claim
26 words
The device of claim 47 , further comprising a packet batching module configured to determine whether said packet memory contains another packet in said communication flow.
Claim 65
Dependent Claim
39 words
The device of claim 47 , wherein said packet memory comprises multiple regions, and wherein each of said multiple regions is associated with a probability indicator configured to indicate a probability of discarding a packet received at the device.
Claim 66
Independent Claim
186 words
An apparatus for transferring a packet from a network to a host computer system, comprising: a parser module configured to: parse a header portion of a first packet received from a network to extract an identifier of a source of said first packet and an identifier of a destination of said first packet; generate a flow key from said source identifier and said destination identifier to identify a communication flow comprising said first packet; and determine whether a header in said header portion conforms to a pre-selected protocol; a flow database configured to store said flow key; a flow database manager configured to associate an operation code with said first packet, wherein said operation code identifies a status of said first packet; a packet memory configured to store said first packet; and a transfer module configured to: if said header conforms to said pre-selected protocol: store a data portion of said first packet in a re-assembly buffer; and store said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, store said packet in a non-re-assembly buffer.
Claim 67
Independent Claim
186 words
An apparatus for transferring a packet from a network to a host computer system, comprising: a parser module configured to: parse a header portion of a first packet received from a network to extract an identifier of a source of said first packet and an identifier of a destination of said first packet; generate a flow key from said source identifier and said destination identifier to identify a communication flow comprising said first packet; and determine whether a header in said header portion conforms to a pre-selected protocol; a flow database configured to store said flow key; a flow database manager configured to associate an operation code with said first packet, wherein said operation code identifies a status of said first packet; a packet memory configured to store said first packet; and a transfer module configured to: if said header conforms to said pre-selected protocol: store a data portion of said first packet in a re-assembly buffer; and store said header portion in a header buffer; and if said header conforms to a protocol other than said pre-selected protocol, store said packet in a non-re-assembly buffer.
Claim 68
Dependent Claim
41 words
The apparatus of claim 58 , wherein said transfer module comprises a re-assembly engine configured to re-assemble, in said re-assembly buffer, a data portion of said first packet with a data portion of a second packet in said first communication flow.
Claim 69
Dependent Claim
37 words
The apparatus of claim 58 , further comprising a flow memory configured to store a flow number associated with said first packet, wherein said flow number comprises an index of said flow key in said flow database.
Claim 70
Dependent Claim
75 words
The apparatus of claim 58 , further comprising: a load distributor configured to identify a first processor in said host computer system for processing said first packet, said first processor being identified on the basis of said flow key; wherein said host computer system is a multi-processor computer system; and wherein a second processor in said host computer system is identified for processing a packet from a communication flow other than said first communication flow.
Claim 71
Dependent Claim
27 words
The apparatus of claim 58 , further comprising: a packet batching module configured to determine whether said packet memory includes another packet in said first communication flow.