IP Library Granted Patent US 8,150,996
Granted Patent B2
US 8,150,996 · App. 10/737,207 · Granted Apr 3, 2012

Method and apparatus for handling flow control for a data transfer

Assignee: Hewlett-Packard Development Company, L.P.
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 8,150,996
App. No.
10/737,207
Granted
Apr 3, 2012
Kind
B2
Abstract

The disclosed embodiments relate to an apparatus and method for managing flow control of a data transfer. An apparatus according to embodiments of the present invention may comprise a first protocol associated with a plurality of receive buffers, a second protocol adapted to manage the plurality of receive buffers for the first protocol, and a third protocol that determines whether one of the plurality of receive buffers is available for a data packet and (a) if one of the plurality of receive buffers is available, permits an acknowledgement packet to be sent to a node that sent the data packet, and (b) if one of the plurality of receive buffers is unavailable, drops the data packet, notifies the second protocol regarding the unavailability of the plurality of receive buffers, and withholds the acknowledgement packet.

Claims (40)

1. An apparatus for managing flow control of a data transfer, comprising:

a processor adapted to operate according to a first protocol associated with a plurality of receive buffers, the processor being further adapted to operate according to a second protocol adapted to manage the plurality of receive buffers for the first protocol, the processor being further adapted to operate according to a third protocol that determines whether one of the plurality of receive buffers is available for a data packet and (a) if one of the plurality of receive buffers is available, permits an acknowledgement packet to be sent to a node that sent the data packet, and (b) if one of the plurality of receive buffers is unavailable, drops the data packet, notifies the second protocol regarding the unavailability of the plurality of receive buffers, and withholds the acknowledgement packet.

2. The apparatus set forth in claim 1 , wherein the first protocol is an upper layer protocol (“ULP”).

3. The apparatus set forth in claim 2 , wherein the upper layer protocol is an internet small computer systems interface (“iSCSI”) protocol.

4. The apparatus set forth in claim 1 , wherein the second protocol is a datamover protocol.

5. The apparatus set forth in claim 1 , wherein the third protocol is an iWARP protocol.

6. The apparatus set forth in claim 5 , wherein the iWARP protocol is a direct data placement (“DDP”) protocol.

7. The apparatus set forth in claim 1 , comprising a transport protocol that generates a request to the third protocol to determine whether one of the plurality of receive buffers is available for the data packet.

8. The apparatus set forth in claim 1 , wherein the data packet comprises a sequence field that corresponds to a reliability tracking value for the data packet.

9. The apparatus set forth in claim 1 , wherein the acknowledgement packet comprises an acknowledgement field that corresponds to an identity of data received by the transport protocol.

10. The apparatus set forth in claim 1 , comprising a transport protocol that uses a remote direct memory access network interface card (“RNIC”) to receive the data packet and send the acknowledgement packet.

11. A network, comprising:

a plurality of systems, at least one of the plurality of systems executing a process; and

at least one input/output device adapted to receive a data packet from the at least one of the plurality of systems, the at least one input/output device comprising:

a first protocol associated with a plurality of receive buffers;

a second protocol adapted to manage the plurality of receive buffers for the first protocol; and

a third protocol that determines whether one of the plurality of receive buffers is available for a data packet and (a) if one of the plurality of receive buffers is available, permits an acknowledgement packet to be sent to a node that sent the data packet, and (b) if one of the plurality of receive buffers is unavailable, drops the data packet, notifies the second protocol regarding the unavailability of the plurality of receive buffers, and withholds the acknowledgement packet.

12. The network set forth in claim 11 , wherein the first protocol is an upper layer protocol (“ULP”).

13. The network set forth in claim 12 , wherein the upper layer protocol is an internet small computer systems interface (“iSCSI”) protocol.

14. The network set forth in claim 11 , wherein the second protocol is a datamover protocol.

15. The network set forth in claim 11 , wherein the third protocol is an iWARP protocol.

16. The network set forth in claim 15 , wherein the iWARP protocol is a direct data placement (“DDP”) protocol.

17. The network set forth in claim 11 , comprising a transport protocol that generates a request to the third protocol to determine whether one of the plurality of receive buffers is available for the data packet.

18. The network set forth in claim 11 , wherein the data packet comprises a sequence field that corresponds to a reliability tracking value for the data packet.

19. The network set forth in claim 11 , wherein the acknowledgement packet comprises an acknowledgement field that corresponds to an identity of data received by the transport protocol.

20. The network set forth in claim 11 , comprising a transport protocol that uses a remote direct memory access network interface card (“RNIC”) to receive the data packet and send the acknowledgement packet.

21. A method of managing flow control of a data transfer, the method comprising the acts of:

receiving a data packet;

determining whether at least one receive buffer is available for the data packet;

if the at least one buffer is available, sending an acknowledgement packet to a node that sent the data packet; and

if the at least one buffer is unavailable, dropping the data packet, providing a notification regarding the unavailability of the at least one buffer, and withholding an acknowledgement packet from the node that sent the data packet.

22. The method set forth in claim 21 , comprising the act of placing the data packet into the at least one buffer if the at least one buffer is available.

23. The method set forth in claim 21 , comprising the act of transmitting the data packet according to a transmission control protocol (“TCP”).

24. The method set forth in claim 21 , comprising the act of providing the notification regarding the unavailability of the at least one buffer via an internet small computer systems interface (“iSCSI”) protocol.

25. The method set forth in claim 21 , comprising the act of notifying a process associated with the at least one buffer once the at least one buffer is determined to be unavailable.

26. An apparatus for managing flow control of a data transfer, comprising:

means for receiving a data packet at a first protocol;

means for determining whether at least one receive buffer is available for the data packet;

means for sending an acknowledgement packet to a node that send the data packet if the at least one buffer is available; and

means for dropping the data packet, notifying a second protocol regarding the unavailability of the at least one buffer, and preventing an acknowledgement packet from being sent if the at least one buffer is unavailable.

Assignments (3)
SECURITY INTEREST Recorded Jun 29, 2026
From: MIRAI CASTING AMERICA, INC.
To: SECOND AVENUE CAPITAL PARTNERS, LLC
Reel/Frame 075121/0147 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2004
From: HAAGENS, RANDY; CHADALAPAKA, MALLIKARJUN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 015260/0741 →
Continuity (1)
Related Publication 20050131986A1 · Jun 16, 2005