IP Library Granted Patent US 9,426,084
Granted Patent B1
US 9,426,084 · App. 14/609,945 · Granted Aug 23, 2016

Methods and systems for controlling transmission rates in networks

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,084
App. No.
14/609,945
Granted
Aug 23, 2016
Kind
B1
Abstract

Methods and systems for network communications are disclosed. In particular methods and systems for providing communications rate controls from remote sources are provided. For example, a machine-implemented method includes: managing, at a target, a request to transmit (R2T) queue and an associated data credit counter; incrementing the data credit counter based on an allowed transfer rate; selecting an R2T packet from the R2T queue; determining if the R2T packet should be sent based on the data credit counter; sending the R2T packet to an initiator when the R2T packet indicates data transfer less than the data credit counter; and decrementing the data credit counter based on the R2T packet when the R2T packet is sent.

Claims (76)

1. A machine implemented method, comprising:

managing, at a target, a request to transmit (R2T) queue and an associated data credit counter;

incrementing the data credit counter based on an allowed transfer rate;

selecting an R2T packet from the R2T queue;

determining if the R2T packet should be sent based on the data credit counter;

sending the R2T packet to an initiator when the R2T packet indicates data transfer less than the data credit counter; and

decrementing the data credit counter based on the R2T packet when the R2T packet is sent.

2. The method of claim 1 , wherein the allowed transfer rate is based on a minimum data rate or a maximum data rate.

3. The method of claim 2 , further comprising:

receiving a request to send an R2T packet;

adding a new R2T packet to the R2T queue when there are other R2T packets in the queue;

when there are no other R2T packets in the queue, sending the new R2T packet to an initiator when the new R2T packet indicates data transfer less than the data credit counter; and

when the new R2T packet indicates data transfer less than the data credit counter, decrementing the data credit counter based on the new R2T packet.

4. The method of claim 1 , wherein the R2T packet comprises an iSCSI R2T packet.

5. The method of claim 1 , wherein:

managing the R2T queue and the associated data credit counter are accomplished in conjunction with an iSCSI communications layer; and

sending the R2T packet to the initiator when the R2T packet indicates data transfer less than the data credit counter occurs, at least in part, with a TCP communications layer.

6. The method of claim 1 further comprising:

managing, at a second initiator, a throttle queue and an associated second data credit counter;

incrementing the second data credit counter based on an allowed transfer rate;

processing a data transmission request having an associated data transmission;

determining if the data transmission should be sent based on the second data credit counter;

sending the data transmission to a second target, when the data transmission request indicates a data transfer less than the second data credit counter; and

decrementing the second data credit counter based on the data transmission request, when the data transmission request indicates a data transfer less than the second data credit counter.

7. The method of claim 6 wherein the second initiator and the target are the same computing system.

8. A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:

manage, at a target, a request to transmit (R2T) queue and an associated data credit counter;

increment the data credit counter based on an allowed transfer rate;

select an R2T packet from the R2T queue;

determine if the R2T packet should be sent based on the data credit counter;

send the R2T packet to an initiator when the R2T packet indicates data transfer less than the data credit counter; and

decrement the data credit counter based on the R2T packet when the R2T packet is sent.

9. The storage medium of claim 8 , wherein the allowed transfer rate is based on a minimum data rate or a maximum data rate.

10. The storage medium of claim 9 , further comprising code to:

receive a new R2T packet;

add the R2T packet to the R2T queue when there are other R2T packets in the queue;

when there are no other R2T packets in the queue, send the new R2T packet to an initiator when the new R2T packet indicates data transfer less than the data credit counter; and

when the new R2T packet indicates data transfer less than the data credit counter, decrement the data credit counter based on the new R2T packet.

11. The storage medium of claim 8 , wherein the R2T packet comprises an iSCSI R2T packet.

12. The storage medium of claim 8 , wherein the code to:

manage the R2T queue and the associated data credit counter are accomplished in conjunction with an iSCSI communications layer; and

send the R2T packet to the initiator when the R2T packet indicates data transfer less than the data credit counter occurs, at least in part, with a TCP communications layer.

13. The storage medium of claim 8 , wherein the instructions further comprise code to:

manage, at a second initiator, a throttle queue and an associated second data credit counter;

increment the second data credit counter based on an allowed transfer rate;

process a data transmission request having an associated data transmission;

determine if the data transmission should be sent based on the second data credit counter;

send the data transmission to a second target, when the data transmission request indicates a data transfer less than the second data credit counter; and

decrement the second data credit counter based on the data transmission request, when the data transmission request indicates a data transfer less than the second data credit counter.

14. The storage medium of claim 13 , wherein the second initiator and the target are the same computing system.

15. A system, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and

a processor module coupled to the memory, the processor module configured to execute the machine executable code to:

manage, at a target, a request to transmit (R2T) queue and an associated data credit counter;

increment the data credit counter based on an allowed transfer rate;

select an R2T packet from the R2T queue;

determine if the R2T packet should be sent based on the data credit counter;

send the R2T packet to an initiator when the R2T packet indicates data transfer less than the data credit counter; and

decrement the data credit counter based on the R2T packet when the R2T packet is sent.

16. The system of claim 15 , wherein the allowed transfer rate is based on a minimum data rate or a maximum data rate.

17. The system of claim 16 , further comprising instructions to:

receive a new R2T packet;

add the R2T packet to the R2T queue when there are other R2T packets in the queue;

when there are no other R2T packets in the queue, send the new R2T packet to an initiator when the new R2T packet indicates data transfer less than the data credit counter; and

when the new R2T packet indicates data transfer less than the data credit counter, decrement the data credit counter based on the new R2T packet.

18. The system of claim 15 , wherein the R2T packet comprises an iSCSI R2T packet.

19. The system of claim 15 , wherein the code to:

manage the R2T queue and the associated data credit counter are accomplished in conjunction with an iSCSI communications layer; and

send the R2T packet to the initiator when the R2T packet indicates data transfer less than the data credit counter occurs, at least in part, with a TCP communications layer.

20. The system of claim 15 , wherein the instructions further comprise code to:

manage, at a second initiator, a throttle queue and an associated second data credit counter;

increment the second data credit counter based on an allowed transfer rate;

process a data transmission request having an associated data transmission;

determine if the data transmission should be sent based on the second data credit counter;

send the data transmission to a second target, when the data transmission request indicates a data transfer less than the second data credit counter; and

decrement the second data credit counter based on the data transmission request, when the data transmission request indicates a data transfer less than the second data credit counter.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2015
From: BARE, BALLARD; BUEB, PATRICK; HARRIS, MARTIN; SCOVILLE, DEAN
To: QLOGIC, CORPORATION
Reel/Frame 035073/0865 →