Policy based quality of service
DCFirst Claim
1. A method comprising:
- receiving at a packet forwarding device information indicative of one or more traffic groups;
receiving at the packet forwarding device one or more bandwidth parameters for at least one of the one or more traffic groups;
receiving at a first port of a plurality of ports a packet associated with the at least one traffic group;
enqueuing the packet onto a queue associated with the at least one traffic group;
scheduling the packet for transmission from a second port of the plurality of ports based upon the one or more bandwidth parameters for the at least one traffic group with which the packet is associated;
byperiodically evaluating a current bandwidth metric for the queue;
bydetermining an actual bandwidth for a prior time period;
determining a bandwidth metric for the prior time period; and
combining a portion of the actual bandwidth for the prior time period with a portion of the bandwidth metric for the prior time period to arrive at the current bandwidth metric; and
dequeuing the packet from the queue if the current bandwidth metric meets a predetermined relationship with the one or more bandwidth parameters.
10 Assignments
Litigations
0 Petitions
Reexaminations
Accused Products
Abstract
A flexible, policy-based, mechanism for managing, monitoring, and prioritizing traffic within a network and allocating bandwidth to achieve true quality of service (QoS) is provided. According to one aspect of the present invention, a method is provided for managing bandwidth allocation in a network that employs a non-deterministic access protocol, such as an Ethernet network. A packet forwarding device receives information indicative of a set of traffic groups, such as: a MAC address, or IEEE 802.1p priority indicator or 802.1Q frame tag, if the QoS policy is based upon individual station applications; or a physical port if the QoS policy is based purely upon topology. The packet forwarding device additionally receives bandwidth parameters corresponding to the traffic groups. After receiving a packet associated with one of the traffic groups on a first port, the packet forwarding device schedules the packet for transmission from a second port based upon bandwidth parameters corresponding to the traffic group with which the packet is associated. According to another aspect of the present invention, a method is provided for managing bandwidth allocation in a packet forwarding device. The packet forwarding device receives information indicative of a set of traffic groups. The packet forwarding device additionally receives information defining a QoS policy for the traffic groups. After a packet is received by the packet forwarding device, a traffic group with which the packet is associated is identified. Subsequently, rather than relying on an end-to-end signaling protocol for scheduling, the packet is scheduled for transmission based upon the QoS policy for the identified traffic group.
1078 Citations
29 Claims
-
1. A method comprising:
-
receiving at a packet forwarding device information indicative of one or more traffic groups; receiving at the packet forwarding device one or more bandwidth parameters for at least one of the one or more traffic groups; receiving at a first port of a plurality of ports a packet associated with the at least one traffic group; enqueuing the packet onto a queue associated with the at least one traffic group; scheduling the packet for transmission from a second port of the plurality of ports based upon the one or more bandwidth parameters for the at least one traffic group with which the packet is associated;
byperiodically evaluating a current bandwidth metric for the queue;
bydetermining an actual bandwidth for a prior time period; determining a bandwidth metric for the prior time period; and combining a portion of the actual bandwidth for the prior time period with a portion of the bandwidth metric for the prior time period to arrive at the current bandwidth metric; and dequeuing the packet from the queue if the current bandwidth metric meets a predetermined relationship with the one or more bandwidth parameters. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of bandwidth management and traffic prioritization for use in a network of devices, the method comprising the steps of:
-
defining at a packet forwarding device information indicative of one or more traffic groups; defining at the packet forwarding device information indicative of a quality of service (QoS) policy for at least one of the one or more traffic groups; receiving a packet at a first port of a plurality of ports; identifying a first traffic group of the one or more traffic groups with which the packet is associated; providing a plurality of QoS queues; mapping the first traffic group to a first QoS queue of the plurality of QoS queues; and scheduling the packet for transmission from a second port of the plurality of ports based upon the QoS policy for the first traffic group, and wherein the scheduling is independent of end-to-end signaling;
said scheduling including;determining a current bandwidth metric for each of the plurality of QoS queues; dividing the plurality of QoS queues into at least a first group and a second group based upon the current bandwidth metrics and a minimum bandwidth requirement associated with each of the plurality of QoS queues; and if the first group includes at least one QoS queue, then transmitting a packet from the at least one QoS queue;
otherwise transmitting a packet from a QoS queue associated with the second group. - View Dependent Claims (11, 12)
-
-
13. A method of bandwidth management and traffic prioritization for use in a network of devices, the method comprising:
-
receiving at a packet forwarding device information indicative of one or more traffic groups, the information indicative of the one or more traffic groups including Internet Protocol (IP) subnet membership; receiving at the packet forwarding device information defining a quality of service (QoS) policy for at least one of the one or more traffic groups, the QoS policy including at least a minimum bandwidth; providing a plurality of queues at each of a plurality of output ports; associating the one or more traffic groups with the plurality of queues based upon the minimum bandwidth; and scheduling a packet for transmission from one of the plurality of queues onto the network.
-
-
14. A method of bandwidth management and traffic prioritization for use in a network of devices, the method comprising:
-
providing a plurality of quality of service (QoS) queues at each of a plurality of output ports, each of the plurality of QoS queues associated with a minimum queue bandwidth requirement; adding a packet to one of the plurality of QoS queues based upon a traffic group with which the packet is associated; and scheduling a next packet for transmission onto the network from one of the plurality of QoS queues at a particular output port of the plurality of output ports by; determining a current bandwidth metric for each of the plurality of QoS queues, dividing the plurality of QoS queues into at least a first group and a second group based upon the current bandwidth metrics and the minimum queue bandwidth requirements, and if at least one QoS queue of the plurality of QoS queues, so divided, is associated with the first group, then transmitting a packet from the at least one QoS queue;
otherwise transmitting a packet from a QoS queue of the plurality of QoS queues associated with the second group. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A packet forwarding device for use in a network employing a non-deterministic assess protocol, the packet forwarding device comprising:
-
a filtering and forwarding engine configured to forward received packets based upon a traffic group with which the packet is associated; and a plurality of ports coupled to the filtering and forwarding engine, each port of the plurality of ports configured to receive packets from the filtering and forwarding engine, each port of the plurality of ports having a plurality of Quality of Service (QoS) queues associated with a minimum queue bandwidth requirement, each port of the plurality of ports further configured to schedule a packet for transmission onto the network by determining a current bandwidth metric for each of the plurality of QoS queues, dividing the plurality of QoS queues into at least a first group and a second group based upon the current bandwidth metrics and the minimum queue bandwidth requirements, and if at least one QoS queue of the plurality of QoS queues, so divided, is associated with the first group, then transmitting a packet from the at least one QoS queue;
otherwise transmitting a packet from a QoS queue of the plurality of QoS queues associated with the second group. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method of bandwidth management and traffic prioritization for use in a network of devices, the method comprising:
-
receiving at a packet forwarding device information indicative of one or more traffic groups, the information indicative of the one or more traffic groups including a virtual local area network (VLAN) identifier; receiving at the packet forwarding device information defining a quality of service (QoS) policy for at least one of the one or more traffic groups, the QoS policy including at least a minimum bandwidth; providing a plurality of queues at each of a plurality of output ports; associating the one or more traffic groups with the plurality of queues based upon the minimum bandwidth; and scheduling a packet for transmission from one of the plurality of queues onto the network.
-
-
27. A machine-readable medium having stored thereon data representing sequences of instructions, said sequences of instructions which, when executed by a processor, cause said processor to:
-
receive at a packet forwarding device information indicative of one or more traffic groups; receive at the packet forwarding device one or more bandwidth parameters for at least one of the one or more traffic groups; receive at a first port of a plurality of ports a packet associated with the at least one traffic group; enqueue the packet onto a queue associated with the at least one traffic group; schedule the packet for transmission from a second port of the plurality of ports based upon the one or more bandwidth parameters for the at least one traffic group with which the packet is associated;
byperiodically evaluating a current bandwidth metric for the queue;
bydetermining an actual bandwidth for a prior time period; determining a bandwidth metric for the prior time period; and combining a portion of the actual bandwidth for the prior time period with a portion of the bandwidth metric for the prior time period to arrive at the current bandwidth metric; and dequeuing the packet from the queue if the current bandwidth metric meets a predetermined relationship with the one or more bandwidth parameters.
-
-
28. A machine-readable medium having stored thereon data representing sequences of instructions, said sequences of instructions which, when executed by a processor, cause said processor to:
-
define at a packet forwarding device information indicative of one or more traffic groups; define at the packet forwarding device information indicative of a quality of service (QoS) policy for at least one of the one or more traffic groups; receive a packet at a first port of a plurality of ports; identify a first traffic group of the one or more traffic groups with which the packet is associated; provide a plurality of QoS queues; map the first traffic group to a first QoS queue of the plurality of QoS queues; and schedule the packet for transmission from a second port of the plurality of ports based upon the QoS policy for the first traffic group, and wherein the scheduling is independent of end-to-end signaling;
said scheduling including;determining a current bandwidth metric for each of the plurality of QoS queues; dividing the plurality of QoS queues into at least a first group and a second group based upon the current bandwidth metrics and a minimum bandwidth requirement associated with each of the plurality of QoS queues; and if the first group includes at least one QoS queue, then transmitting a packet from the at least one QoS queue;
otherwise transmitting a packet from a QoS queue associated with the second group.
-
-
29. A machine-readable medium having stored thereon data representing sequences of instructions, said sequences of instructions which, when executed by a processor, cause said processor to:
-
provide a plurality of quality of service (QoS) queues at each of a plurality of output ports, each of the plurality of QoS queues associated with a minimum queue bandwidth requirement; add a packet to one of the plurality of QoS queues based upon a traffic group with which the packet is associated; and schedule a next packet for transmission onto the network from one of the plurality of QoS queues at a particular output port of the plurality of output ports by; determining a current bandwidth metric for each of the plurality of QoS queues, dividing the plurality of QoS queues into at least a first group and a second group based upon the current bandwidth metrics and the minimum queue bandwidth requirements, and if at least one QoS queue of the plurality of QoS queues, so divided, is associated with the first group, then transmitting a packet from the at least one QoS queue;
otherwise transmitting a packet from a QoS queue of the plurality of QoS queues associated with the second group.
-
Specification