X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=test%2Fvpp_papi_provider.py;h=4e7809f6960c7246ba7dec6748a473ca0aadc1f9;hp=b814da27b3389f18659acf1dc8eb23fa9fdd4075;hb=97748ca;hpb=f5fa5ae2b021f946fbb8ec56e692459cd34bc7fb diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index b814da27b33..4e7809f6960 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -71,7 +71,7 @@ class VppPapiProvider(object): _zero, _negative = range(2) - def __init__(self, name, shm_prefix, test_class): + def __init__(self, name, shm_prefix, test_class, read_timeout): self.hook = Hook("vpp-papi-provider") self.name = name self.shm_prefix = shm_prefix @@ -85,7 +85,8 @@ 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, read_timeout=5) + self.vpp = VPP(jsonfiles, logger=test_class.logger, + read_timeout=read_timeout) self._events = deque() def __enter__(self): @@ -513,6 +514,11 @@ class VppPapiProvider(object): 'enable': enable, 'install_default_routes': install_default_routes}) + def want_interface_events(self, enable_disable=1): + return self.api(self.papi.want_interface_events, + {'enable_disable': enable_disable, + 'pid': os.getpid(), }) + def want_macs_learn_events(self, enable_disable=1, scan_delay=0, max_macs_in_event=0, learn_limit=0): return self.api(self.papi.want_l2_macs_events, @@ -2272,6 +2278,9 @@ class VppPapiProvider(object): def bfd_udp_del_echo_source(self): return self.api(self.papi.bfd_udp_del_echo_source, {}) + def bfd_udp_get_echo_source(self): + return self.api(self.papi.bfd_udp_get_echo_source, {}) + def classify_add_del_table( self, is_add, @@ -3309,6 +3318,7 @@ class VppPapiProvider(object): tunnel_src_address='', tunnel_dst_address='', is_tunnel=1, + is_tunnel_ipv6=0, is_add=1, udp_encap=0): """ IPSEC SA add/del @@ -3342,6 +3352,7 @@ class VppPapiProvider(object): 'crypto_key': crypto_key, 'is_add': is_add, 'is_tunnel': is_tunnel, + 'is_tunnel_ipv6': is_tunnel_ipv6, 'udp_encap': udp_encap}) def ipsec_spd_add_del_entry(self, @@ -3360,6 +3371,7 @@ class VppPapiProvider(object): priority=100, is_outbound=1, is_add=1, + is_ipv6=0, is_ip_any=0): """ IPSEC policy SPD add/del - Wrapper to configure ipsec SPD policy entries in VPP @@ -3398,6 +3410,7 @@ class VppPapiProvider(object): 'policy': policy, 'priority': priority, 'is_outbound': is_outbound, + 'is_ipv6': is_ipv6, 'is_ip_any': is_ip_any}) def ipsec_tunnel_if_add_del(self, local_ip, remote_ip, local_spi, @@ -3624,6 +3637,18 @@ class VppPapiProvider(object): 'mode': host, 'sw_if_index': sw_if_index}) + def igmp_proxy_device_add_del(self, vrf_id, sw_if_index, add): + """ Add/del IGMP proxy device """ + return self.api(self.papi.igmp_proxy_device_add_del, + {'vrf_id': vrf_id, 'sw_if_index': sw_if_index, + 'add': add}) + + def igmp_proxy_device_add_del_interface(self, vrf_id, sw_if_index, add): + """ Add/del interface to/from IGMP proxy device """ + return self.api(self.papi.igmp_proxy_device_add_del_interface, + {'vrf_id': vrf_id, 'sw_if_index': sw_if_index, + 'add': add}) + def igmp_listen(self, filter, sw_if_index, saddrs, gaddr): """ Listen for new (S,G) on specified interface @@ -3824,3 +3849,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, {})