[ovs-discuss] Question about queue mechanism of Openvswitch
ethan at nicira.com
Thu May 17 20:26:44 PDT 2012
Open vSwitch does not implement Quality of Service (QoS) directly,
instead it relies on the QoS mechanism built into the linux kernel.
When Queues are configured using Open vSwitch, under the covers it
simply configures these QoS mechanisms.
> 1. How openvswitch implement queue in a port? I want to know the principle
> or idea rather than configuration method.
Depends on the algorithm you use. The most popular is probably HTB -
Hierarchical Token Bucket. This is standard in the linux kernel and
fairly well documented on the internet.
> 2. How could I set queue priority?
Priorities are set in the Queue table which is documented in the
ovs-vswitchd.conf.db man page. Currently priorities only affect HTB,
other queuing disciplines use different strategies.
> 3. How does queue priority play a role in openvswitch?
> For example, if I assign flow 1 to the queue which priority is 8(highest
> priority), and flow 2 to the queue which priority is 1(lowest priority).
> I want to know whether openvswitch strictly follow this forwarding rule that
> openvswitch will forward the flow of high-priority queue before
> the flow of low-priority. As long as there are some packet in high-priority
> queue, the packet in low-priority queue will not be forwarded.
This is an implementation detail of the linux queueing disciplines and
is outside the scope of this mailing list. Different linux queueing
disciplines have different behaviors in this respect. I would look
for documentation on your favorite linux queueing discipline, or dig
into the code for answers.
> 4. Does Openvswitch use FIFO mode to forward packet if I don't use queue
> priority? And where is the code about queue in openvswitch?
My understanding is that FIFO is the default queueing discipline in
Linux, though I may be wrong on that point.
More information about the discuss