Patent ID: 8214509

Claim:
A network interface adapted for connecting a computer to a network to enable the computer to receive packets over the network, each packet being associated with a connection of a plurality of connections, the connection being associated with an application that accesses data received over the network in an application buffer of a plurality of application buffers, the network interface adapted for use with a network stack that accesses a general buffer, the network interface comprising: a memory; a programming interface adapted to receive at least one configuration command defining a mapping between each connection of at least a portion of the plurality of connections and an application buffer of the plurality of application buffers; a computer-readable medium having stored therein a data structure storing a map between each of a plurality of connections and a plurality of application buffers, wherein the computer-readable medium further has stored therein a data structure for holding packets, the packets being segregated by connection and ordered by sequence number for each connection; and configurable control circuitry adapted to recognize a packet as associated with a recognized connection of the plurality of connections based on the at least one configuration command and to transfer the packet to a recognized application buffer of the plurality of application buffers that is mapped to the recognized connection when the packet is recognized as associated and to transfer the packet to the general buffer when the packet is not recognized as associated with any of the plurality of connections, wherein: the memory is dynamically configured into a plurality of packet buffers to associate each packet buffer of the plurality of packet buffers with a connection of the plurality of connections; when the configurable control circuitry recognizes the packet as associated with the recognized connection, the packet is transferred to a selected packet buffer of the plurality of packet buffers, the selected packet buffer being selected based on an association with the recognized connection; and the packet is transferred to the recognized application buffer from the selected packet buffer.