Public bug reported: When using Qos together with Neutron trunk ports the max bandwidth limits are not applied, neither for ovs-hybrid, nor for ovs-firewall
The reason is that a new ovs bridge is created to handle the trunk (parent + subport) ports. For instance: Bridge "tbr-c5402c58-3" Port "tpt-e739265b-2b" Interface "tpt-e739265b-2b" type: patch options: {peer="tpi-e739265b-2b"} Port "qvoe739265b-2b" Interface "qvoe739265b-2b" Port "spt-17c950c4-f5" tag: 101 Interface "spt-17c950c4-f5" type: patch options: {peer="spi-17c950c4-f5"} Port "tbr-c5402c58-3" Interface "tbr-c5402c58-3" type: internal Then, the _set_egress_bw_limit_for_port (https://github.com/openstack/neutron/blob/master/neutron/agent/common/ovs_lib.py#L553) is applied to tpi-e739265b-2b or spi-17c950c4-f5 (depending on if the qos rule is applied to the parent or the subport ports, respectively). However, these are of patch type, i.e., they are fully virtual and the kernel does not know about them, therefore the QoS rules are not applied. To reproduce it: - Enable QoS devstack local.conf: enable_plugin neutron https://github.com/openstack/neutron enable_service q-qos - Enable trunk in neutron.conf: service_plugins = ... qos,trunk - Create QoS rule - Apply the qos rule to either parent or subport ports - Test bandwidth limit (e.g., with iperf) ** Affects: neutron Importance: Undecided Status: New ** Tags: qos trunk -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1639186 Title: qos max bandwidth rules not working for neutron trunk ports Status in neutron: New Bug description: When using Qos together with Neutron trunk ports the max bandwidth limits are not applied, neither for ovs-hybrid, nor for ovs-firewall The reason is that a new ovs bridge is created to handle the trunk (parent + subport) ports. For instance: Bridge "tbr-c5402c58-3" Port "tpt-e739265b-2b" Interface "tpt-e739265b-2b" type: patch options: {peer="tpi-e739265b-2b"} Port "qvoe739265b-2b" Interface "qvoe739265b-2b" Port "spt-17c950c4-f5" tag: 101 Interface "spt-17c950c4-f5" type: patch options: {peer="spi-17c950c4-f5"} Port "tbr-c5402c58-3" Interface "tbr-c5402c58-3" type: internal Then, the _set_egress_bw_limit_for_port (https://github.com/openstack/neutron/blob/master/neutron/agent/common/ovs_lib.py#L553) is applied to tpi-e739265b-2b or spi-17c950c4-f5 (depending on if the qos rule is applied to the parent or the subport ports, respectively). However, these are of patch type, i.e., they are fully virtual and the kernel does not know about them, therefore the QoS rules are not applied. To reproduce it: - Enable QoS devstack local.conf: enable_plugin neutron https://github.com/openstack/neutron enable_service q-qos - Enable trunk in neutron.conf: service_plugins = ... qos,trunk - Create QoS rule - Apply the qos rule to either parent or subport ports - Test bandwidth limit (e.g., with iperf) To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1639186/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp