Patent ID: 7869356

Claim:
A method for handling Transaction Layer Packets (TLPs) from devices in a switch, wherein the TLPs have sizes and contain a header and a payload, the method comprising: subtracting a first number of credits from a header credit pool associated with a first port on which a first device is connected; determining if the amount of credits in the header credit pool associated with the first port is less than a first predetermined threshold; if the amount of credits in the header credit pool associated with the first port is less than the first predetermined threshold, assigning a second number of credits from a shared credit pool to the header credit pool associated with the first port; subtracting a third number of credits from a payload credit pool associated with the first port; determining if the amount of credits in the payload credit pool associated with the first port is less than a second predetermined threshold; if the amount of credits in the payload credit pool associated with the first port is less than the second predetermined threshold, assigning a fourth number of credits from the shared credit pool to the payload credit pool associated with the first port; receiving, from a second device, a request for credits for a second TLP; subtracting a fifth number of credits from a header credit pool associated with a second port on which the second device is connected; determining if the amount of credits in the header credit pool associated with the second port is less than a third predetermined threshold; if the amount of credits in the header credit pool associated with the first port is less than the third predetermined threshold, assigning a sixth number of credits from the shared credit pool to the header credit pool associated with the second port; subtracting a seventh number of credits from a payload credit pool associated with the second port; determining if the amount of credits in the payload credit pool associated with the second port is less than a fourth predetermined threshold; and if the amount of credits in the payload credit pool associated with the second port is less than the fourth predetermined threshold, assigning an eighth number of credits from the shared credit pool to the payload credit pool associated with the second port.