[OVS][QOS] Dataplane enforcement is limited to min-bw egress direction

OVS QoS extension only enforces dataplane traffic shapping for minimum
bandwidth rules with egress direction.

Change-Id: I57b274387505f42778f1d9d3ec2aa9feb5ae929d
Closes-Bug: #1949607
This commit is contained in:
Rodolfo Alonso Hernandez 2021-11-03 16:01:31 +00:00
parent 81f8524527
commit 5627c87137
2 changed files with 9 additions and 2 deletions

View File

@ -73,7 +73,7 @@ traffic directions (from the VM point of view).
============================ ==================== ==================== ============== =====
Enforcement type \ Backend Open vSwitch SR-IOV Linux Bridge OVN
============================ ==================== ==================== ============== =====
Dataplane - Egress (1) - -
Dataplane Egress (3) Egress (1) - -
Placement Egress/Ingress (2) Egress/Ingress (2) - -
============================ ==================== ==================== ============== =====
@ -81,6 +81,9 @@ traffic directions (from the VM point of view).
(1) Since Newton
(2) Since Stein
(3) Open vSwitch minimum bandwidth support is only implemented for egress
direction and only for networks without tunneled traffic (only VLAN and
flat network types).
.. table:: **Neutron backends, supported directions and enforcement types for Minimum Packet Rate rule**

View File

@ -171,6 +171,10 @@ class QosOVSAgentDriver(qos.QosLinuxAgentDriver):
self.ports[port['port_id']][(qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH,
rule.direction)] = port
if rule.direction == constants.INGRESS_DIRECTION:
LOG.debug('Minimum bandwidth ingress rule was updated/created for '
'port %s and rule %s.', port['port_id'], rule.id)
return
# queue_num is used to identify the port which traffic come from,
# it needs to be unique across br-int. It is convenient to use ofport
@ -184,7 +188,7 @@ class QosOVSAgentDriver(qos.QosLinuxAgentDriver):
egress_port_names.extend(ports)
qos_id = self.br_int.update_minimum_bandwidth_queue(
port['port_id'], egress_port_names, vif_port.ofport, rule.min_kbps)
LOG.debug('Minimum bandwidth rule was updated/created for port '
LOG.debug('Minimum bandwidth egress rule was updated/created for port '
'%(port_id)s and rule %(rule_id)s. QoS ID: %(qos_id)s. '
'Egress ports with QoS applied: %(ports)s',
{'port_id': port['port_id'], 'rule_id': rule.id,