Python API: Add enum and union support.
[vpp.git] / test / vpp_papi_provider.py
index 6dbed29..81c8802 100644 (file)
@@ -70,7 +70,7 @@ class VppPapiProvider(object):
             for filename in fnmatch.filter(filenames, '*.api.json'):
                 jsonfiles.append(os.path.join(root, filename))
 
-        self.vpp = VPP(jsonfiles, logger=test_class.logger)
+        self.vpp = VPP(jsonfiles, logger=test_class.logger, read_timeout=5)
         self._events = deque()
 
     def __enter__(self):
@@ -503,6 +503,50 @@ class VppPapiProvider(object):
                          'learn_limit': learn_limit,
                          'pid': os.getpid(), })
 
+    def want_dhcp6_pd_reply_events(self, enable_disable=1):
+        return self.api(self.papi.want_dhcp6_pd_reply_events,
+                        {'enable_disable': enable_disable,
+                         'pid': os.getpid()})
+
+    def dhcp6_clients_enable_disable(self, enable=1):
+        return self.api(self.papi.dhcp6_clients_enable_disable,
+                        {'enable': enable})
+
+    def dhcp6_pd_send_client_message(self, msg_type, sw_if_index, T1, T2,
+                                     prefixes, server_index=0xFFFFFFFF,
+                                     irt=0, mrt=0, mrc=1, mrd=0, stop=0,
+                                     ):
+        return self.api(self.papi.dhcp6_pd_send_client_message,
+                        {'sw_if_index': sw_if_index,
+                         'server_index': server_index,
+                         'irt': irt,
+                         'mrt': mrt,
+                         'mrc': mrc,
+                         'mrd': mrd,
+                         'stop': stop,
+                         'msg_type': msg_type,
+                         'T1': T1,
+                         'T2': T2,
+                         'n_prefixes': len(prefixes),
+                         'prefixes': prefixes})
+
+    def dhcp6_pd_client_enable_disable(self, sw_if_index, prefix_group='',
+                                       enable=1):
+        return self.api(self.papi.dhcp6_pd_client_enable_disable,
+                        {'sw_if_index': sw_if_index,
+                         'prefix_group': prefix_group,
+                         'enable': enable})
+
+    def ip6_add_del_address_using_prefix(self, sw_if_index, address,
+                                         prefix_length, prefix_group,
+                                         is_add=1):
+        return self.api(self.papi.ip6_add_del_address_using_prefix,
+                        {'sw_if_index': sw_if_index,
+                         'prefix_group': prefix_group,
+                         'address': address,
+                         'prefix_length': prefix_length,
+                         'is_add': is_add})
+
     def l2fib_add_del(self, mac, bd_id, sw_if_index, is_add=1, static_mac=0,
                       filter_mac=0, bvi_mac=0):
         """Create/delete L2 FIB entry.
@@ -658,7 +702,7 @@ class VppPapiProvider(object):
                         {'sw_if_index': sw_if_index,
                          'admin_up_down': admin_up_down})
 
-    def sw_interface_set_mtu(self, sw_if_index, mtu):
+    def sw_interface_set_mtu(self, sw_if_index, mtu=[0, 0, 0, 0]):
         """
         :param sw_if_index:
         :param mtu:
@@ -2298,6 +2342,9 @@ class VppPapiProvider(object):
                 'is_ipv6': is_ip6,
             })
 
+    def dhcp_client_dump(self):
+        return self.api(self.papi.dhcp_client_dump, {})
+
     def dhcp_client(self,
                     sw_if_index,
                     hostname,
@@ -2308,13 +2355,14 @@ class VppPapiProvider(object):
         return self.api(
             self.papi.dhcp_client_config,
             {
-                'sw_if_index': sw_if_index,
-                'hostname': hostname,
-                'client_id': client_id,
                 'is_add': is_add,
-                'want_dhcp_event': want_dhcp_events,
-                'set_broadcast_flag': set_broadcast_flag,
-                'pid': os.getpid(),
+                'client': {
+                    'sw_if_index': sw_if_index,
+                    'hostname': hostname,
+                    'id': client_id,
+                    'want_dhcp_event': want_dhcp_events,
+                    'set_broadcast_flag': set_broadcast_flag,
+                    'pid': os.getpid()}
             })
 
     def ip_mroute_add_del(self,