openvswitch / ovs-issues

Issue tracker repo for Open vSwitch
10 stars 3 forks source link

ovs qos was not working #277

Closed echkenluo closed 1 year ago

echkenluo commented 1 year ago

I am using ovs-2.13.3, and I have configured QoS with the following parameters: min-rate = 200Mbps max-rate = 500Mbps burst = 10Mb

The QoS queue configuration in ovsdb is normal, as shown below: [root@l]$ovs-vsctl list queue b7ca3e81-3672-41b7-a0d0-12368d39816e _uuid : b7ca3e81-3672-41b7-a0d0-12368d39816e

dscp : []

external_ids : {}

other_config : {burst="10000000", max-rate="250000000.0", min-rate="100000000.0", priority="100"}

The corresponding tc_class is as follows:

tc class show dev enp4s0f0

class htb 1:b2 parent 1:fffe prio 7 rate 12000bit ceil 20000Mbit burst 1563b cburst 0b

The QoS configuration as seen in ovs-appctl qos/show enp4s0f0 is as follows:

Queue 177: burst: 10000000 priority: 100 min-rate: 12000 max-rate: 20000000000 tx_packets: 0 tx_bytes: 0 tx_errors: 0

echkenluo commented 1 year ago

it's seem like a bug in the OVS implementation.

igsilya commented 1 year ago

I have configured QoS with the following parameters: min-rate = 200Mbps max-rate = 500Mbps burst = 10Mb

other_config : {burst="10000000", max-rate="250000000.0", min-rate="100000000.0", priority="100"}

Statements above do not match. But, anyways, the values has to be integers.

echkenluo commented 1 year ago

I have configured the settings to use integers, but the result I get from ovs-vsctl list queue queue_uuid is in floating-point format, as shown above. Also, the physical port QoS configuration obtained through ovs-appctl is different from what I get through ovs-vsctl.

The QoS queue configuration obtained using the tc class command is the same as the value obtained with appctl.

2023年4月7日 下午7:50,Ilya Maximets @.***> 写道:

I have configured QoS with the following parameters: min-rate = 200Mbps max-rate = 500Mbps burst = 10Mb

other_config : {burst="10000000", max-rate="250000000.0", min-rate="100000000.0", priority="100"}

Statements above do not match. But, anyways, the values has to be integers.

— Reply to this email directly, view it on GitHub https://github.com/openvswitch/ovs-issues/issues/277#issuecomment-1500216780, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQA6QTBBOAHXPASH46QWJLTW775SBANCNFSM6AAAAAAWWLTEDE. You are receiving this because you authored the thread.

igsilya commented 1 year ago

I have configured the settings to use integers, but the result I get from ovs-vsctl list queue queue_uuid is in floating-point format, as shown above.

ovs-vsctl list simply shows the content of a configuration database, OVS doesn't change values in the database set by the user. So, you, or whatever software you're using, has put floating point values into the database.

Also, the physical port QoS configuration obtained through ovs-appctl is different from what I get through ovs-vsctl.

This is expected, because OVS can't parse floating point values.

echkenluo commented 1 year ago

Thank you very much, Ilya.

I adjusted the format of the min-rate/max-rate parameters in ovsdb, and now the QoS configuration can be synchronized correctly to the tc class rate/ceil parameters.

2023年4月9日 下午9:22,Ilya Maximets @.***> 写道:

I have configured the settings to use integers, but the result I get from ovs-vsctl list queue queue_uuid is in floating-point format, as shown above.

ovs-vsctl list simply shows the content of a configuration database, OVS doesn't change values in the database set by the user. So, you, or whatever software you're using, has put floating point values into the database.

Also, the physical port QoS configuration obtained through ovs-appctl is different from what I get through ovs-vsctl.

This is expected, because OVS can't parse floating point values.

— Reply to this email directly, view it on GitHub https://github.com/openvswitch/ovs-issues/issues/277#issuecomment-1501128533, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQA6QTG2DRSGG5EJNVDYDL3XAKZX7ANCNFSM6AAAAAAWWLTEDE. You are receiving this because you authored the thread.