Patent ID: 7543290

Claim:
A method for controlling access by processes running on a host device to a communication network, the method comprising: assigning to each of the processes a single respective doorbell address in an address range, in an address space of the host device, occupied by a network interface adapter that couples the host device to the network; by a driver of the network interface adapter, allocating a plurality of instances of a communication service on the network, to be provided via the adapter, to at least some of the processes on the host device, such that each of the instances is allocated to a particular one of the processes, wherein allocating the instances comprises allocating multiple instances to a single one of the processes; by the network interface adapter, receiving a request submitted by a given one of the processes to its respective doorbell address, to access one of the allocated service instances, which is specified in the request; and conveying data over the network using the specified instance of the service, subject to verifying, based on the doorbell address to which the request was submitted, that the specified instance was allocated to the given process; wherein the communication service comprises a transport service, wherein allocating the plurality of the instances comprises allocating pairs of work queues, and wherein receiving the request comprises receiving a work request to place a work item in a specified one of the work queues, and wherein conveying the data comprises transporting the data to a destination address provided by a context of the specified work queue.