Credit based flow control scheme over virtual interface architecture for system area networks
First Claim
1. A first endpoint system for communicating with a second endpoint system across a network, the first endpoint system comprising:
- an interface consumer, including;
an application;
a plurality of send and receive buffers;
a transport service provider coupled to the application, the transport service provider providing an end-to-end credit-based flow control for transferring data between the first and second endpoints;
an interface user agent coupled to the transport service provider;
an interface provider coupled to the interface user agent, the interface provider including;
a kernel agent;
a plurality of work queues; and
a network interface controller coupled to the kernel agent and the work queues;
said interface user agent issuing one or more control commands to the kernel agent to establish a connection between the first and second endpoint systems across the network and posting data transfer requests to the work queues in response to commands from the transport service provider; and
the network interface controller processing the data transfer requests by transferring data between the send and receive buffers and the network.
0 Assignments
0 Petitions
Accused Products
Abstract
A transport service provider provides a credit-based flow control scheme and is designed to operate over VI Architecture. The credit-based flow control scheme reduces overhead (e.g., reduces buffer copies and kernel processing) by relying upon the reliability properties of the underlying VI Architecture. If the number of send credits is sufficient, then the sender prepares and sends the packet. Otherwise, the sender sends a Credit Request and waits for a Credit Response. Upon receiving the corresponding Credit Response, the sender continues sending data packets. In response to a sender'"'"'s Credit Request, the receiver sends the Credit Response only when it has enough receive credits (above a threshold value or low water mark).
97 Citations
8 Claims
-
1. A first endpoint system for communicating with a second endpoint system across a network, the first endpoint system comprising:
-
an interface consumer, including;
an application;
a plurality of send and receive buffers;
a transport service provider coupled to the application, the transport service provider providing an end-to-end credit-based flow control for transferring data between the first and second endpoints;
an interface user agent coupled to the transport service provider;
an interface provider coupled to the interface user agent, the interface provider including;
a kernel agent;
a plurality of work queues; and
a network interface controller coupled to the kernel agent and the work queues;
said interface user agent issuing one or more control commands to the kernel agent to establish a connection between the first and second endpoint systems across the network and posting data transfer requests to the work queues in response to commands from the transport service provider; and
the network interface controller processing the data transfer requests by transferring data between the send and receive buffers and the network. - View Dependent Claims (2, 3)
the interface consumer comprises Virtual Interface (VI) consumer in accordance with at least a portion of the Virtual Interface Architecture and which also includes the transport service provider providing an end-to-end credit-based flow control for transferring data between the first and second endpoints; and
the interface provider comprises a Virtual Interface (VI) provider in accordance with at least a portion of the Virtual Interface Architecture.
-
-
3. The first endpoint system of claim 2 wherein the user agent comprises a Virtual Interface (VI) user agent, the kernel agent comprises a Virtual Interface (VI) kernel agent, and the network interface controller comprises a Virtual Interface (VI) network interface controller.
-
4. A first endpoint system for communicating with a second endpoint system across a network, said first endpoint system comprising:
-
an application, the application including send and receive application buffers;
an operating system communications facility coupled to the application and adapted to receive commands from the application;
a transport service provider coupled to the communications facility and adapted to receive commands from the operating system communications facility, the transport service provider providing an end-to-end credit-based flow control for data transfer across the network;
a network interface controller coupled to the network;
a plurality of work queues coupled to the network interface controller for posting data transfer requests thereto;
a user agent coupled to the send and receive buffers, the operating system communications facility and the network interface controller, the user agent posting data transfer requests to the work queues in response to commands from the operating system communications facility, the network interface controller processing the posted data transfer requests by transferring data between the send and receive buffers and a network.
-
-
5. An endpoint system for communicating with another endpoint system across a network, the endpoint system comprising:
-
an interface consumer, including;
an application;
a plurality of send and receive buffers;
a transport service provider providing an end-to-end credit-based flow control for transferring data; and
an interface user agent;
an interface provider including;
a kernel agent;
a plurality of work queues; and
a network interface controller;
said interface user agent issuing one or more control commands to the kernel agent to establish a connection across the network and posting data transfer requests to the work queues in response to commands from the transport service provider; and
the network interface controller processing the data transfer requests by transferring data between the send and receive buffers and the network. - View Dependent Claims (6, 7)
the interface consumer comprises Virtual Interface (VI) consumer in accordance with at least a portion of the Virtual Interface Architecture and which also includes the transport service provider providing an end-to-end credit-based flow control for transferring data between endpoints; and
the interface provider comprises a Virtual Interface (VD) provider in accordance with at least a portion of the Virtual Interface Architecture.
-
-
7. The endpoint system of claim 5, wherein the user agent comprises a Virtual Interface (VI) user agent, the kernel agent comprises a Virtual Interface (VI) kernel agent, and the network interface controller comprises a Virtual Interface (VI) network interface controller.
-
8. An endpoint system for communicating with another endpoint system across a network, said endpoint system comprising:
-
an application including send and receive application buffers;
an operating system communications facility to receive commands from the application;
a transport service provider to receive commands from the operating system communications facility, the transport service provider providing an end-to-end credit-based flow control for data transfer across the network;
a network interface controller coupled to the network;
a plurality of work queues for posting data transfer requests thereto; and
a user agent to post data transfer requests to the work queues in response to commands from the operating system communications facility, the network interface controller processing the posted data transfer requests by transferring data between the send and receive buffers and said network.
-
Specification