Back to results
US 8,576,863 B2Granted
Coordinated queuing between upstream and downstream queues in a network device
AssigneeJuniper Networks, Inc.
InventorsQingming Ma, Jiaxiang Su
Life of this patent
Estimating the term…
Abstract
A system determines a scheduling value based on a current length of a downstream queue in a network device. The system sends the scheduling value from the downstream queue to an upstream queue and schedules dequeuing of one or more data units, destined for the downstream queue, from the upstream queue based on the scheduling value.
Claims20
A device comprising:
- a first upstream queue to queue a first data unit and a second data unit;
- a first downstream queue;
- and
- a scheduler to:
- determine a first scheduling value, associated with the first downstream queue, based on:
- a first priority value associated with the first downstream queue,
- a maximum size of the first downstream queue, and
- a fill level of the first downstream queue prior to the first upstream queue dequeuing the first data unit or the second data unit,
- cause, based on the first scheduling value, the first data unit to be transferred from the first upstream queue to the first downstream queue via an interconnect,
- the first downstream queue buffering the first data unit for transmission toward a destination,
- determine an updated first scheduling value based on:
- the first priority value associated with the first downstream queue,
- the maximum size of the first downstream queue, and
- an updated fill level of the first downstream queue after the first downstream queue buffers the first data unit and prior to the transmission of the first data unit toward the destination, and cause
- the second data unit to be transferred, via the interconnect, from the first upstream queue to the first downstream queue when a difference between the updated first scheduling value and the first scheduling value is greater than a particular threshold, or
- the second data unit to be transferred, via the interconnect, from the first upstream queue to the first downstream queue, when:
- the difference between the updated first scheduling value and the first scheduling value is not greater than the particular threshold, and
- a last notification, associated with the first downstream queue receiving data, is not associated with a timeout.
15 more elements
A method comprising:
- determining, by a network device, a first scheduling value, associated with a first downstream queue, based on:
- a first priority value associated with the first downstream queue,
- a maximum size of the first downstream queue, and
- a fill level of the first downstream queue prior to a first upstream queue dequeuing a first data unit;
- causing, by the network device and based on the first scheduling value, the first data unit to be transferred from the first upstream queue to the first downstream queue via an interconnect,
- the first downstream queue buffering the first data unit for transmission toward a destination;
- determining, by the network device, an updated first scheduling value based on:
- the first priority value associated with the first downstream queue,
- the maximum size of the first downstream queue, and
- an updated fill level of the first downstream queue after the first downstream queue buffers the first data unit and prior to the transmission of the first data unit toward the destination;
- and
- causing, by the network device, a second data unit enqueued in the first upstream queue to be transferred, via the interconnect, from the first upstream queue to the first downstream queue when:
- a difference between the updated first scheduling value and the first scheduling value is greater than a particular threshold;
- or
- the difference between the updated first scheduling value and the first scheduling value is not greater than the particular threshold, and a last notification, associated with the first downstream queue receiving data, is not associated with a timeout.
12 more elements
A non-transitory computer-readable medium to store instructions, the instructions comprising:
- one or more instructions that, when executed by one or more devices, cause the one or more devices to:
- determine a first scheduling value, associated with a first downstream queue, based on:
- a first priority value associated with the first downstream queue,
- a maximum size of the first downstream queue, and
- a fill level of the first downstream queue prior to a first upstream queue dequeuing a first data unit;
- cause, based on the first scheduling value, the first data unit to be transferred from the first upstream queue to the first downstream queue via an interconnect,
- the first downstream queue buffering the first data unit for transmission toward a destination;
- determine an updated first scheduling value based on:
- the first priority value associated with the first downstream queue,
- the maximum size of the first downstream queue, and
- an updated fill level of the first downstream queue after the first downstream queue buffers the first data unit and prior to the transmission of the first data unit toward the destination;
- and
- cause a second data unit enqueued in the first upstream queue to be transferred, via the interconnect, from the first upstream queue to the first downstream queue when:
- a difference between the updated first scheduling value and the first scheduling value is greater than a particular threshold;
- or
- the difference between the updated first scheduling value and the first scheduling value is not greater than the particular threshold, and a last notification, associated with the first downstream queue receiving data, is not associated with a timeout.
13 more elements
Dependencies are inferred from the claim text.