[ovs-dev] [PATCH 0/2] ovn: QOS updates with DSCP support

Babu Shanmugam bschanmu at redhat.com
Tue May 17 11:08:15 UTC 2016


Thank you for your answers Ben.
I tried configuring a htb qdisc on a physical interface which is not 
attached to any bridge and found the egress shaping working on a tap 
device attached to br-int.

Babu

On Tuesday 17 May 2016 01:37 AM, Ben Pfaff wrote:
> Hi Bryan, I think that you understand how QoS works in NVP.  We're
> currently talking about how to implement QoS in OVN.  Can you help us
> understand the issues?
>
> ...now back to the conversation already in progress:
>
> On Tue, May 10, 2016 at 05:04:06PM +0530, Babu Shanmugam wrote:
>> On Friday 06 May 2016 10:33 PM, Ben Pfaff wrote:
>>> But I'm still having trouble understanding the whole design here.
>>> Without this patch, OVN applies ingress policing to packets received
>> >from (typically) a VM.  This limits the rate at which the VM can
>>> introduce packets into the network, and thus acts as a direct (if
>>> primitive) way to limit the VM's bandwidth resource usage on the
>>> machine's physical interface.
>>>
>>> With this patch, OVN applies shaping to packets *sent* to (typically) a
>>> VM.  This limits the rate at which the VM can consume packets*from*  the
>>> network.  This has no direct effect on the VM's consumption of bandwidth
>>> resources on the network, because the packets that are discarded have
>>> already consumed RX resources on the machine's physical interface and
>>> there is in fact no direct way to prevent remote machines from sending
>>> packets for the local machine to receive.  It might have an indirect
>>> effect on the VM's bandwidth consumption, since remote senders using
>>> (e.g.) TCP will notice that their packets were dropped and reduce their
>>> sending rate, but it's far less efficient at it than shaping packets
>>> going out to the network.
>>>
>>> The design I expected to see in OVN, eventually, was this:
>>>
>>>          - Each VM/VIF gets assigned a queue.  Packets received from the
>>>            VM are tagged with the queue using an OpenFlow "set_queue"
>>>            action (dunno if we have this as an OVN logical action yet but
>>>            it's easily added).
>>>
>>>          - OVN programs the machine's physical interface with a linux-htb
>>>            or linux-hfsc qdisc that grants some min-rate to each
>>>            queue.
>>  From what I understand, to setup egress shaping for a VIF interface
>> - We need a physical interface attached to br-int
> It doesn't have to be attached to br-int, because queuing information is
> preserved over a hop from bridge to bridge and through encapsulation in
> tunnels, but OVN would have to configure queues on the interface
> regardless of what bridge it was in.
>
>> - QOS and Queue tables has to be setup for the port entry that corresponds
>> to the physical interface
>> - Packets received from VIF are put in these queues using set_queue.
>> Is my understanding correct?
> Yes, I believe so.
>
>> Is there any way that HTB/HFSC queues can work without a physical interface
>> attached to br-int? if not are we going to mandate in some way that a
>> physical interface has to be attached to br-int?
> I don't think it's desirable or necessary to attach the physical
> interface to br-int, only to ensure that the queues are configured on
> it.
>
> Bryan, what does NVP do?  In particular, does it configure queues on a
> physical interface without caring what bridge it is attached to?
>
> Thanks,
>
> Ben.




More information about the dev mailing list