IP Library › Granted Patent US 9,426,083
Granted Patent B2
US 9,426,083 · App. 12/569,824 · Granted Aug 23, 2016

Consistency checking for credit-based control of data communications

Inventor: Michael L. Ziegler (Roseville, CA)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
H04L47/39H04L49/505H04L49/555
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 9,426,083
App. No.
12/569,824
Filed
Sep 29, 2009
Granted
Aug 23, 2016
Kind
B2
Art Unit
2461
USPC
370/229
Abstract

A credit-based method for controlling data communications in a computer system between a sender and a receiver coupled by an ordered communication link is described herein. A request for a credit check is transmitted from the sender to the receiver via the ordered communication link. An initial number of credits are allocated to the sender in a credit counter. A snapshot counter is set to a value of the credit counter and us updated as returned credits are received. A number of reported credits are determined based on a credit check response message received from the receiver. The returned credits are ordered relative to the credit check response message. The number of credits is checked for consistency based on a number of the snapshot counter and the number of reported credits.

Claims (47)

1. A credit-based method for controlling data communications in a computer system between a sender and a receiver coupled by an ordered communication link, the method comprising:

transmitting a request for a credit check from the sender to the receiver via the ordered communication link, wherein an initial number of credits is allocated to the sender in a credit counter, each credit corresponding to a portion of memory space in the receiver reserved to store a packet received from the sender;

setting a snapshot counter to a value of the credit counter;

updating the snapshot counter as returned credits are received;

determining a number of reported credits based on a credit check response message received from the receiver, wherein the returned credits are ordered relative to the credit check response message; and

checking the number of credits in the computer system for consistency based on a number of the snapshot counter and the number of reported credits.

2. The method of claim 1 , wherein the snapshot counter is set to the value of the credit counter as of the time the request was transmitted.

3. The method of claim 1 , wherein the number of reported credits includes a number of credits corresponding to an amount of freed memory space and a number of credits corresponding to an amount of occupied memory space.

4. The method of claim 3 , wherein the number of credits corresponding to an amount of freed memory space excludes credits returned to the sender.

5. The method of claim 1 , further comprising:

ascertaining a sum of the number of the snapshot counter and the number of reported credits; and

comparing the sum to the initial number of credits allocated to the sender.

6. The method of claim 5 , further comprising:

determining the sum matches the initial number of credits allocated to the sender; and

validating the flow of credits from the sender to the receiver via the ordered communications channel.

7. The method of claim 1 , further comprising:

determining an inconsistency with the number of credits in the computer system upon detection of a credit loss or a credit gain.

8. The method of claim 1 , wherein the response message is received via a reverse direction of the ordered communication link.

9. A network device for credit-based flow control, the device comprising:

a sender node including a credit manager;

a receiver node including a buffer; and

a first ordered communication link, coupling the sender node to the receiver node for transmission of data packets from the sender node to the buffer of the receiver node; wherein the credit manager is configured to:

transmit a request for a credit check from the sender node to the receiver node via the first ordered communication link, wherein an initial number of credits is allocated to the sender node in a credit counter, each credit corresponding to a portion of buffer space in the receiver node reserved to store data packets received from the sender node;

set a snapshot counter to a value of the credit counter;

update the snapshot counter as returned credits are received;

determine a number of reported credits based on a credit check response message received from the receiver, wherein the returned credits are ordered relative to the credit check response message; and

check the number of credits in the network device for consistency based on a number of the snapshot counter and the number of reported credits.

10. The method of claim 9 , wherein the snapshot counter is set to the value of the credit counter as of the time the request was transmitted.

11. The method of claim 9 , wherein the number of reported credits includes a number of credits corresponding to an amount of freed buffer space and a number of credits corresponding to an amount of occupied buffer space.

12. The method of claim 11 , wherein the credit manager is further configured to:

ascertain a sum of the number of the snapshot counter and the number of reported credits; and

compare the sum to the initial number of credits allocated to the sender.

13. The method of claim 9 , the device further comprising a second ordered communication link, coupling the sender node to the receiver node for transmission of data packets from the receiver node to a buffer of the receiver node, wherein the response message is received via the second ordered communication link.

14. A non-transitory computer-readable medium storing a plurality of instructions for controlling a data processor for controlling data communications in a computer system between a sender and a receiver coupled by an ordered communication link, the plurality of instructions comprising:

instructions that cause the data processor to transmit a request for a credit check from the sender to the receiver via the ordered communication link, wherein an initial number of credits is allocated to the sender in a credit counter, each credit corresponding to a portion of memory space in the receiver reserved to store a packet received from the sender;

instructions that cause the data processor to set a snapshot counter to a value of the credit counter;

instructions that cause the data processor to update the snapshot counter as returned credits are received;

instructions that cause the data processor to determine a number of reported credits based on a credit check response message received from the receiver, wherein the returned credits are ordered relative to the credit check response message; and

instructions that cause the data processor to check the number of credits in the computer system for consistency based on a number of the snapshot counter and the number of reported credits.

15. The non-transitory computer-readable medium of claim 14 , wherein the snapshot counter is set to the value of the credit counter as of the time the request was transmitted.

16. The non-transitory computer-readable medium of claim 14 , wherein the number of reported credits includes a number of credits corresponding to an amount of freed memory space and a number of credits corresponding to an amount of occupied memory space.

17. The non-transitory computer-readable medium of claim 16 , wherein the number of credits corresponding to an amount of freed memory space excludes credits returned to the sender.

18. The non-transitory computer-readable medium of claim 14 , wherein the response message is received via a reverse direction of the ordered communication link.

19. The non-transitory computer-readable medium of claim 14 , wherein the plurality of instructions further comprise:

instructions that cause the data processor to ascertain a sum of the number of the snapshot counter and the number of reported credits; and

instructions that cause the data processor to compare the sum to the initial number of credits allocated to the sender.

20. The non-transitory computer-readable medium of claim 14 , wherein the plurality of instructions further comprise instructions that cause the data processor to determine an inconsistency with the number of credits upon detection of a credit loss or a credit gain.

Assignments (2)
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 Jun 15, 2010
From: ZIEGLER, MICHAEL L
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 024536/0065 →
Continuity (1)
Related Publication 20110075555A1 · Mar 31, 2011