Link level packet flow control mechanism
AssigneeIntel Corporation
InventorsDean S. Susnow, Richard D. Reohr JR.
Life of this patent
Estimating the term…
Abstract
A data network comprising a host system having a host-fabric adapter; at least one remote system; a switch fabric which interconnects said host system via said host-fabric adapter to said remote system along different physical links for data communications; and at least one communication port provided in the host-fabric adapter of the host system including a set of transmit and receive buffers capable of sending and receiving data packets concurrently via respective transmitter and receiver at an end of a physical link, via the switched fabric, and a flow control mechanism utilized to prevent loss of data due to receive buffer overflow at the end of the physical link.
Claims25
A Link Packet Scheduler for each virtual lane (VL) at a given port, comprising:
- a N-bit counter arranged to accumulate free credits relinquished, when a data packet is removed from a receive buffer and that buffer space is reclaimed as available for data packet storage, or when a link packet is received whose Flow Control Total Bytes Sent (FCTBS) field differs from actual blocks received (ABR) at the given port;
- a first comparator arranged to make comparison between accumulated free credits from the N-bit counter and a programmable credit threshold;
- a second comparator arranged to make comparison between a current buffer receive utilization indicating a data storage level of the receive buffer and a programmable utilization threshold;
- and
- a logic device arranged to track a current link state of the corresponding port, to monitor the amount of receive buffer resources from the first and second comparators and to schedule for the transmission of a link packet, via a physical link.
A data network, comprising:
- a host system having a host-fabric adapter;
- at least one remote system;
- a switch fabric which interconnects said host system via said host-fabric adapter to said remote system along different physical links for data communications;
- and
- one or more communication ports provided in said host-fabric adapter of said host system each port including a set of transmit and receive buffers capable of sending and receiving data packets concurrently via respective transmitter and receiver at an end of a physical link, via said switched fabric, and a flow control mechanism utilized to prevent loss of data due to receive buffer overflow at the end of said physical link.
A method of flow control of a link packet in a host-fabric adapter installed in a data network, comprising:
- determining when a Link State Machine transitions into one of a LinkInitialize state, a LinkArm state and a LinkActive state, or when a configuration strap for enabling loopback operation changes state;
- if the Link State Machine transitions into one of the LinkInitialize state, the LinkArm state and a LinkActive state, or when the configuration strap for enabling loopback operation changes states, scheduling transmission of a link packet for all supported virtual lanes VLs on a given port;
- if the Link State Machine does not transition into one of the LinkInitialize state, the LinkArm state and a LinkActive state, or when the configuration strap for enabling loopback operation does not change states, determining whether a Link Packet Watchdog Timer per virtual lane VL has expired;
- if the per VL Link Packet Watchdog Timer has expired, scheduling transmission of a link packet for that virtual lane VL;
- if the per VL Link Packet Watchdog Timer has not expired, determining whether a receive buffer utilization indicating a data storage level of the receive buffer exceeds a programmable utilization threshold;
- if the receive buffer utilization exceeds the programmable utilization threshold, prohibiting transmission of a link packet for that virtual lane VL;
- if the receive buffer utilization does not exceed the programmable utilization threshold, determining whether free credits accumulated exceeds a programmable credit threshold;
- if the free credits accumulated exceeds the programmable credit threshold, scheduling transmission of a link packet for that virtual lane VL;
- and
- if the free credits accumulated does not exceed the programmable credit threshold, prohibiting transmission of a link packet for that virtual lane VL.
Dependencies are inferred from the claim text.