Implement DHCPv6 IA NA client (VPP-1094)
[vpp.git] / test / vpp_papi_provider.py
index 6dbed29..7869afa 100644 (file)
@@ -503,6 +503,79 @@ class VppPapiProvider(object):
                          'learn_limit': learn_limit,
                          'pid': os.getpid(), })
 
+    def want_dhcp6_reply_events(self, enable_disable=1):
+        return self.api(self.papi.want_dhcp6_reply_events,
+                        {'enable_disable': enable_disable,
+                         '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_send_client_message(self, msg_type, sw_if_index, T1, T2,
+                                  addresses, server_index=0xFFFFFFFF,
+                                  irt=0, mrt=0, mrc=1, mrd=0, stop=0,
+                                  ):
+        return self.api(self.papi.dhcp6_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_addresses': len(addresses),
+                         'addresses': addresses})
+
+    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_client_enable_disable(self, sw_if_index, prefix_group='',
+                                    enable=1):
+        return self.api(self.papi.dhcp6_client_enable_disable,
+                        {'sw_if_index': sw_if_index,
+                         'enable': enable})
+
+    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 +731,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 +2371,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 +2384,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,
@@ -2619,9 +2696,10 @@ class VppPapiProvider(object):
                          'client_mac': client_mac})
 
     def sr_localsid_add_del(self,
-                            localsid_addr,
+                            localsid,
                             behavior,
-                            nh_addr,
+                            nh_addr4,
+                            nh_addr6,
                             is_del=0,
                             end_psp=0,
                             sw_if_index=0xFFFFFFFF,
@@ -2630,10 +2708,11 @@ class VppPapiProvider(object):
                             ):
         """ Add/del IPv6 SR local-SID.
 
-        :param localsid_addr:
+        :param localsid:
         :param behavior: END=1; END.X=2; END.DX2=4; END.DX6=5;
         :param behavior: END.DX4=6; END.DT6=7; END.DT4=8
-        :param nh_addr:
+        :param nh_addr4:
+        :param nh_addr6:
         :param is_del:  (Default value = 0)
         :param end_psp: (Default value = 0)
         :param sw_if_index: (Default value = 0xFFFFFFFF)
@@ -2643,13 +2722,14 @@ class VppPapiProvider(object):
         return self.api(
             self.papi.sr_localsid_add_del,
             {'is_del': is_del,
-             'localsid_addr': localsid_addr,
+             'localsid': localsid,
              'end_psp': end_psp,
              'behavior': behavior,
              'sw_if_index': sw_if_index,
              'vlan_index': vlan_index,
              'fib_table': fib_table,
-             'nh_addr': nh_addr
+             'nh_addr4': nh_addr4,
+             'nh_addr6': nh_addr6
              }
         )