Patent ID: 7386619

Claim:
A method for allocating a plurality of communications received at a communication interface having an address space, wherein each communication is a TCP packet, the method comprising: providing a plurality of processors coupled in a multiprocessor system configuration hosting an operating system wherein each processor is provided with a driver containing a communications assignor that is adapted to respond to an interrupt from the communication interface and each processor executes at least one process that receives and performs operations on communications; providing a system storage as part of the multiprocessor system that is configured into at least one buffer wherein the buffer is identifiable by an index and equipped to store at least one of the plurality of communications received at the communication interface; configuring at least one queue in the address space of the communication interface; and in response to a selected one of the plurality of communications being received at the communication interface, assigning the selected one of the plurality of communications to a selected one of the plurality of processors by: storing the selected one of the plurality of communications in the at least one buffer; placing the index identifying the at least one buffer into the at least one queue in the address space of the communication interface; signaling an interrupt to the plurality of processors in the multiprocessor system; transferring control to the driver associated with a selected processor from among the processors in the multiprocessor system; identifying an entity to assign the selected one of the plurality of received communications using the communication assignor contained in the driver associated with the selected processor by: providing a function adapted to return an indicia identifying the entity based upon a function call with at least a first portion of the communication; retrieving the index of the at least one buffer storing the selected one of the plurality of received communications from the communication interface; reading the first portion of the communication from the buffer storage using the retrieved index; and performing the function call on the first portion of the communication read from the buffer wherein the step of performing the function call includes the steps of: designating a least significant bit of a destination IP address from a header of the selected communication as a most significant bit of a two-bit result; designating the least significant bit of a destination port of the header of the selected communication as a least significant bit of the two-bit result; and returning the function call with the indicia set to the two-bit result to identify the entity to which the selected communication should be assigned based on the result; and assigning the selected communication to the entity for processing by the entity.