make test: fix missing log/packet messages
[vpp.git] / test / vpp_papi_provider.py
index d29f90c..51cc20b 100644 (file)
@@ -1,6 +1,5 @@
 import os
 import array
-from logging import error
 from hook import Hook
 
 do_import = True
@@ -32,10 +31,11 @@ class VppPapiProvider(object):
 
     """
 
-    def __init__(self, name, shm_prefix):
+    def __init__(self, name, shm_prefix, test_class):
         self.hook = Hook("vpp-papi-provider")
         self.name = name
         self.shm_prefix = shm_prefix
+        self.test_class = test_class
 
     def register_hook(self, hook):
         """Replace hook registration with new hook
@@ -68,7 +68,7 @@ class VppPapiProvider(object):
         if hasattr(reply, 'retval') and reply.retval != expected_retval:
             msg = "API call failed, expected retval == %d, got %s" % (
                 expected_retval, repr(reply))
-            error(msg)
+            self.test_class.test_instance.logger.error(msg)
             raise Exception(msg)
         self.hook.after_api(api_fn.__name__, api_args)
         return reply
@@ -264,6 +264,29 @@ class VppPapiProvider(object):
         return self.api(vpp_papi.sw_interface_set_l2_bridge,
                         (sw_if_index, bd_id, shg, bvi, enable))
 
+    def bridge_flags(self, bd_id, is_set, feature_bitmap):
+        """Enable/disable required feature of the bridge domain with defined ID.
+
+        :param int bd_id: Bridge domain ID.
+        :param int is_set: Set to 1 to enable, set to 0 to disable the feature.
+        :param int feature_bitmap: Bitmap value of the feature to be set:
+            - learn (1 << 0),
+            - forward (1 << 1),
+            - flood (1 << 2),
+            - uu-flood (1 << 3) or
+            - arp-term (1 << 4).
+        """
+        return self.api(vpp_papi.bridge_flags, (bd_id, is_set, feature_bitmap))
+
+    def bridge_domain_dump(self, bd_id=0):
+        """
+
+        :param int bd_id: Bridge domain ID. (Default value = 0 => dump of all
+            existing bridge domains returned)
+        :return: Dictionary of bridge domain(s) data.
+        """
+        return self.api(vpp_papi.bridge_domain_dump, (bd_id, ))
+
     def sw_interface_set_l2_xconnect(self, rx_sw_if_index, tx_sw_if_index,
                                      enable):
         """Create or delete unidirectional cross-connect from Tx interface to
@@ -474,7 +497,8 @@ class VppPapiProvider(object):
              )
         )
 
-    def sw_interface_span_enable_disable(self, sw_if_index_from, sw_if_index_to, enable=1):
+    def sw_interface_span_enable_disable(
+            self, sw_if_index_from, sw_if_index_to, enable=1):
         """
 
         :param sw_if_index_from:
@@ -660,3 +684,5 @@ class VppPapiProvider(object):
              next_hop_table_id,
              stack))
 
+        return self.api(vpp_papi.sw_interface_span_enable_disable,
+                        (sw_if_index_from, sw_if_index_to, enable))