IP Library Granted Patent US 7,930,349
Granted Patent B2
US 7,930,349 · App. 12/574,263 · Granted Apr 19, 2011

Method and apparatus for reducing host overhead in a socket server implementation

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,349
App. No.
12/574,263
Granted
Apr 19, 2011
Kind
B2
Abstract

A network application executing on a host system provides a list of application buffers in host memory stored in a queue to a network services processor coupled to the host system. The application buffers are used for storing data transferred on a socket established between the network application and a remote network application executing in a remote host system. Using the application buffers, data received by the network services processor over the network is transferred between the network services processor and the application buffers. After the transfer, a completion notification is written to one of the two control queues in the host system. The completion notification includes the size of the data transferred and an identifier associated with the socket. The identifier identifies a thread associated with the transferred data and the location of the data in the host system.

Claims (25)

1. A network processor comprising:

a local memory shared by a plurality of processors for storing data transferred over a network coupled to the network processor; and

an interface to a host system, the interface managing a queue system for a socket established between an application executing in a host application memory and another application executing in a remote host coupled to the network, the interface reducing overhead data copy as a function of transferring data asynchronously directly to the host application memory.

2. The network processor of claim 1 wherein the socket includes at least one of a Transmission Control Protocol socket or a User Datagram Protocol socket.

3. The network processor of claim 1 wherein the interface is arranged to transfer the data directly between the local memory and application space in the host application memory.

4. The network processor of claim 1 wherein the queue system includes a ring buffer and address pointers for managing the queue system.

5. The network processor of claim 1 wherein the queue system is arranged to store a unique identifier for a process identifier associated with the socket.

6. The network processor of claim 1 wherein the interface includes a network interface card that handles multiple network protocols.

7. A computer implemented method for transferring data between an application executing in a host system and a remote application executing in a remote host system over a socket, the method comprising:

sharing by a plurality of processors a local memory for storing data transferred over a network coupled to a network processor;

managing a queue system for a socket established between an application executing in a host application memory and another application executing in a remote host coupled to the network; and

reducing overhead data copy as a function of transferring data asynchronously directly to the host application memory.

8. The computer implemented method of claim 7 wherein the socket includes at least one of a Transmission Control Protocol socket or a User Datagram Protocol socket.

9. The computer implemented method of claim 7 further including transferring the data directly between local memory and application space in the host application memory.

10. The computer implemented method of claim 7 wherein the queue system includes a ring buffer and address pointers for managing the queue system.

11. The computer implemented method of claim 7 further including storing a unique identifier for a process identifier associated with the socket in the queue system.

12. The computer implemented method of claim 7 wherein the interface includes a network interface card that handles multiple network protocols.

13. A network processor comprising:

a local memory shared by a plurality of processors for storing data transferred over a network coupled to the network processor; and

interface means for managing a queue system for a socket established between an application executing in a host application memory and another application executing in a remote host coupled to the network, the interface means reducing overhead data copy as a function of transferring data asynchronously directly to the host application memory.

14. A networking system comprising:

a host system executing a network application including an interface to the host system for managing multiple network protocols; and

a socket switch for directing network service calls from the application to the interface based on an Internet Protocol address included in a network service call to reduce overhead data copy as a function of transferring data asynchronously directly to a host application memory.

15. The networking system of claim 14 wherein the interface is a network interface card.

16. The networking system of claim 14 wherein the socket switch is arranged to direct calls from the application through at least one of a host networking stack or a processor networking stack.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →