tests: refactor. Replace literal constant w/ named constant.
[vpp.git] / test / test_dvr.py
index d2088ea..ae7864c 100644 (file)
@@ -2,19 +2,29 @@
 import unittest
 
 from framework import VppTestCase, VppTestRunner
-from vpp_sub_interface import VppDot1QSubint
 from vpp_ip_route import VppIpRoute, VppRoutePath
-from vpp_papi_provider import L2_VTR_OP, L2_PORT_TYPE
+from vpp_l2 import L2_PORT_TYPE
+from vpp_sub_interface import L2_VTR_OP, VppDot1QSubint
 
 from scapy.packet import Raw
 from scapy.layers.l2 import Ether, Dot1Q
 from scapy.layers.inet import IP, UDP
 from socket import AF_INET, inet_pton
 
+NUM_PKTS = 67
+
 
 class TestDVR(VppTestCase):
     """ Distributed Virtual Router """
 
+    @classmethod
+    def setUpClass(cls):
+        super(TestDVR, cls).setUpClass()
+
+    @classmethod
+    def tearDownClass(cls):
+        super(TestDVR, cls).tearDownClass()
+
     def setUp(self):
         super(TestDVR, self).setUp()
 
@@ -84,21 +94,24 @@ class TestDVR(VppTestCase):
         #
         # Put all the interfaces into a new bridge domain
         #
-        self.vapi.sw_interface_set_l2_bridge(self.pg0.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg2.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index, 1,
-                                             port_type=L2_PORT_TYPE.BVI)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.pg0.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)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg2.sw_if_index, bd_id=1)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg3.sw_if_index, bd_id=1)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.loop0.sw_if_index, bd_id=1,
+            port_type=L2_PORT_TYPE.BVI)
 
         self.vapi.l2_interface_vlan_tag_rewrite(
-            sub_if_on_pg2.sw_if_index,
-            L2_VTR_OP.L2_POP_1,
-            92)
+            sw_if_index=sub_if_on_pg2.sw_if_index, vtr_op=L2_VTR_OP.L2_POP_1,
+            push_dot1q=92)
         self.vapi.l2_interface_vlan_tag_rewrite(
-            sub_if_on_pg3.sw_if_index,
-            L2_VTR_OP.L2_POP_1,
-            93)
+            sw_if_index=sub_if_on_pg3.sw_if_index, vtr_op=L2_VTR_OP.L2_POP_1,
+            push_dot1q=93)
 
         #
         # Add routes to bridge the traffic via a tagged an nontagged interface
@@ -114,7 +127,7 @@ class TestDVR(VppTestCase):
         # Inject the packet that arrives and leaves on a non-tagged interface
         # Since it's 'bridged' expect that the MAC headed is unchanged.
         #
-        rx = self.send_and_expect(self.pg0, pkt_no_tag * 65, self.pg1)
+        rx = self.send_and_expect(self.pg0, pkt_no_tag * NUM_PKTS, self.pg1)
         self.assert_same_mac_addr(pkt_no_tag, rx)
         self.assert_has_no_tag(rx)
 
@@ -132,7 +145,7 @@ class TestDVR(VppTestCase):
         # Inject the packet that arrives non-tag and leaves on a tagged
         # interface
         #
-        rx = self.send_and_expect(self.pg0, pkt_tag * 65, self.pg3)
+        rx = self.send_and_expect(self.pg0, pkt_tag * NUM_PKTS, self.pg3)
         self.assert_same_mac_addr(pkt_tag, rx)
         self.assert_has_vlan_tag(93, rx)
 
@@ -147,7 +160,9 @@ class TestDVR(VppTestCase):
                           UDP(sport=1234, dport=1234) /
                           Raw('\xa5' * 100))
 
-        rx = self.send_and_expect(self.pg2, pkt_tag_to_tag * 65, self.pg3)
+        rx = self.send_and_expect(self.pg2,
+                                  pkt_tag_to_tag * NUM_PKTS,
+                                  self.pg3)
         self.assert_same_mac_addr(pkt_tag_to_tag, rx)
         self.assert_has_vlan_tag(93, rx)
 
@@ -162,7 +177,9 @@ class TestDVR(VppTestCase):
                               UDP(sport=1234, dport=1234) /
                               Raw('\xa5' * 100))
 
-        rx = self.send_and_expect(self.pg2, pkt_tag_to_non_tag * 65, self.pg1)
+        rx = self.send_and_expect(self.pg2,
+                                  pkt_tag_to_non_tag * NUM_PKTS,
+                                  self.pg1)
         self.assert_same_mac_addr(pkt_tag_to_tag, rx)
         self.assert_has_no_tag(rx)
 
@@ -193,7 +210,8 @@ class TestDVR(VppTestCase):
         #
         # Send packet's that should match the ACL and be dropped
         #
-        rx = self.send_and_assert_no_replies(self.pg2, pkt_tag_to_non_tag * 65)
+        rx = self.send_and_assert_no_replies(self.pg2,
+                                             pkt_tag_to_non_tag * NUM_PKTS)
 
         #
         # cleanup
