Systems and methods for queue management in packet-switched networks
AssigneesVerizon Patent and Licensing Inc., BBN Technologies Corp.
InventorsChristine Elaine Jones, Gregory Donald Troxel
Life of this patent
Estimating the term…
Abstract
This disclosure relates to methods and systems for queuing traffic in packet-switched networks. In one of many possible embodiments, a queue management system includes a plurality of queues and a priority module configured to assign incoming packets to the queues based on priorities associated with the incoming packets. The priority module is further configured to drop at least one of the packets already contained in the queues. The priority module is configured to operate across multiple queues when determining which of the packets contained in the queues to drop. Some embodiments provide for hybrid queue management that considers both classes and priorities of packets.
Claims43
A system, comprising:
- a plurality of queues;
- a plurality of priority levels associated with said queues;
- and
- a priority module configured to
- dynamically determine a group of said queues based on said priority levels,
- assign incoming packets to said queues based on priorities associated with the incoming packets,
- drop at least one of a plurality of packets already contained in said group of said queues, operate across multiple said queues when determining which of said plurality of packets contained in said queues to drop, and
- drop at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues, wherein said group of said queues comprises a first of said queues having a first priority level, and each of said queues having higher priority levels than said first priority level.
A system, comprising:
- a plurality of queues;
- a plurality of priority levels associated with said queues;
- and
- a priority module configured to
- dynamically determine a group of said queues based on said priority levels,
- assign incoming packets to said queues based on priorities associated with the incoming packets,
- drop one or more of the incoming packets before the number of packets already contained in said queues has reached a maximum occupancy,
- operate on said group of said queues when determining which of the incoming packets to drop, and
- drop at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues, wherein said group comprises a first of said queues having a first priority level, and each of said queues having higher priority levels than said first priority level.
A system, comprising:
- a plurality of classes;
- a plurality of queues within each of said classes;
- a plurality of priority levels associated with said queues;
- a classifier configured to selectively assign incoming packets to said classes;
- a priority module for each of said classes, said priority module being configured to
- dynamically determine a group of said queues based on said priority levels,
- assign the incoming packets within each of said classes to said queues based on priorities associated with the incoming packets,
- drop one or more of the incoming packets before the number of packets already contained in said queues has reached a maximum occupancy,
- operate across multiple said queues when determining which of the incoming packets to drop, and
- drop at least one of said plurality of packets from a first of said queues of said group of said queues to make room for assigning at least one of the incoming packets to a second of said queues:
- and
- a combination of at least one priority scheduler and at least one class scheduler, said combination being configured to selectively schedule said packets contained in said queues for transmission based on said classes and said priority levels.
A system, comprising:
- a plurality of classes;
- a plurality of queues within each of said classes;
- priority levels associated with said queues;
- a classifier configured to selectively assign incoming packets to said classes;
- a priority module for each of said classes, said priority module being configured to
- assign incoming packets to said queues based on priorities associated with the incoming packets,
- dynamically determine a group of said queues based on said priority levels,
- drop at least one of a plurality of packets already contained in said group of said queues,
- operate across multiple said queues when determining which of said plurality of packets contained in said queues to drop, and
- drop at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues;
- and
- a combination of at least one priority scheduler and at least one class scheduler, said combination being configured to selectively schedule said packets contained in said queues for transmission based on said classes and said priority levels.
A method comprising:
- selectively assigning incoming packets to one of a plurality of classes;
- selectively assigning each of the packets to one of a plurality of queues within each class based on priorities associated with the packets;
- dynamically determining a group of said queues based on priority levels associated with said queues;
- determining whether to drop at least one of a plurality of packets already contained in said queues, said determining step including operating across multiple said queues to make said determination;
- operating on said group of said queues to determine which of said plurality of packets contained in said queues to drop;
- and
- dropping at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues.
A method comprising:
- selectively assigning incoming packets to one of a plurality of classes;
- selectively assigning each of the packets to one of a plurality of queues within each class based on priorities associated with the packets;
- dynamically determining a group of said queues based on priority levels associated with said queues;
- determining whether to drop one or more of the incoming packets before the number of packets already contained in said queues has reached a maximum occupancy, said determining step including operating across multiple said queues to make said determination;
- and
- operating on said group of said queues to determine which of the incoming packets to drop;
- dropping at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues.
A method comprising:
- selectively classifying incoming packets to a plurality of classes;
- and
- within each of said classes:
- selectively assigning the classified incoming packets to a plurality of queues based on priorities associated with the packets;
- dynamically determining a group of said queues based on priority levels associated with said queues;
- determining whether to drop at least one of a plurality of packets already contained in said queues, said determining step including operating across multiple said queues to make said determination;
- operating on said group of said queues to determine which of said plurality of packets contained in said queues to drop;
- and
- dropping at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues.
A method comprising:
- selectively classifying incoming packets to a plurality of classes;
- and
- within each of said classes:
- selectively assigning the classified incoming packets to a plurality of queues based on priorities associated with the packets;
- dynamically determining a group of said queues based on priority leveles associated with said queues;
- determining whether to drop one or more of the classified incoming packets before the number of packets already contained in said queues has reached a maximum occupancy, said determining step including operating across multiple said queues to make said determination;
- operating on said group of said queues to determine which of the classified incoming packets to drop;
- and
- dropping at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues.
A computer-readable medium having instructions thereon, said instructions being configured to instruct a computer to perform the steps of:
- selectively classifying incoming packets to a plurality of classes;
- and
- within each of said classes:
- selectively assigning the classified incoming packets to a plurality of queues based on priorities associated with the packets;
- determining whether to drop one or more of the classified incoming packets before the number of packets already contained in said queues has reached a maximum occupancy, said step of determining whether to drop one or more of the classified incoming packets including
- dynamically selecting a group of said queues based on the priority associated with at least one the incoming packets, said group including multiple said queues, and
- operating across said group of said queues to make said determination;
- determining whether to drop at least one of said packets already contained in said queues, said step of determining whether to drop at least one of said packets already contained in said queues including operating across said group of said queues to make said determination;
- and
- dropping at least one of said plurality of packets from a first of said queues to make room for assigning at least one of the incoming packets to a second of said queues.
Dependencies are inferred from the claim text.