IP Library Granted Patent US 8,169,908
Granted Patent B1
US 8,169,908 · App. 10/905,998 · Granted May 1, 2012

Method for discarding corrupted data packets in a reliable transport fabric

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,169,908
App. No.
10/905,998
Granted
May 1, 2012
Kind
B1
Abstract

A method for discarding perpetually-rejected packets in a fabric-based interconnect having a reliable physical layer is disclosed. A transmitting component keeps a count of the number of negative acknowledgements (NAKs) it receives from the receiving component for packets the transmitting component sends. If the transmitting component receives a number of consecutive NAKs for the same packet that exceeds some pre-determined threshold, the packet is not resent, but is, instead, treated as having been acknowledged, and subsequent packets are allowed to be transmitted. Higher-level processes are then notified of the problem so as to allow the error to be dealt with at a higher level, but without obstructing the flow of packets on the physical layer.

Claims (55)

1. A method comprising:

(A) transmitting a particular packet followed by a plurality of subsequent packets from an apparatus through a network to a receiver, wherein (i) the particular packet and the subsequent packets form a sequence of packets and (ii) the particular packet as transmitted is associated with a first identification;

(B) receiving a negative acknowledgment at the apparatus from the receiver after the sequence of packets has been sent, wherein the negative acknowledgment is associated with a second identification, the second identification indicating that the particular packet was not accepted by the receiver;

(C) comparing the first identification with the second identification in the apparatus;

(D) incrementing with the apparatus a number of negative acknowledgments where the comparing indicates that the first identification matches the second identification;

(E) if the number of negative acknowledgments exceeds a predefined threshold, re-transmitting the subsequent packets from the apparatus to the receiver without re-transmitting the particular packet; and

(F) if the number of negative acknowledgments does not exceed the predefined threshold, re-transmitting the sequence of packets with the particular packet from the apparatus to the receiver, wherein the predefined threshold (i) is stored in the apparatus and (ii) has a value based on a priority of the particular packet.

2. The method of claim 1 , wherein the number of negative acknowledgments comprises a count of consecutive negative acknowledgments concerning the particular packet that have been received by the apparatus.

3. The method of claim 1 , wherein the network comprises a fabric-based interconnect.

4. The method of claim 1 , further comprising:

determining with the apparatus if the particular packet was known to be corrupted before being transmitted in response to receiving the negative acknowledgment; and

if the particular packet was corrupted, re-transmitting the subsequent packets from the apparatus to the receiver without re-transmitting the particular packet after receiving the negative acknowledgment.

5. The method of claim 1 , further comprising:

sending a notification to a higher-level process in response to a determination that the number of negative acknowledgments exceeds the predefined threshold.

6. The method of claim 1 , further comprising:

sending a notification from the apparatus to the receiver in response to a determination that the number of negative acknowledgments exceeds the predefined threshold.

7. The method of claim 1 , further comprising:

blocking with the apparatus a transmission of subsequent, never-before-transmitted packets of equal or lesser priority than the particular packet before and during the re-transmission of the sequence of packets if the number of negative acknowledgments does not exceed the predefined threshold.

8. A non-transitory computer readable medium containing computer executable instructions to perform a method in an apparatus, the method comprising:

(A) transmitting a particular packet followed by a plurality of subsequent packets from the apparatus through a network to a receiver, wherein (i) the particular packet and the subsequent packets form a sequence of packets and (ii) the particular packet as transmitted is associated with a first identification;

(B) receiving a negative acknowledgment at the apparatus from the receiver after the sequence of packets has been sent, wherein the negative acknowledgment is associated with a second identification, the second identification indicating that the particular packet was not accepted by the receiver;

(C) comparing the first identification with the second identification in the apparatus;

(D) incrementing with the apparatus a number of negative acknowledgments where the comparing indicates that the first identification matches the second identification;

(E) if the number of negative acknowledgments exceeds a predefined threshold, re-transmitting the subsequent packets from the apparatus to the receiver without re-transmitting the particular packet; and

(F) if the number of negative acknowledgments does not exceed the predefined threshold, re-transmitting the sequence of packets with the particular packet from the apparatus to the receiver, wherein the predefined threshold (i) is stored in the apparatus and (ii) has a value based on a priority of the particular packet.

