Merge "[OVN] External ports (SR-IOV) QoS is handled by SR-IOV agent"
This commit is contained in:
commit
4155070309
|
@ -216,14 +216,19 @@ class OVNClientQosExtension(object):
|
||||||
if ovn_rule:
|
if ovn_rule:
|
||||||
txn.add(self._driver._nb_idl.qos_add(**ovn_rule))
|
txn.add(self._driver._nb_idl.qos_add(**ovn_rule))
|
||||||
|
|
||||||
def create_port(self, txn, port):
|
def create_port(self, txn, port, port_type=None):
|
||||||
self.update_port(txn, port, None, reset=True)
|
self.update_port(txn, port, None, reset=True, port_type=port_type)
|
||||||
|
|
||||||
def delete_port(self, txn, port):
|
def delete_port(self, txn, port):
|
||||||
self.update_port(txn, port, None, delete=True)
|
self.update_port(txn, port, None, delete=True)
|
||||||
|
|
||||||
def update_port(self, txn, port, original_port, reset=False, delete=False,
|
def update_port(self, txn, port, original_port, reset=False, delete=False,
|
||||||
qos_rules=None):
|
qos_rules=None, port_type=None):
|
||||||
|
if port_type == ovn_const.LSP_TYPE_EXTERNAL:
|
||||||
|
# External ports (SR-IOV) QoS is handled the SR-IOV agent QoS
|
||||||
|
# extension.
|
||||||
|
return
|
||||||
|
|
||||||
if (not reset and not original_port) and not delete:
|
if (not reset and not original_port) and not delete:
|
||||||
# If there is no information about the previous QoS policy, do not
|
# If there is no information about the previous QoS policy, do not
|
||||||
# make any change, unless the port is new or the QoS information
|
# make any change, unless the port is new or the QoS information
|
||||||
|
|
|
@ -419,7 +419,7 @@ class OVNClient(object):
|
||||||
if self.is_dns_required_for_port(port):
|
if self.is_dns_required_for_port(port):
|
||||||
self.add_txns_to_sync_port_dns_records(txn, port)
|
self.add_txns_to_sync_port_dns_records(txn, port)
|
||||||
|
|
||||||
self._qos_driver.create_port(txn, port)
|
self._qos_driver.create_port(txn, port, port_type=port_info.type)
|
||||||
|
|
||||||
db_rev.bump_revision(context, port, ovn_const.TYPE_PORTS)
|
db_rev.bump_revision(context, port, ovn_const.TYPE_PORTS)
|
||||||
|
|
||||||
|
@ -564,7 +564,8 @@ class OVNClient(object):
|
||||||
utils.is_lsp_trusted(port)):
|
utils.is_lsp_trusted(port)):
|
||||||
self._del_port_from_drop_port_group(port['id'], txn)
|
self._del_port_from_drop_port_group(port['id'], txn)
|
||||||
|
|
||||||
self._qos_driver.update_port(txn, port, port_object)
|
self._qos_driver.update_port(txn, port, port_object,
|
||||||
|
port_type=port_info.type)
|
||||||
|
|
||||||
if self.is_dns_required_for_port(port):
|
if self.is_dns_required_for_port(port):
|
||||||
self.add_txns_to_sync_port_dns_records(
|
self.add_txns_to_sync_port_dns_records(
|
||||||
|
|
|
@ -314,6 +314,13 @@ class TestOVNClientQosExtension(test_plugin.Ml2PluginV2TestCase):
|
||||||
self.mock_rules.assert_called_once_with(
|
self.mock_rules.assert_called_once_with(
|
||||||
mock.ANY, port.id, port.network_id, self.qos_policies[0].id, None)
|
mock.ANY, port.id, port.network_id, self.qos_policies[0].id, None)
|
||||||
|
|
||||||
|
# External port, OVN QoS extension does not apply.
|
||||||
|
self.mock_rules.reset_mock()
|
||||||
|
port.qos_policy_id = self.qos_policies[0].id
|
||||||
|
self.qos_driver.update_port(mock.ANY, port, original_port,
|
||||||
|
port_type=ovn_const.LSP_TYPE_EXTERNAL)
|
||||||
|
self.mock_rules.assert_not_called()
|
||||||
|
|
||||||
def test_delete_port(self):
|
def test_delete_port(self):
|
||||||
self.mock_rules.reset_mock()
|
self.mock_rules.reset_mock()
|
||||||
self.qos_driver.delete_port(mock.ANY, self.ports[1])
|
self.qos_driver.delete_port(mock.ANY, self.ports[1])
|
||||||
|
|
Loading…
Reference in New Issue