IP Library Granted Patent US 7,930,437
Granted Patent B2
US 7,930,437 · App. 12/369,795 · Granted Apr 19, 2011

Network adapter with shared database for message context information

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,930,437
App. No.
12/369,795
Granted
Apr 19, 2011
Kind
B2
Abstract

A network interface adapter includes a network interface and a client interface, for coupling to a client device so as to receive from the client device work requests to send messages over the network using a plurality of transport service instances. Message processing circuitry, coupled between the network interface and the client interface, includes an execution unit, which generates the messages in response to the work requests and passes the messages to the network interface to be sent over the network. A memory stores records of the messages that have been generated by the execution unit in respective lists according to the transport service instances with which the messages are associated. A completion unit receives the records from the memory and, responsive thereto, reports to the client device upon completion of the messages.

Claims (15)

1. A method for network communication, comprising;

receiving, by a network interface adapter, work requests from a client device to send messages over a network using a plurality of transport service instances, such that each of the messages is associated with a respective one of the transport service instances;

sending, by the network interface adapter, messages over the network in response to the work requests;

storing, by the network interface adapter, in a common memory, in the network interface adapter, that shared among the transport service instances, records of the messages that have been sent over the network in respective lists according to the transport service instances with which the messages are associated, and

upon completion of the messages, reading, by the network interface adapter, the records from the memory and, responsive thereto, reporting the completion to the client device;

wherein storing the records comprises storing the lists together in a common database, in which each of the transport service instances has a respective number of entries, wherein the number is variable among the transport service instances; and

wherein each transport service instance is assigned a respective variable portion of the common memory, in accordance with the respective number of entries of that transport service instance, for storing the respective list of that transport service instance.

2. A method according to claim 1 , wherein the number of the entries for each of the transport services instances is determined by the number of the messages associated therewith that have been sent over the network and whose completion has not yet been reported to the client device by the completion unit.

3. A method according to claim 1 , wherein the lists comprise a linked list of the entries maintained for each of the transport service instances.

4. A method according to claim 3 , wherein storing the records comprises, upon sending one of the messages, pushing a corresponding one of the records onto a tail of the linked list, and wherein reading the records comprises popping the corresponding one of the records from a head of the linked list in order to report the completion.

5. A method according to claim 3 , and comprising maintaining a further linked list of the entries in the database that are free for writing of further records thereto, wherein pushing the corresponding one of the records comprises selecting one of the entries from the head of the further linked list for writing the one of the records thereto.

6. A method according to claim 1 , wherein at least some of the transport services instances belong to a reliable transport service, and wherein reading the records comprises reading the records of the messages sent using the reliable transport service upon receiving respective responses to the messages from the network, and wherein reporting the completion responsive to the records and to the responses.

7. A method according to claim 1 , wherein sending the messages comprises sending data packets over the network.

8. A method according to claim 7 , wherein the network comprises a switch fabric, and wherein sending the data packets comprises sending the packets over the switch fabric.

9. A method according to claim 8 , wherein the transport service instances comprise queue pairs, which are used by the client device to interact with a transport layer of the network.

Assignments (2)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →