TCP host
First Claim
1. A network processor comprising:
- 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 for a socket established between an application executing in host memory and another application executing in a remote host coupled to the network, the queue storing a unique identifier for a process identifier associated with the socket, the interface transferring data asynchronously between host memory and local memory, an indication being received by a waiting process in the host system that data has been written to host memory based on a process identifier stored in the queue.
8 Assignments
0 Petitions
Accused Products
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.
-
Citations
15 Claims
-
1. A network processor comprising:
-
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 for a socket established between an application executing in host memory and another application executing in a remote host coupled to the network, the queue storing a unique identifier for a process identifier associated with the socket, the interface transferring data asynchronously between host memory and local memory, an indication being received by a waiting process in the host system that data has been written to host memory based on a process identifier stored in the queue. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
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;
managing a queue for a socket established between the application executing in host memory and the remote application executing in the remote host system coupled to the network, the queue storing a unique identifier for a process identifier associated with the socket; and
transferring data asynchronously between host memory and local memory, an indication being received by a waiting process in the host system indicating that data has been written to application memory based on a process identifier stored in the queue. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A network processor comprising:
-
local memory shared by the plurality of processors for storing data transferred over a network coupled to the network processor; and
interface means for managing a queue in host memory for a socket established between an application executing in the host memory in a host system and a remote application executing in a remote host system coupled to the network, the queue storing a unique identifier for a process identifier associated with the socket, the interface means transferring data asynchronously between host memory and local memory, an indication being received by a waiting process in the host system indicating that data has been written to host memory based on a process identifier stored in the queue.
-
-
14. A network processor comprising:
-
a plurality of processors, a first processor executing an application and a second processor executing an operating system; and
a local memory shared by the plurality of processors for storing data transferred over a network coupled to the network processor, the second processor managing a queue for a socket established between the application and another application executing in a remote host coupled to the network, the queue storing a unique identifier for the socket, the data being transferred directly between the application buffers and network buffers in the local memory.
-
-
15. A networking system comprising:
a host system executing a network application, the host system comprising;
a network services processor;
a network interface; and
a socket switch, the socket switch directing network service calls from the application to the network services processor or the network interface card based on an Internet Protocol address included in a network service call.
Specification