diff --git a/neutron/tests/functional/privileged/agent/linux/test_tc_lib.py b/neutron/tests/functional/privileged/agent/linux/test_tc_lib.py index 47a76b29170..b24e5a805a0 100644 --- a/neutron/tests/functional/privileged/agent/linux/test_tc_lib.py +++ b/neutron/tests/functional/privileged/agent/linux/test_tc_lib.py @@ -33,6 +33,7 @@ class TcQdiscTestCase(functional_base.BaseSudoTestCase): self.addCleanup(self._remove_ns, self.namespace) self.device = 'int_dummy' priv_ip_lib.create_interface(self.device, self.namespace, 'dummy') + priv_ip_lib.set_link_attribute(self.device, self.namespace, state='up') def _remove_ns(self, namespace): priv_ip_lib.remove_netns(namespace) @@ -52,7 +53,8 @@ class TcQdiscTestCase(functional_base.BaseSudoTestCase): namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(0, len(qdiscs)) + self.assertEqual(1, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) def test_add_tc_qdisc_htb_no_handle(self): priv_tc_lib.add_tc_qdisc( @@ -69,7 +71,8 @@ class TcQdiscTestCase(functional_base.BaseSudoTestCase): namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(0, len(qdiscs)) + self.assertEqual(1, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) def test_add_tc_qdisc_tbf(self): burst = 192000 @@ -95,23 +98,26 @@ class TcQdiscTestCase(functional_base.BaseSudoTestCase): namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(0, len(qdiscs)) + self.assertEqual(1, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) def test_add_tc_qdisc_ingress(self): priv_tc_lib.add_tc_qdisc(self.device, kind='ingress', namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(1, len(qdiscs)) - self.assertEqual('ingress', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) - self.assertEqual(rtnl.TC_H_INGRESS, qdiscs[0]['parent']) - self.assertEqual(0xffff0000, qdiscs[0]['handle']) + self.assertEqual(2, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) + self.assertEqual('ingress', tc_lib._get_attr(qdiscs[1], 'TCA_KIND')) + self.assertEqual(rtnl.TC_H_INGRESS, qdiscs[1]['parent']) + self.assertEqual(0xffff0000, qdiscs[1]['handle']) priv_tc_lib.delete_tc_qdisc(self.device, kind='ingress', namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(0, len(qdiscs)) + self.assertEqual(1, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) def test_delete_tc_qdisc_no_device(self): self.assertRaises( @@ -138,14 +144,16 @@ class TcQdiscTestCase(functional_base.BaseSudoTestCase): namespace=self.namespace) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(1, len(qdiscs)) - self.assertEqual('ingress', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) + self.assertEqual(2, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) + self.assertEqual('ingress', tc_lib._get_attr(qdiscs[1], 'TCA_KIND')) self.assertIsNone( priv_tc_lib.delete_tc_qdisc(self.device, kind='ingress', namespace=self.namespace)) qdiscs = priv_tc_lib.list_tc_qdiscs(self.device, namespace=self.namespace) - self.assertEqual(0, len(qdiscs)) + self.assertEqual(1, len(qdiscs)) + self.assertEqual('noqueue', tc_lib._get_attr(qdiscs[0], 'TCA_KIND')) self.assertEqual( errno.EINVAL, priv_tc_lib.delete_tc_qdisc(self.device, kind='ingress', @@ -167,6 +175,7 @@ class TcPolicyClassTestCase(functional_base.BaseSudoTestCase): self.addCleanup(self._remove_ns, self.namespace) self.device = 'int_dummy' priv_ip_lib.create_interface('int_dummy', self.namespace, 'dummy') + priv_ip_lib.set_link_attribute(self.device, self.namespace, state='up') def _remove_ns(self, namespace): priv_ip_lib.remove_netns(namespace) @@ -248,6 +257,7 @@ class TcFilterClassTestCase(functional_base.BaseSudoTestCase): self.addCleanup(self._remove_ns, self.namespace) self.device = 'int_dummy' priv_ip_lib.create_interface('int_dummy', self.namespace, 'dummy') + priv_ip_lib.set_link_attribute(self.device, self.namespace, state='up') def _remove_ns(self, namespace): priv_ip_lib.remove_netns(namespace) @@ -274,9 +284,8 @@ class TcFilterClassTestCase(functional_base.BaseSudoTestCase): self.assertEqual(value, filter_keys[index]) def test_add_tc_filter_policy(self): - priv_tc_lib.add_tc_qdisc( - self.device, parent=rtnl.TC_H_ROOT, kind='ingress', - namespace=self.namespace) + priv_tc_lib.add_tc_qdisc(self.device, kind='ingress', + namespace=self.namespace) # NOTE(ralonsoh): # - rate: 320000 bytes/sec (pyroute2 units) = 2560 kbits/sec (OS units)