bfd: add per session counters
[vpp.git] / test / test_pppoe.py
index 0baf454..99dba01 100644 (file)
@@ -1,22 +1,17 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
+import socket
 import unittest
-from logging import *
-
-from framework import VppTestCase, VppTestRunner
-from vpp_ip_route import VppIpRoute, VppRoutePath
-from vpp_pppoe_interface import VppPppoeInterface, VppPppoe6Interface
-from vpp_papi_provider import L2_VTR_OP
 
 from scapy.packet import Raw
 from scapy.layers.l2 import Ether
 from scapy.layers.ppp import PPPoE, PPPoED, PPP
-from scapy.layers.inet import IP, UDP
-from scapy.layers.inet6 import IPv6
-from scapy.volatile import RandMAC, RandIP
+from scapy.layers.inet import IP
 
-from util import ppp, ppc, mactobinary
-import socket
+from framework import VppTestCase, VppTestRunner
+from vpp_ip_route import VppIpRoute, VppRoutePath
+from vpp_pppoe_interface import VppPppoeInterface
+from util import ppp, ppc
 
 
 class TestPPPoE(VppTestCase):
@@ -30,6 +25,10 @@ class TestPPPoE(VppTestCase):
         cls.dst_ip = "100.1.1.100"
         cls.dst_ipn = socket.inet_pton(socket.AF_INET, cls.dst_ip)
 
+    @classmethod
+    def tearDownClass(cls):
+        super(TestPPPoE, cls).tearDownClass()
+
     def setUp(self):
         super(TestPPPoE, self).setUp()
 
@@ -44,16 +43,17 @@ class TestPPPoE(VppTestCase):
     def tearDown(self):
         super(TestPPPoE, self).tearDown()
 
+        for i in self.pg_interfaces:
+            i.unconfig_ip4()
+            i.admin_down()
+
+    def show_commands_at_teardown(self):
         self.logger.info(self.vapi.cli("show int"))
         self.logger.info(self.vapi.cli("show pppoe fib"))
         self.logger.info(self.vapi.cli("show pppoe session"))
         self.logger.info(self.vapi.cli("show ip fib"))
         self.logger.info(self.vapi.cli("show trace"))
 
-        for i in self.pg_interfaces:
-            i.unconfig_ip4()
-            i.admin_down()
-
     def create_stream_pppoe_discovery(self, src_if, dst_if,
                                       client_mac, count=1):
         packets = []
@@ -211,6 +211,7 @@ class TestPPPoE(VppTestCase):
                                      self.pg0.remote_mac,
                                      self.session_id)
         pppoe_if.add_vpp_config()
+        pppoe_if.set_unnumbered(self.pg0.sw_if_index)
 
         #
         # Send tunneled packets that match the created tunnel and
@@ -274,6 +275,7 @@ class TestPPPoE(VppTestCase):
                                      self.pg0.remote_mac,
                                      self.session_id)
         pppoe_if.add_vpp_config()
+        pppoe_if.set_unnumbered(self.pg0.sw_if_index)
 
         #
         # Send a packet stream that is routed into the session
@@ -281,7 +283,7 @@ class TestPPPoE(VppTestCase):
         #
         self.vapi.cli("clear trace")
         tx2 = self.create_stream_ip4(self.pg1, self.pg0,
-                                     self.pg0.remote_ip4, self.dst_ip)
+                                     self.pg0.remote_ip4, self.dst_ip, 65)
         self.pg1.add_stream(tx2)
 
         self.pg_enable_capture(self.pg_interfaces)
@@ -293,6 +295,7 @@ class TestPPPoE(VppTestCase):
         self.logger.info(self.vapi.cli("show pppoe fib"))
         self.logger.info(self.vapi.cli("show pppoe session"))
         self.logger.info(self.vapi.cli("show ip fib"))
+        self.logger.info(self.vapi.cli("show adj"))
 
         #
         # test case cleanup
@@ -336,13 +339,14 @@ class TestPPPoE(VppTestCase):
                                      self.pg0.remote_mac,
                                      self.session_id)
         pppoe_if.add_vpp_config()
+        pppoe_if.set_unnumbered(self.pg0.sw_if_index)
 
         #
         # The double create (create the same session twice) should fail,
         # and we should still be able to use the original
         #
         try:
-            gre_if.add_vpp_config()
+            pppoe_if.add_vpp_config()
         except Exception:
             pass
         else:
@@ -399,7 +403,7 @@ class TestPPPoE(VppTestCase):
         # and we should still be able to use the original
         #
         try:
-            gre_if.remove_vpp_config()
+            pppoe_if.remove_vpp_config()
         except Exception:
             pass
         else:
@@ -444,6 +448,7 @@ class TestPPPoE(VppTestCase):
                                       self.pg0.remote_mac,
                                       self.session_id)
         pppoe_if1.add_vpp_config()
+        pppoe_if1.set_unnumbered(self.pg0.sw_if_index)
 
         # Send PPPoE Discovery 2
         tx3 = self.create_stream_pppoe_discovery(self.pg2, self.pg1,
@@ -464,6 +469,7 @@ class TestPPPoE(VppTestCase):
                                       self.pg2.remote_mac,
                                       self.session_id + 1)
         pppoe_if2.add_vpp_config()
+        pppoe_if2.set_unnumbered(self.pg0.sw_if_index)
 
         #
         # Send tunneled packets that match the created tunnel and