IP Library Granted Patent US 7,720,925
Granted Patent B1
US 7,720,925 · App. 11/195,938 · Granted May 18, 2010

Multiple message receive routine for network packets

Assignee: Oracle America, Inc.
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,720,925
App. No.
11/195,938
Granted
May 18, 2010
Kind
B1
Abstract

A method for receiving a plurality of messages that includes obtaining the plurality of messages, grouping the plurality of messages into a data structure, generating a system call from a user-level application to a kernel, wherein the system call includes a request for the plurality of message, and returning a reference to the data structure to the user-level application in response to the request, and for each message in the plurality of messages in the data structure: extracting a selected message from the plurality of messages in the data structure using the reference to the data structure by the user-level application, and consuming the selected message by the user-level application.

Claims (41)

1. A method for receiving a plurality of messages comprising:

obtaining the plurality of messages from a physical network, wherein the plurality of messages are sent by a plurality of senders;

grouping, by the kernel, the plurality of messages into a data structure, wherein the plurality of messages are grouped into the same data structure;

generating a system call from a user-level application to the kernel, wherein the system call comprises a request for the plurality of message; and

returning, by the kernel, a reference to the data structure to the user-level application in response to the request; and

for each message in the plurality of messages in the data structure:

extracting, by the user-level application, a selected message from the plurality of messages in the data structure using the reference to the data structure, wherein the user-level application directly accesses the data structure to extract the message, and

consuming, by the user-level application, the selected message.

2. The method of claim 1 , wherein the plurality of messages comprises a message header and a message body.

3. The method of claim 2 , wherein the message header comprises a socket descriptor.

4. The method of claim 2 , wherein the message body indirectly references a plurality of message buffers.

5. The method of claim 1 , wherein the system call comprises a count corresponding to a number of messages in the data structure and a flag.

6. The method of claim 1 , wherein the system call comprises a socket for receiving the plurality of messages for the user-level application.

7. The method of claim 1 , wherein the data structure is a vector.

8. The method of claim 1 , wherein the selected message comprises a field storing a length of the selected message, and wherein the field storing the length of the selected message is used to extract the selected message.

9. A system for receiving a plurality of messages comprising:

a kernel for:

obtaining the plurality of messages from a physical network, wherein the plurality of messages are sent by a plurality of senders;

grouping the plurality of messages into a data structure, wherein the plurality of messages are grouped into the same data structure; and

returning a reference to the data structure to a user-level application in response to a request from the user-level application, wherein a system call comprises the request for the plurality of messages; and

the user-level application for:

extracting a selected message from the plurality of messages in the data structure using the reference to the data structure, wherein the user-level application directly accesses the data structure to extract the message; and

consuming the selected message for each message in the plurality of messages in the data structure.

10. The system of claim 9 , wherein each of the plurality of messages comprises a message header and a message body.

11. The system of claim 10 , wherein the message header comprises a socket descriptor.

12. The system of claim 10 , wherein the message body indirectly references a plurality of message buffers.

13. The system of claim 9 , wherein the system call comprises a count corresponding to a number of messages in the data structure and a flag.

14. The system of claim 9 , wherein system call comprises a socket for receiving the plurality of messages for the user-level application.

15. The system of claim 9 , wherein the data structure is a vector.

16. The system of claim 9 , wherein the selected message comprises a field storing a length of the selected message, and wherein the field storing the length of the selected message is used to extract the selected message.

17. A computer usable medium having computer readable program code embodied therein for causing a computer system to execute a method for receiving a plurality of messages comprising:

obtaining, by a kernel, the plurality of messages from a physical network, wherein the plurality of messages are sent by a plurality of senders;

grouping, by the kernel, the plurality of messages into a data structure, wherein the plurality of messages are grouped into the same data structure;

receiving, by the kernel, a system call from a user-level application, wherein the system call comprises a request for the plurality of message; and

returning a reference to the data structure to the user-level application in response to the request,

wherein, for each message in the plurality of messages in the data structure, the user-level application:

extracts the selected message from the plurality of messages in the data structure using the reference to the data structure, wherein the user-level application directly accesses the data structure to extract the message, and

consumes the selected message.

18. The computer usable medium of claim 17 , wherein system call comprises a socket for receiving the plurality of messages for the user-level application.

19. The computer usable medium of claim 17 , wherein each of the plurality of messages comprises a message header and a message body.

20. The computer usable medium of claim 18 , wherein the message header comprises a socket descriptor.

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 037306/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2005
From: MEHTA, ASHISH KISHORCHANDRA; MASPUTRA, CAHYA ADIANSYAH
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016855/0958 →