X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_mpls.py;h=4a1c663c444f3c59c2622dc50b138baa975a23c2;hb=refs%2Fchanges%2F52%2F19152%2F2;hp=2595b039760cfd591ad33871d1b1e5d097dfc708;hpb=f5fa5ae2b021f946fbb8ec56e692459cd34bc7fb;p=vpp.git diff --git a/test/test_mpls.py b/test/test_mpls.py index 2595b039760..4a1c663c444 100644 --- a/test/test_mpls.py +++ b/test/test_mpls.py @@ -8,9 +8,10 @@ from vpp_ip import DpoProto from vpp_ip_route import VppIpRoute, VppRoutePath, VppMplsRoute, \ VppMplsIpBind, VppIpMRoute, VppMRoutePath, \ MRouteItfFlags, MRouteEntryFlags, VppIpTable, VppMplsTable, \ - VppMplsLabel, MplsLspMode + VppMplsLabel, MplsLspMode, find_mpls_route from vpp_mpls_tunnel_interface import VppMPLSTunnelInterface +import scapy.compat from scapy.packet import Raw from scapy.layers.l2 import Ether from scapy.layers.inet import IP, UDP, ICMP @@ -51,6 +52,14 @@ def verify_mpls_stack(tst, rx, mpls_labels): class TestMPLS(VppTestCase): """ MPLS Test Case """ + @classmethod + def setUpClass(cls): + super(TestMPLS, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestMPLS, cls).tearDownClass() + def setUp(self): super(TestMPLS, self).setUp() @@ -360,7 +369,7 @@ class TestMPLS(VppTestCase): # ICMP sourced from the interface's address self.assertEqual(rx_ip.src, src_if.local_ip6) # hop-limit reset to 255 for IMCP packet - self.assertEqual(rx_ip.hlim, 254) + self.assertEqual(rx_ip.hlim, 255) icmp = rx[ICMPv6TimeExceeded] @@ -379,6 +388,12 @@ class TestMPLS(VppTestCase): labels=[VppMplsLabel(33)])]) route_32_eos.add_vpp_config() + self.assertTrue( + find_mpls_route(self, 0, 32, 1, + [VppRoutePath(self.pg0.remote_ip4, + self.pg0.sw_if_index, + labels=[VppMplsLabel(33)])])) + # # a stream that matches the route for 10.0.0.1 # PG0 is in the default table @@ -445,7 +460,7 @@ class TestMPLS(VppTestCase): self.verify_capture_ip4(self.pg0, rx, tx) # - # disposed packets have an invalid IPv4 checkusm + # disposed packets have an invalid IPv4 checksum # tx = self.create_stream_labelled_ip4(self.pg0, [VppMplsLabel(33)], dst_ip=self.pg0.remote_ip4, @@ -1274,7 +1289,7 @@ class TestMPLS(VppTestCase): self.send_and_assert_no_replies(self.pg0, tx, "RPF-ID drop none") # - # set the RPF-ID of the enrtry to match the input packet's + # set the RPF-ID of the entry to match the input packet's # route_232_1_1_1.update_rpf_id(55) @@ -1284,7 +1299,7 @@ class TestMPLS(VppTestCase): self.verify_capture_ip4(self.pg1, rx, tx) # - # disposed packets have an invalid IPv4 checkusm + # disposed packets have an invalid IPv4 checksum # tx = self.create_stream_labelled_ip4(self.pg0, [VppMplsLabel(34)], dst_ip="232.1.1.1", n=65, @@ -1344,7 +1359,7 @@ class TestMPLS(VppTestCase): self.send_and_assert_no_replies(self.pg0, tx, "RPF Miss") # - # set the RPF-ID of the enrtry to match the input packet's + # set the RPF-ID of the entry to match the input packet's # route_ff.update_rpf_id(55) @@ -1364,7 +1379,7 @@ class TestMPLS(VppTestCase): self.verify_capture_ip6_icmp(self.pg0, rx, tx) # - # set the RPF-ID of the enrtry to not match the input packet's + # set the RPF-ID of the entry to not match the input packet's # route_ff.update_rpf_id(56) tx = self.create_stream_labelled_ip6(self.pg0, @@ -1376,6 +1391,14 @@ class TestMPLS(VppTestCase): class TestMPLSDisabled(VppTestCase): """ MPLS disabled """ + @classmethod + def setUpClass(cls): + super(TestMPLSDisabled, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestMPLSDisabled, cls).tearDownClass() + def setUp(self): super(TestMPLSDisabled, self).setUp() @@ -1385,7 +1408,7 @@ class TestMPLSDisabled(VppTestCase): self.tbl = VppMplsTable(self, 0) self.tbl.add_vpp_config() - # PG0 is MPLS enalbed + # PG0 is MPLS enabled self.pg0.admin_up() self.pg0.config_ip4() self.pg0.resolve_arp() @@ -1455,6 +1478,14 @@ class TestMPLSDisabled(VppTestCase): class TestMPLSPIC(VppTestCase): """ MPLS PIC edge convergence """ + @classmethod + def setUpClass(cls): + super(TestMPLSPIC, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestMPLSPIC, cls).tearDownClass() + def setUp(self): super(TestMPLSPIC, self).setUp() @@ -1566,7 +1597,7 @@ class TestMPLSPIC(VppTestCase): rx0 = self.pg0._get_capture(1) rx1 = self.pg1._get_capture(1) - # not testig the LB hashing algorithm so we're not concerned + # not testing the LB hashing algorithm so we're not concerned # with the split ratio, just as long as neither is 0 self.assertNotEqual(0, len(rx0)) self.assertNotEqual(0, len(rx1)) @@ -1574,7 +1605,7 @@ class TestMPLSPIC(VppTestCase): # # use a test CLI command to stop the FIB walk process, this # will prevent the FIB converging the VPN routes and thus allow - # us to probe the interim (psot-fail, pre-converge) state + # us to probe the interim (post-fail, pre-converge) state # self.vapi.ppcli("test fib-walk-process disable") @@ -1674,7 +1705,7 @@ class TestMPLSPIC(VppTestCase): # # use a test CLI command to stop the FIB walk process, this # will prevent the FIB converging the VPN routes and thus allow - # us to probe the interim (psot-fail, pre-converge) state + # us to probe the interim (post-fail, pre-converge) state # self.vapi.ppcli("test fib-walk-process disable") @@ -1774,7 +1805,7 @@ class TestMPLSPIC(VppTestCase): # # use a test CLI command to stop the FIB walk process, this # will prevent the FIB converging the VPN routes and thus allow - # us to probe the interim (psot-fail, pre-converge) state + # us to probe the interim (post-fail, pre-converge) state # self.vapi.ppcli("test fib-walk-process disable") @@ -1823,6 +1854,14 @@ class TestMPLSPIC(VppTestCase): class TestMPLSL2(VppTestCase): """ MPLS-L2 """ + @classmethod + def setUpClass(cls): + super(TestMPLSL2, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(TestMPLSL2, cls).tearDownClass() + def setUp(self): super(TestMPLSL2, self).setUp() @@ -1867,7 +1906,7 @@ class TestMPLSL2(VppTestCase): verify_mpls_stack(self, rx, mpls_labels) tx_eth = tx[Ether] - rx_eth = Ether(str(rx[MPLS].payload)) + rx_eth = Ether(scapy.compat.raw(rx[MPLS].payload)) self.assertEqual(rx_eth.src, tx_eth.src) self.assertEqual(rx_eth.dst, tx_eth.dst) @@ -1930,7 +1969,7 @@ class TestMPLSL2(VppTestCase): self.assertEqual(rx0[0][Ether].src, payload[Ether].src) # - # Inject a packet from the custoer/L2 side + # Inject a packet from the customer/L2 side # tx1 = pcore[MPLS].payload * 65 rx1 = self.send_and_expect(self.pg1, tx1, self.pg0) @@ -1965,10 +2004,10 @@ class TestMPLSL2(VppTestCase): # # add to tunnel to the customers bridge-domain # - self.vapi.sw_interface_set_l2_bridge(mpls_tun.sw_if_index, - bd_id=1) - self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, - bd_id=1) + self.vapi.sw_interface_set_l2_bridge( + rx_sw_if_index=mpls_tun.sw_if_index, bd_id=1) + self.vapi.sw_interface_set_l2_bridge( + rx_sw_if_index=self.pg1.sw_if_index, bd_id=1) # # Packet from the customer interface and from the core @@ -2020,12 +2059,10 @@ class TestMPLSL2(VppTestCase): # # remove interfaces from customers bridge-domain # - self.vapi.sw_interface_set_l2_bridge(mpls_tun.sw_if_index, - bd_id=1, - enable=0) - self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, - bd_id=1, - enable=0) + self.vapi.sw_interface_set_l2_bridge( + rx_sw_if_index=mpls_tun.sw_if_index, bd_id=1, enable=0) + self.vapi.sw_interface_set_l2_bridge( + rx_sw_if_index=self.pg1.sw_if_index, bd_id=1, enable=0) if __name__ == '__main__': unittest.main(testRunner=VppTestRunner)