@@ -202,17 +220,17 @@ class TestDVR(VppTestCase):
                                              0, [])
         self.vapi.acl_del(acl.acl_index)
 
-        self.vapi.sw_interface_set_l2_bridge(self.pg0.sw_if_index, 1,
-                                             enable=0)
-        self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, 1,
-                                             enable=0)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg2.sw_if_index,
-                                             1, enable=0)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index,
-                                             1, enable=0)
-        self.vapi.sw_interface_set_l2_bridge(self.loop0.sw_if_index,
-                                             1, port_type=L2_PORT_TYPE.BVI,
-                                             enable=0)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.pg0.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)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg2.sw_if_index, bd_id=1, enable=0)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg3.sw_if_index, bd_id=1, enable=0)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.loop0.sw_if_index, bd_id=1,
+            port_type=L2_PORT_TYPE.BVI, enable=0)
 
         #
         # Do a FIB dump to make sure the paths are correctly reported as DVR
@@ -289,24 +307,27 @@ class TestDVR(VppTestCase):
         #
         # Put all the interfaces into a new bridge domain
         #
-        self.vapi.sw_interface_set_l2_bridge(self.pg0.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg2.sw_if_index, 1)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index, 1)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.pg0.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)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg2.sw_if_index, bd_id=1)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg3.sw_if_index, bd_id=1)
         self.vapi.l2_interface_vlan_tag_rewrite(
-            sub_if_on_pg2.sw_if_index,
-            L2_VTR_OP.L2_POP_1,
-            92)
+            sw_if_index=sub_if_on_pg2.sw_if_index, vtr_op=L2_VTR_OP.L2_POP_1,
+            push_dot1q=92)
         self.vapi.l2_interface_vlan_tag_rewrite(
-            sub_if_on_pg3.sw_if_index,
-            L2_VTR_OP.L2_POP_1,
-            93)
+            sw_if_index=sub_if_on_pg3.sw_if_index, vtr_op=L2_VTR_OP.L2_POP_1,
+            push_dot1q=93)
 
         #
-        # Disable UU flooding, learning and ARP terminaation. makes this test
+        # Disable UU flooding, learning and ARP termination. makes this test
         # easier as unicast packets are dropped if not extracted.
         #
-        self.vapi.bridge_flags(1, 0, (1 << 0) | (1 << 3) | (1 << 4))
+        self.vapi.bridge_flags(bd_id=1, is_set=0,
+                               flags=(1 << 0) | (1 << 3) | (1 << 4))
 
         #
         # Add a DVR route to steer traffic at L3
@@ -338,19 +359,21 @@ class TestDVR(VppTestCase):
         #
         # now we expect the packet forward according to the DVR route
         #
-        rx = self.send_and_expect(self.pg0, pkt_no_tag * 65, self.pg1)
+        rx = self.send_and_expect(self.pg0, pkt_no_tag * NUM_PKTS, self.pg1)
         self.assert_same_mac_addr(pkt_no_tag, rx)
         self.assert_has_no_tag(rx)
 
-        rx = self.send_and_expect(self.pg0, pkt_to_tag * 65, self.pg2)
+        rx = self.send_and_expect(self.pg0, pkt_to_tag * NUM_PKTS, self.pg2)
         self.assert_same_mac_addr(pkt_to_tag, rx)
         self.assert_has_vlan_tag(92, rx)
 
-        rx = self.send_and_expect(self.pg3, pkt_from_tag * 65, self.pg1)
+        rx = self.send_and_expect(self.pg3, pkt_from_tag * NUM_PKTS, self.pg1)
         self.assert_same_mac_addr(pkt_from_tag, rx)
         self.assert_has_no_tag(rx)
 
-        rx = self.send_and_expect(self.pg3, pkt_from_to_tag * 65, self.pg2)
+        rx = self.send_and_expect(self.pg3,
+                                  pkt_from_to_tag * NUM_PKTS,
+                                  self.pg2)
         self.assert_same_mac_addr(pkt_from_tag, rx)
         self.assert_has_vlan_tag(92, rx)
 
@@ -371,14 +394,14 @@ class TestDVR(VppTestCase):
         self.vapi.l2_emulation(sub_if_on_pg3.sw_if_index,
                                enable=0)
 
-        self.vapi.sw_interface_set_l2_bridge(self.pg0.sw_if_index,
-                                             1, enable=0)
-        self.vapi.sw_interface_set_l2_bridge(self.pg1.sw_if_index,
-                                             1, enable=0)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg2.sw_if_index,
-                                             1, enable=0)
-        self.vapi.sw_interface_set_l2_bridge(sub_if_on_pg3.sw_if_index,
-                                             1, enable=0)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=self.pg0.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)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg2.sw_if_index, bd_id=1, enable=0)
+        self.vapi.sw_interface_set_l2_bridge(
+            rx_sw_if_index=sub_if_on_pg3.sw_if_index, bd_id=1, enable=0)
 
         route_1.remove_vpp_config()
         route_2.remove_vpp_config()