gso: Add gso feature arc
[vpp.git] / test / vpp_papi_provider.py
index 663f688..d80f2ed 100644 (file)
@@ -37,6 +37,7 @@ defaultmapping = {
     'bier_imp_add': {'is_add': 1, },
     'bier_route_add_del': {'is_add': 1, },
     'bier_table_add_del': {'is_add': 1, },
+    'bond_create': {'mac_address': '', 'id': 0xFFFFFFFF},
     'bridge_domain_add_del': {'flood': 1, 'uu_flood': 1, 'forward': 1,
                               'learn': 1, 'is_add': 1, },
     'bvi_create': {'user_instance': 4294967295, },
@@ -45,13 +46,6 @@ defaultmapping = {
                                'nbuckets': 2, 'memory_size': 2097152,
                                'next_table_index': 4294967295,
                                'miss_next_index': 4294967295, },
-    'dhcp6_client_enable_disable': {'enable': 1, },
-    'dhcp6_clients_enable_disable': {'enable': 1, },
-    'dhcp6_pd_client_enable_disable': {'enable': 1, },
-    'dhcp6_send_client_message': {'server_index': 4294967295, 'mrc': 1, },
-    'dhcp_client_config': {'is_add': 1, 'set_broadcast_flag': 1, },
-    'dhcp_proxy_config': {'is_add': 1, },
-    'dhcp_proxy_set_vss': {'vss_type': 255, 'is_add': 1, },
     'gbp_subnet_add_del': {'sw_if_index': 4294967295, 'epg_id': 65535, },
     'geneve_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
                               'decap_next_index': 4294967295, },
@@ -138,8 +132,6 @@ defaultmapping = {
     'vxlan_gpe_add_del_tunnel': {'mcast_sw_if_index': 4294967295, 'is_add': 1,
                                  'protocol': 3, },
     'want_bfd_events': {'enable_disable': 1, },
-    'want_dhcp6_pd_reply_events': {'enable_disable': 1, },
-    'want_dhcp6_reply_events': {'enable_disable': 1, },
     'want_igmp_events': {'enable': 1, },
     'want_interface_events': {'enable_disable': 1, },
     'want_ip4_arp_events': {'enable_disable': 1, 'ip': '0.0.0.0', },
@@ -342,17 +334,28 @@ class VppPapiProvider(object):
         self.hook.after_api(api_fn.__name__, api_args)
         return reply
 
-    def cli(self, cli):
+    def cli_return_response(self, cli):
         """ Execute a CLI, calling the before/after hooks appropriately.
+        Return the reply without examining it
 
         :param cli: CLI to execute
-        :returns: CLI output
+        :returns: response object
 
         """
         self.hook.before_cli(cli)
         cli += '\n'
         r = self.papi.cli_inband(cmd=cli)
         self.hook.after_cli(cli)
+        return r
+
+    def cli(self, cli):
+        """ Execute a CLI, calling the before/after hooks appropriately.
+
+        :param cli: CLI to execute
+        :returns: CLI output
+
+        """
+        r = self.cli_return_response(cli)
         if r.retval == -156:
             raise CliSyntaxError(r.reply)
         if r.retval != 0:
@@ -366,7 +369,8 @@ class VppPapiProvider(object):
         :param cli: CLI to execute
         :returns: CLI output
         """
-        return cli + "\n" + str(self.cli(cli))
+        return cli + "\n" + self.cli(cli).encode('ascii',
+                                                 errors='backslashreplace')
 
     def want_ip4_arp_events(self, enable_disable=1, ip="0.0.0.0"):
         return self.api(self.papi.want_ip4_arp_events,
@@ -408,57 +412,6 @@ 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_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 sw_interface_set_mac_address(self, sw_if_index, mac):
         return self.api(self.papi.sw_interface_set_mac_address,
                         {'sw_if_index': sw_if_index,
@@ -912,66 +865,6 @@ class VppPapiProvider(object):
                 'udp_checksum': udp_checksum,
             })
 
-    def dhcp_proxy_config(self,
-                          dhcp_server,
-                          dhcp_src_address,
-                          rx_table_id=0,
-                          server_table_id=0,
-                          is_add=1,
-                          is_ipv6=0):
-        return self.api(
-            self.papi.dhcp_proxy_config,
-            {
-                'rx_vrf_id': rx_table_id,
-                'server_vrf_id': server_table_id,
-                'is_ipv6': is_ipv6,
-                'is_add': is_add,
-                'dhcp_server': dhcp_server,
-                'dhcp_src_address': dhcp_src_address,
-            })
-
-    def dhcp_proxy_set_vss(self,
-                           table_id,
-                           vss_type=255,
-                           vpn_ascii_id="",
-                           oui=0,
-                           vpn_index=0,
-                           is_add=1,
-                           is_ip6=0):
-        return self.api(
-            self.papi.dhcp_proxy_set_vss,
-            {
-                'tbl_id': table_id,
-                'vss_type': vss_type,
-                'vpn_ascii_id': vpn_ascii_id,
-                'oui': oui,
-                'vpn_index': vpn_index,
-                'is_add': is_add,
-                'is_ipv6': is_ip6,
-            })
-
-    def dhcp_client_config(self,
-                           sw_if_index,
-                           hostname,
-                           client_id='',
-                           is_add=1,
-                           set_broadcast_flag=1,
-                           want_dhcp_events=0,
-                           dscp=0):
-        return self.api(
-            self.papi.dhcp_client_config,
-            {
-                'is_add': is_add,
-                'client': {
-                    'sw_if_index': sw_if_index,
-                    'hostname': hostname,
-                    'id': client_id,
-                    'want_dhcp_event': want_dhcp_events,
-                    'set_broadcast_flag': set_broadcast_flag,
-                    'dscp': dscp,
-                    'pid': os.getpid()}
-            })
-
     def ip_mroute_add_del(self,
                           table_id,
                           prefix,
@@ -2157,3 +2050,10 @@ class VppPapiProvider(object):
                             'sw_if_index': sw_if_index,
                             'is_enable': is_enable,
                         })
+
+    def feature_gso_enable_disable(self, sw_if_index, enable_disable=1):
+        return self.api(self.papi.feature_gso_enable_disable,
+                        {
+                            'sw_if_index': sw_if_index,
+                            'enable_disable': enable_disable,
+                        })