X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_papi_provider.py;h=52fc3641672c28909a639711332bfe30fe7f7d65;hb=4c53313cd7e9b866412ad3e04b2d91ac098c1398;hp=18bb1f60d4026216d41fb2d8e719a6205ace4a37;hpb=31ed74407643595fdce206e9d7487108fb8b33ab;p=vpp.git diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index 18bb1f60d40..52fc3641672 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -36,6 +36,13 @@ class L2_VTR_OP: L2_TRANSLATE_2_2 = 8 +class QOS_SOURCE: + EXT = 0 + VLAN = 1 + MPLS = 2 + IP = 3 + + class UnexpectedApiReturnValueError(Exception): """ exception raised when the API return value is unexpected """ pass @@ -466,6 +473,27 @@ class VppPapiProvider(object): 'address': address, 'pid': os.getpid(), }) + def want_ip6_ra_events(self, enable_disable=1): + return self.api(self.papi.want_ip6_ra_events, + {'enable_disable': enable_disable, + 'pid': os.getpid(), }) + + def ip6nd_send_router_solicitation(self, sw_if_index, irt=1, mrt=120, + mrc=0, mrd=0): + return self.api(self.papi.ip6nd_send_router_solicitation, + {'irt': irt, + 'mrt': mrt, + 'mrc': mrc, + 'mrd': mrd, + 'sw_if_index': sw_if_index}) + + def ip6_nd_address_autoconfig(self, sw_if_index, enable, + install_default_routes): + return self.api(self.papi.ip6_nd_address_autoconfig, + {'sw_if_index': sw_if_index, + 'enable': enable, + 'install_default_routes': install_default_routes}) + 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, @@ -3175,6 +3203,15 @@ class VppPapiProvider(object): """ Get IP reassembly parameters """ return self.api(self.papi.ip_reassembly_get, {'is_ip6': is_ip6}) + def ip_reassembly_enable_disable(self, sw_if_index, enable_ip4=False, + enable_ip6=False): + """ Enable/disable IP reassembly """ + return self.api(self.papi.ip_reassembly_enable_disable, + {'sw_if_index': sw_if_index, + 'enable_ip4': 1 if enable_ip4 else 0, + 'enable_ip6': 1 if enable_ip6 else 0, + }) + def gbp_endpoint_add_del(self, is_add, sw_if_index, addr, is_ip6, epg): """ GBP endpoint Add/Del """ return self.api(self.papi.gbp_endpoint_add_del, @@ -3202,21 +3239,100 @@ class VppPapiProvider(object): """ GBP contract Dump """ return self.api(self.papi.gbp_contract_dump, {}) - def sixrd_add_tunnel(self, fib_index, ip6_prefix, ip6_prefix_len, - ip4_prefix, ip4_prefix_len, ip4_src, mtu, - security_check): + def ipip_6rd_add_tunnel(self, fib_index, ip6_prefix, ip6_prefix_len, + ip4_prefix, ip4_prefix_len, ip4_src, + security_check): """ 6RD tunnel Add """ - return self.api(self.papi.sixrd_add_tunnel, + return self.api(self.papi.ipip_6rd_add_tunnel, {'fib_index': fib_index, 'ip6_prefix': ip6_prefix, 'ip6_prefix_len': ip6_prefix_len, 'ip4_prefix': ip4_prefix, 'ip4_prefix_len': ip4_prefix_len, 'ip4_src': ip4_src, - 'mtu': mtu, 'security_check': security_check}) - def sixrd_del_tunnel(self, sw_if_index): + def ipip_6rd_del_tunnel(self, sw_if_index): """ 6RD tunnel Delete """ - return self.api(self.papi.sixrd_del_tunnel, + return self.api(self.papi.ipip_6rd_del_tunnel, {'sw_if_index': sw_if_index}) + + def ipip_add_tunnel(self, src_address, dst_address, is_ipv6=1, + instance=0xFFFFFFFF, fib_index=0): + """ IPIP tunnel Add/Del """ + return self.api(self.papi.ipip_add_tunnel, + {'is_ipv6': is_ipv6, + 'instance': instance, + 'src_address': src_address, + 'dst_address': dst_address, + 'fib_index': fib_index}) + + def ipip_del_tunnel(self, sw_if_index): + """ IPIP tunnel Delete """ + return self.api(self.papi.ipip_del_tunnel, + {'sw_if_index': sw_if_index}) + + def qos_egress_map_update(self, id, outputs): + """ QOS egress map update """ + return self.api(self.papi.qos_egress_map_update, + {'map_id': id, + 'rows': outputs}) + + def qos_egress_map_delete(self, id): + """ QOS egress map delete """ + return self.api(self.papi.qos_egress_map_delete, + {'map_id': id}) + + def qos_mark_enable_disable(self, sw_if_index, + output_source, + map_id, + enable): + """ QOS Mark Enable/Disable """ + return self.api(self.papi.qos_mark_enable_disable, + {'map_id': map_id, + 'sw_if_index': sw_if_index, + 'output_source': output_source, + 'enable': enable}) + + def qos_record_enable_disable(self, sw_if_index, input_source, enable): + """ IP QoS recording Enble/Disable """ + return self.api(self.papi.qos_record_enable_disable, + {'sw_if_index': sw_if_index, + 'input_source': input_source, + 'enable': enable}) + + def igmp_listen(self, enable, sw_if_index, saddr, gaddr): + """ Listen for new (S,G) on specified interface + + :param enable: add/del + :param sw_if_index: interface sw index + :param saddr: source ip4 addr + :param gaddr: group ip4 addr + """ + return self.api(self.papi.igmp_listen, + {'enable': enable, + 'sw_if_index': sw_if_index, + 'saddr': saddr, + 'gaddr': gaddr}) + + def igmp_dump(self, sw_if_index=None): + """ Dump all (S,G) interface configurations """ + if sw_if_index is None: + dump_all = 1 + sw_if_index = 0 + else: + dump_all = 0 + return self.api(self.papi.igmp_dump, {'sw_if_index': sw_if_index, + 'dump_all': dump_all}) + + def igmp_clear_interface(self, sw_if_index): + """ Remove all (S,G)s from specified interface + doesn't send IGMP report! + """ + return self.api( + self.papi.igmp_clear_interface, { + 'sw_if_index': sw_if_index}) + + def want_igmp_events(self, enable=1): + return self.api(self.papi.want_igmp_events, {'enable': enable, + 'pid': os.getpid()})