Source VRF Select
[vpp.git] / test / vpp_papi_provider.py
index 0c98f7a..5ef1b30 100644 (file)
@@ -43,6 +43,21 @@ class QOS_SOURCE:
     IP = 3
 
 
+class L2_PORT_TYPE:
+    NORMAL = 0
+    BVI = 1
+    UU_FWD = 2
+
+
+class BRIDGE_FLAGS:
+    NONE = 0
+    LEARN = 1
+    FWD = 2
+    FLOOD = 4
+    UU_FLOOD = 8
+    ARP_TERM = 16
+
+
 class UnexpectedApiReturnValueError(Exception):
     """ exception raised when the API return value is unexpected """
     pass
@@ -627,7 +642,8 @@ class VppPapiProvider(object):
         return self.api(self.papi.l2fib_flush_all, {})
 
     def sw_interface_set_l2_bridge(self, sw_if_index, bd_id,
-                                   shg=0, bvi=0, enable=1):
+                                   shg=0, port_type=L2_PORT_TYPE.NORMAL,
+                                   enable=1):
         """Add/remove interface to/from bridge domain.
 
         :param int sw_if_index: Software interface index of the interface.
@@ -641,7 +657,7 @@ class VppPapiProvider(object):
                         {'rx_sw_if_index': sw_if_index,
                          'bd_id': bd_id,
                          'shg': shg,
-                         'bvi': bvi,
+                         'port_type': port_type,
                          'enable': enable})
 
     def bridge_flags(self, bd_id, is_set, feature_bitmap):
@@ -650,7 +666,7 @@ class VppPapiProvider(object):
 
         :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:
+        :param int flags: Bitmap value of the feature to be set:
             - learn (1 << 0),
             - forward (1 << 1),
             - flood (1 << 2),
@@ -660,7 +676,7 @@ class VppPapiProvider(object):
         return self.api(self.papi.bridge_flags,
                         {'bd_id': bd_id,
                          'is_set': is_set,
-                         'feature_bitmap': feature_bitmap})
+                         'flags': feature_bitmap})
 
     def bridge_domain_dump(self, bd_id=0):
         """
@@ -1345,8 +1361,9 @@ class VppPapiProvider(object):
              'mt_next_hop_via_label': next_hop_via_label,
              'mt_next_hop_out_label_stack': next_hop_out_label_stack})
 
-    def mpls_tunnel_dump(self):
-        return self.api(self.papi.mpls_tunnel_dump, {})
+    def mpls_tunnel_dump(self, sw_if_index=0xffffffff):
+        return self.api(self.papi.mpls_tunnel_dump,
+                        {'sw_if_index': sw_if_index})
 
     def nat44_interface_add_del_feature(
             self,
@@ -3807,3 +3824,73 @@ class VppPapiProvider(object):
 
     def pipe_dump(self):
         return self.api(self.papi.pipe_dump, {})
+
+    def memif_create(
+            self,
+            role,
+            mode,
+            rx_queues=None,
+            tx_queues=None,
+            _id=None,
+            socket_id=None,
+            secret=None,
+            ring_size=None,
+            buffer_size=None,
+            hw_addr=None):
+        return self.api(self.papi.memif_create,
+                        {'role': role,
+                         'mode': mode,
+                         'rx_queues': rx_queues,
+                         'tx_queues': tx_queues,
+                         'id': _id,
+                         'socket_id': socket_id,
+                         'secret': secret,
+                         'ring_size': ring_size,
+                         'buffer_size': buffer_size,
+                         'hw_addr': hw_addr})
+
+    def memif_delete(self, sw_if_index):
+        return self.api(self.papi.memif_delete, {'sw_if_index': sw_if_index})
+
+    def memif_dump(self):
+        return self.api(self.papi.memif_dump, {})
+
+    def memif_socket_filename_add_del(
+            self, is_add, socket_id, socket_filename):
+        return self.api(
+            self.papi.memif_socket_filename_add_del,
+            {'is_add': is_add,
+             'socket_id': socket_id,
+             'socket_filename': socket_filename})
+
+    def memif_socket_filename_dump(self):
+        return self.api(self.papi.memif_socket_filename_dump, {})
+
+    def svs_table_add_del(self, af, table_id, is_add=1):
+        return self.api(self.papi.svs_table_add_del,
+                        {
+                            'table_id': table_id,
+                            'is_add': is_add,
+                            'af': af,
+                        })
+
+    def svs_route_add_del(self, table_id, prefix, src_table_id, is_add=1):
+        return self.api(self.papi.svs_route_add_del,
+                        {
+                            'table_id': table_id,
+                            'source_table_id': src_table_id,
+                            'prefix': prefix,
+                            'is_add': is_add,
+                        })
+
+    def svs_enable_disable(self, af, table_id, sw_if_index, is_enable=1):
+        return self.api(self.papi.svs_enable_disable,
+                        {
+                            'af': af,
+                            'table_id': table_id,
+                            'sw_if_index': sw_if_index,
+                            'is_enable': is_enable,
+                        })
+
+    def svs_dump(self):
+        return self.api(self.papi.svs_dump, {})