IP Library Granted Patent US 7,502,870
Granted Patent B1
US 7,502,870 · App. 10/917,995 · Granted Mar 10, 2009

Method for receiving network communication and apparatus for performing the same

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,502,870
App. No.
10/917,995
Granted
Mar 10, 2009
Kind
B1
Abstract

A host memory location pointer is posted from a host device to a network interface card (NIC) attached to the host device prior to receipt at the NIC of data to be placed in the host memory location corresponding to the pointer. Posting the host memory location pointer serves to surrender ownership of the host memory location from the host device to the NIC. Data received at the NIC is placed in the host memory location corresponding to the pointer. Furthermore, the NIC operates to prevent placement of the data in a portion of the host memory where data has been previously placed by the NIC. Also, the host device operates to re-assume ownership of the portion of the host memory having data placed therein by the NIC without actively reclaiming ownership of the portion of the host memory location from the NIC.

Claims (18)

1. A method for receiving network communication, comprising:

posting a host memory buffer pointer from a host device to a network interface card (NIC) attached to the host device prior to receipt of data at the NIC to be placed in the host memory buffer corresponding to the pointer, wherein posting the host memory buffer pointer serves to surrender ownership of the host memory buffer from the host device to the NIC, wherein a size of the host memory buffer is equal to a system page size and is not based on an amount of data to be received at the NIC;

placing data received at the NIC in the host memory buffer corresponding to the pointer; and

operating the NIC in accordance with a byte-stream oriented transport protocol such that the NIC is operated to prevent placement of data in a portion of the host memory buffer having data previously placed therein by the NIC, and such that ownership of each byte of the host memory buffer is automatically returned from the NIC to the host device upon placement of data therein by the NIC.

2. A method for receiving network communication as recited in claim 1 , wherein the host memory buffer is allocated by an application executing on the host device.

3. A method for receiving network communication as recited in claim 1 , wherein posting the host memory buffer pointer to the NIC is performed by passing the host memory buffer pointer downward through a protocol stack from an application layer to the NIC, the NIC being located below the protocol stack.

4. A method for receiving network communication as recited in claim 1 , wherein a direct memory access operation is performed to place the data received at the NIC in the host memory buffer corresponding to the pointer.

5. A method for receiving network communication as recited in claim 1 , wherein operating the NIC to prevent placement of data in the portion of the host memory buffer having data previously placed therein includes operating the NIC to restrict data writing to a forward direction within the host memory buffer.

6. A method for receiving network communication as recited in claim 1 , further comprising:

operating the host device to manage memory ownership on a byte-level to enable the host device to re-assume ownership of the portion of the host memory buffer having data placed therein by the NIC.

7. A method for receiving network communication in accordance with a message-based transport protocol, comprising:

posting a host memory buffer pointer from a host device to a network interface card (NIC) attached to the host device prior to receipt of data at the NIC to be placed in the host memory buffer corresponding to the pointer, wherein posting the host memory buffer pointer serves to surrender ownership of the host memory buffer from the host device to the NIC, wherein a size of the host memory buffer is equal to a system page size and is not based on an amount of data to be received at the NIC;

placing data received at the NIC in the host memory buffer corresponding to the pointer; and

operating the NIC in accordance with a message-based transport protocol such that the NIC is operated to identify an end of data marker associated with the data received at the NIC; and

operating the NIC to automatically surrender ownership of the host memory buffer to the host device upon identification of the end of data marker, whereby the host device avoids actively reclaiming ownership of the host memory location from the NIC.

8. A method for receiving network communication in accordance with a message-based transport protocol as recited in claim 7 , wherein the message-based protocol is a user datagram protocol.

9. A method for receiving network communication in accordance with a message-based transport protocol as recited in claim 7 , wherein the host memory buffer is allocated by an application executing on the host device.

10. A method for receiving network communication in accordance with a message-based transport protocol as recited in claim 7 , wherein posting the host memory buffer pointer to the NIC is performed by passing the host memory buffer pointer downward through a protocol stack from an application layer to the NIC, the NIC being located below the protocol stack.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2004
From: CHU, HSIAO-KENG JERRY
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016083/0754 →