Intelligent network adaptor with end-to-end flow control
First Claim
1. A method of operating a stateful connection between a host and a peer via a network, the host executing an application configured to receive data packets, including application data, from the peer via the network using the stateful connection between the host and the peer according to a connection-oriented protocol, the method comprising:
- performing protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including indicating a receive window to the peer;
placing the obtained application data to host memory application buffer associated with the application, the host memory application buffer not being associated with a host operating system;
causing the indicated receive window to be increased based on the host memory application buffer becoming available due to the application consuming application data from the application buffer; and
providing flow control by generating the receive window indication, including maintaining an indication of receive window credits based on an amount of the application data placed to the host memory application buffer and further based on the application data in the host memory application buffer being consumed by the application.
9 Assignments
0 Petitions
Accused Products
Abstract
A host is coupled to a network via an intelligent network adaptor. The host is executing an application configured to receive application data from a peer via the network and the intelligent network adaptor using a stateful connection according to a connection-oriented protocol. The intelligent network adaptor performs protocol processing of the connection. Application data is copied from host memory not configured for access by the application (possibly OS-associated host memory) to host memory associated with the application (application-associated host memory). The application data is received from the peer by the intelligent network adaptor and copied to host memory not configured for access by the application. The operating system selectively provides, to the intelligent network adaptor, information of the memory associated with the application. At least one portion of the application data for the connection is provided directly from the intelligent network adaptor to the memory associated with the application.
222 Citations
14 Claims
-
1. A method of operating a stateful connection between a host and a peer via a network, the host executing an application configured to receive data packets, including application data, from the peer via the network using the stateful connection between the host and the peer according to a connection-oriented protocol, the method comprising:
-
performing protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including indicating a receive window to the peer; placing the obtained application data to host memory application buffer associated with the application, the host memory application buffer not being associated with a host operating system; causing the indicated receive window to be increased based on the host memory application buffer becoming available due to the application consuming application data from the application buffer; and providing flow control by generating the receive window indication, including maintaining an indication of receive window credits based on an amount of the application data placed to the host memory application buffer and further based on the application data in the host memory application buffer being consumed by the application. - View Dependent Claims (2)
-
-
3. A method of operating an intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, the method comprising:
-
by the intelligent network adaptor, receiving, from the host, a plurality of indications that the application has consumed application data from a host memory application buffer associated with the application, the host memory application buffer not being associated with a host operating system; and by the intelligent network adaptor, generating a receive window indication based at least in part on the received indications of consumption of the application data from the host memory application buffer; the host memory application buffer is larger than an amount of memory allowed by the connection-oriented protocol for flow control; and the host is configured to expose, for use by protocol processing of the connection at any particular time, a portion of the host memory application buffer that is no larger than the amount of memory allowed by the connection-oriented protocol for flow control the host maintains the host memory application buffer as a plurality of overlapping windows into the host memory application buffer, each window no larger than the amount of memory allowed by the connection-oriented protocol for flow control; and the host selectively exposes to the protocol processing one of the windows at any particular time. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
-
11. An intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data, from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, wherein the intelligent network adaptor performs protocol processing of the connection, the intelligent network adaptor comprising hardware configured to:
-
perform protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including indicating a receive window to the peer; place application data, received from the peer via the stateful connection, from the intelligent network adaptor directly to host memory application buffer associated with the application without the application data being first provided from the intelligent network adaptor to host memory buffer associated with a host operating system and not specifically with the application; cause the indicated receive window to be increased based on the application buffer becoming available due to the application consuming application data from the application buffer; and provide flow control by generating the receive window indication, including maintaining an indication of receive window credits based on an amount of the application data placed from the intelligent network adaptor to host memory application buffer and further based on the application data in the host memory application buffer being consumed by the application. - View Dependent Claims (12, 13)
-
-
14. An intelligent network adaptor that couples a host to a network, the host executing an application configured to receive data packets, including application data from a peer via the network and the intelligent network adaptor using a stateful connection between the host and the peer according to a connection-oriented protocol, wherein the intelligent network adaptor performs protocol processing of the connection, the intelligent network adaptor comprising hardware configured to:
-
perform protocol processing for the connection with the peer to, at least in part, obtain the application data from the data packets received from the peer, including providing a receive window to the peer place application data, received from the peer via the stateful connection, from the intelligent network adaptor directly to host memory application buffer associated with the application without the application data being first provided from the intelligent network adaptor to host memory buffer associated with a host operating system and not specifically with the application; and receive, from the host, an indication that the application has consumed application data from the host memory application buffer associated with the application; and generate the receive window based at least in part on the received indications of consumption of the application data from the host memory application buffer, wherein the host memory application buffer is larger than an amount of memory allowed by the connection-oriented protocol for flow control; the host is configured to expose to the interface adaptor, for use with the connection at any particular time, a portion of the host memory application buffer that is no larger than the amount of memory allowed by the connection-oriented protocol for flow control; the host maintains the host memory application buffer as a plurality of overlapping windows into the host memory application buffer, each window no larger than the amount of memory allowed by the connection-oriented protocol for flow control; and the host selectively exposes to the protocol processing one of the windows at any particular time.
-
Specification