9. The non-transitory computer readable medium of claim 8 , wherein the number of negative acknowledgments comprises a count of consecutive negative acknowledgments concerning the particular packet that have been received by the apparatus.

10. The non-transitory computer readable medium of claim 8 , wherein the network comprises a fabric-based interconnect.

11. The non-transitory computer readable medium of claim 8 , wherein the method further comprises:

determining using the apparatus if the particular packet was known to be corrupted before being transmitted in response to receiving the negative acknowledgment; and

if the particular packet was corrupted, re-transmitting the subsequent packets from the apparatus to the receiver without re-transmitting the particular packet after receiving the negative acknowledgment.

12. The non-transitory computer readable medium of claim 8 , wherein the method further comprises:

sending a notification to a higher-level process in response to a determination that the number of negative acknowledgments exceeds the predefined threshold.

13. The non-transitory computer readable medium of claim 8 , wherein the method further comprises:

sending a notification from the apparatus to the receiver in response to a determination that the number of negative acknowledgments exceeds the predefined threshold.

14. The non-transitory computer readable medium of claim 8 , wherein the method further comprises:

blocking with the apparatus a transmission of subsequent, never-before-transmitted packets of equal or lesser priority than the particular packet before and during the re-transmission of the sequence of packets if the number of negative acknowledgments does not exceed the predefined threshold.

15. A data processing system comprising:

means for transmitting a particular packet followed by a plurality of subsequent packets from the system through a network to a receiver, wherein (i) the particular packet and the subsequent packets form a sequence of packets and (ii) the particular packet as transmitted is associated with a first identification;

means for receiving a negative acknowledgment at the system from the receiver after the sequence of packets has been sent, wherein the negative acknowledgment is associated with a second identification, the second identification indicating that the particular packet was not accepted by the receiver;

means for comparing the first identification with the second identification in the system;

means for incrementing with the system a number of negative acknowledgments where the means for comparing indicates that the first identification matches the second identification;

means for re-transmitting the subsequent packets from the system to the receiver without re-transmitting the particular packet if the number of negative acknowledgments exceeds a predefined threshold; and

means for re-transmitting the sequence of packets with the particular packet from the system to the receiver if the number of negative acknowledgments does not exceed the predefined threshold, wherein the predefined threshold (i) is stored in the system and (ii) has a value based on a priority of the particular packet.

16. The data processing system of claim 15 , wherein the number of negative acknowledgments comprises a count of consecutive negative acknowledgments concerning the particular packet that have been received by the system.

17. The data processing system of claim 15 , wherein the network comprises a fabric-based interconnect.

18. The data processing system of claim 15 , further comprising:

means for determining with the system if the particular packet was corrupted prior to being transmitted in response to receiving the negative acknowledgment; and

means for re-transmitting the subsequent packets without re-transmitting the particular packet from the system to the receiver after receiving the negative acknowledgment if the particular packet was corrupted.

19. The data processing system of claim 15 , further comprising:

means for sending a notification to a higher-level process in response to a determination that the number of negative acknowledgments exceeds the predefined threshold.

20. The data processing system of claim 15 , further comprising:

means for blocking with the system a transmission of subsequent, never-before-transmitted packets of equal or lesser priority than the particular packet before and during the re-transmission of the sequence of packets if the number of negative acknowledgments does not exceed the predefined threshold.

21. The method of claim 1 , further comprising:

receiving a given negative acknowledgment at the apparatus from the receiver after the sequence of packets has been sent, wherein the given negative acknowledgment is associated with a third identification; and

resetting the number of negative acknowledgments where the first identification is different than the third identification.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
MERGER Recorded Feb 19, 2008
From: LSI SUBSIDIARY CORP.
To: LSI CORPORATION
Reel/Frame 020548/0977 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2005
From: SLUITER, DAVID; THOMAS, DAVID; BUCHANAN, MARK; THOMPSON, TIMOTHY; PAULSON, CHRISTOPHER
To: LSI LOGIC CORPORATION
Reel/Frame 015620/0556 →