Patent ID: 11924105
Assignee: MARVELL ASIA PTE LTD
Field: Digital communication (Electrical engineering)
Classification: CPC H | IPC H

Claim 0:
1. In a storage area network including a first plurality of host devices, a second plurality of target devices, and a network fabric operating in accordance with a transport-level protocol to interconnect the first plurality of host devices and the second plurality of target devices, for transport of requests from host devices in the first plurality of host devices to target devices in the second plurality of target devices, and for transport of responses to the requests from the target devices in the plurality of target devices to the host devices in the plurality of host devices, where the transport-level protocol issues congestion notifications when any of the host devices in the first plurality of host devices or any of the target devices in the second plurality of target devices becomes congested, a method for reducing congestion, the method comprising:
on receipt of a current request to (a) write data to one of the target devices in the plurality of target devices, or (b) read data from a target device in the plurality of target devices for return to one of the host devices in the plurality of host devices:
determining whether a congestion state already exists at (a) the one of the target devices to which the request to write data is directed, or (b) the one of the host devices to which data from the request to read data is to be returned;
when a congestion state already exists, comparing current depth of a queue of (1) write requests to the one of the target devices, or (2) read requests for return to the one of the host devices, to a maximum permissible queue depth;
when the current depth of the queue of (i) write requests to the one of the target devices, or (ii) read requests for return to the one of the host devices, exceeds the maximum permissible queue depth, rejecting the request; and
when the request is not rejected:
incrementing a current queue depth of (a) the one of the target devices to which the request to write data is directed, or (b) the one of the host devices to which data from the request to read data is to be returned, and
adjusting a maximum observed queue depth of (a) the one of the target devices to which the request to write data is directed, or (b) the one of the host devices to which data from the request to read data is to be returned, to a larger one of (c) the current queue depth, and (d) a previous maximum observed queue depth during a current time interval.