Control of preemption-based beat-down effect
AssigneeCisco Technology, Inc.
InventorsAnna Charny, Francois Le Faucheur
Life of this patent
Estimating the term…
Abstract
In one embodiment, a node receives packets from one or more input interfaces, and may place the packets in an appropriate output queue for a corresponding output interface. The node may also place received unmarked packets from each of the input interfaces in a corresponding virtual queue of a virtual scheduler for the corresponding output interface. The virtual scheduler may be served at a configured rate, and any unmarked packets in the virtual queue that exceed a configured threshold may be marked.
Claims30
A method, comprising:
- receiving previously marked and previously unmarked packets at a node from one or more input interfaces, the marked and previously unmarked packets associated with two or more flows;
- placing the previously marked and the previously unmarked packets from each of the input interfaces in an output queue corresponding to an output interface of the node;
- placing previously unmarked packets from each of the input interfaces in a plurality of virtual queues of a virtual scheduler, each previously unmarked packet placed in a virtual queue of the plurality of virtual queues that corresponds to both a flow of the two or more flows to which the previously unmarked packet belongs and the output interface, such that previously unmarked packets of different flows destined for the same output interface are placed in different virtual queues;
- serving the virtual scheduler at a configured rate;
- marking any previously unmarked packets associated with a virtual queue of the plurality of virtual queues when a number of unmarked packets in that virtual queue exceeds a configured threshold of that virtual queue;
- and
- not placing marked packets in the plurality of virtual queues.
A node, comprising:
- one or more input interfaces adapted to receive previously marked and previously unmarked packets from two or more packet flows;
- one or more output interfaces;
- an output queue corresponding to each of the output interfaces, each output queue adapted to receive previously marked and the previously unmarked packets from the one or more input interfaces;
- a virtual scheduler corresponding to each of the output interfaces, the virtual scheduler adapted to be served at a configured rate;
- and
- a plurality of virtual queues, each virtual queue corresponding to both a flow of the two or more of flows and to the output interface, each virtual queue configured to queue previously unmarked packets of the corresponding flow when a number of unmarked packets in that virtual queue is less than a configured threshold of that virtual queue and to mark any previously unmarked packets when a number of unmarked packets in that virtual queue exceeds the configured threshold of that virtual queue, wherein the virtual queues are adapted to contain only unmarked packets.
An apparatus, comprising:
- means for receiving previously marked and previously unmarked packets at a node from one or more input interfaces, the marked and previously unmarked packets associated with two or more flows;
- means for placing the previously marked and the previously unmarked packets from each of the input interfaces in an output queue corresponding to an output interface of the node;
- means for placing previously unmarked packets from each of the input interfaces in a plurality of virtual queues of a virtual scheduler, each previously unmarked packet placed in a virtual queue of the plurality of virtual queues that corresponds to both a flow to which the previously unmarked packet belongs and the output interface, such that previously unmarked packets of different flows destined for the same output interface are placed in different virtual queues;
- is means for serving the virtual scheduler at a configured rate;
- means for marking any previously unmarked packets associated with a virtual queue of the plurality of virtual queues when a number of packets in that virtual queue exceeds a configured threshold of that virtual queue;
- and
- means for not placing marked packets in the plurality of virtual queues.
A method, comprising:
- receiving a plurality of packets of a plurality of flows at a node on one or more input interfaces, the plurality of packets including both previously marked packets that include an indication of congestion placed in the packets by another node and unmarked packets that do not include an indication of congestion;
- placing both the previously marked packets and the previously unmarked packets of the plurality of packets in an output queue corresponding to an output interface of the node;
- placing only the previously unmarked packets of the plurality of packets in a plurality of virtual queues, each previously unmarked packet placed in a virtual queue of the plurality of virtual queues that corresponds to both a flow to which the previously unmarked packet belongs and the output interface, such that previously unmarked packets of different flows are placed in different virtual queues;
- serving the plurality of virtual queues at a configured rate;
- determining a number of unmarked packets in one of the virtual queues exceeds a configured threshold of that virtual queue;
- marking to include an indication of congestion any additional previously unmarked packets of the plurality of packets associated with that virtual queue that are received once that virtual queue exceeds the configured threshold and not placing the additional previously unmarked packets in that virtual queue;
- and
- forwarding the plurality of packets from the output queue on the output interface of the node.
A node comprising:
- one or more input interfaces configured to receive a plurality of packets of a plurality of flows, the plurality of packets including both previously marked packets that include an indication of congestion placed in the packets by another node and unmarked packets that do not include an indication of congestion;
- an output interface configured to forward the plurality of packets;
- an output queue corresponding to the output interface, the output queue configured to queue both the previously marked packets and the previously unmarked packets of the plurality of packets;
- a plurality of virtual queues, each virtual queue corresponding to both a flow of the plurality of flows and to the output interface, each virtual queue configured to queue previously unmarked packets of the plurality of packets of the corresponding flow, such that previously unmarked packets of different flows are queued in different virtual queues;
- and
- a virtual scheduler corresponding to the output interface and associated with the virtual queues, the virtual scheduler configured to serve the virtual queues at a configured rate,
- wherein the virtual queues are configured such that when one of the virtual queues exceeds a configured threshold of that virtual queue, any additional previously unmarked packets of the plurality of packets associated with the virtual queue that are received are marked to include an indication of congestion and not placed in that virtual queue.
Dependencies are inferred from the claim text.