X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_papi_provider.py;h=cdbe08d6a716b7182d612f699e97b53df4e4e789;hb=438f63094465d35c278155484fe85153e438873e;hp=6e6f7caf287c54a45e3b2f4fdb7681083cafd56f;hpb=240b5ef57cc79cf32934ba8f218de29b6685406b;p=vpp.git diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index 6e6f7caf287..cdbe08d6a71 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -362,7 +362,8 @@ class VppPapiProvider(object): is_ipv6=0, encap_vrf_id=0, decap_next_index=0xFFFFFFFF, - vni=0): + vni=0, + instance=0xFFFFFFFF): """ :param dst_addr: @@ -373,6 +374,7 @@ class VppPapiProvider(object): :param decap_next_index: (Default value = 0xFFFFFFFF) :param mcast_sw_if_index: (Default value = 0xFFFFFFFF) :param vni: (Default value = 0) + :param instance: (Default value = 0xFFFFFFFF) """ return self.api(self.papi.vxlan_add_del_tunnel, @@ -383,7 +385,8 @@ class VppPapiProvider(object): 'mcast_sw_if_index': mcast_sw_if_index, 'encap_vrf_id': encap_vrf_id, 'decap_next_index': decap_next_index, - 'vni': vni}) + 'vni': vni, + 'instance': instance}) def geneve_add_del_tunnel( self, @@ -626,6 +629,16 @@ 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): + """ + :param sw_if_index: + :param mtu: + + """ + return self.api(self.papi.sw_interface_set_mtu, + {'sw_if_index': sw_if_index, + 'mtu': mtu}) + def create_subif(self, sw_if_index, sub_id, outer_vlan, inner_vlan, no_tags=0, one_tag=0, two_tags=0, dot1ad=0, exact_match=0, default_sub=0, outer_vlan_id_any=0, inner_vlan_id_any=0): @@ -973,7 +986,9 @@ class VppPapiProvider(object): src_address, dst_address, outer_fib_id=0, - is_teb=0, + tunnel_type=0, + instance=0xFFFFFFFF, + session_id=0, is_add=1, is_ip6=0): """ Add a GRE tunnel @@ -981,19 +996,23 @@ class VppPapiProvider(object): :param src_address: :param dst_address: :param outer_fib_id: (Default value = 0) + :param tunnel_type: (Default value = 0) + :param instance: (Default value = 0xFFFFFFFF) + :param session_id: (Defalt value = 0) :param is_add: (Default value = 1) :param is_ipv6: (Default value = 0) - :param is_teb: (Default value = 0) """ return self.api( self.papi.gre_add_del_tunnel, {'is_add': is_add, 'is_ipv6': is_ip6, - 'teb': is_teb, + 'tunnel_type': tunnel_type, + 'instance': instance, 'src_address': src_address, 'dst_address': dst_address, - 'outer_fib_id': outer_fib_id} + 'outer_fib_id': outer_fib_id, + 'session_id': session_id} ) def udp_encap_add_del(self, @@ -1235,6 +1254,8 @@ class VppPapiProvider(object): vrf_id=0, protocol=0, twice_nat=0, + out2in_only=0, + tag="", is_add=1): """Add/delete NAT44 static mapping @@ -1247,6 +1268,8 @@ class VppPapiProvider(object): :param vrf_id: VRF ID :param protocol: IP protocol (Default value = 0) :param twice_nat: 1 if translate external host address and port + :param out2in_only: if 1 rule is matching only out2in direction + :param tag: Opaque string tag :param is_add: 1 if add, 0 if delete (Default value = 1) """ return self.api( @@ -1260,7 +1283,9 @@ class VppPapiProvider(object): 'external_sw_if_index': external_sw_if_index, 'vrf_id': vrf_id, 'protocol': protocol, - 'twice_nat': twice_nat}) + 'twice_nat': twice_nat, + 'out2in_only': out2in_only, + 'tag': tag}) def nat44_add_del_identity_mapping( self, @@ -1270,6 +1295,7 @@ class VppPapiProvider(object): addr_only=1, vrf_id=0, protocol=0, + tag='', is_add=1): """Add/delete NAT44 identity mapping @@ -1279,6 +1305,7 @@ class VppPapiProvider(object): :param addr_only: 1 if address only mapping, 0 if address and port :param vrf_id: VRF ID :param protocol: IP protocol (Default value = 0) + :param tag: Opaque string tag :param is_add: 1 if add, 0 if delete (Default value = 1) """ return self.api( @@ -1289,6 +1316,7 @@ class VppPapiProvider(object): 'port': port, 'sw_if_index': sw_if_index, 'vrf_id': vrf_id, + 'tag': tag, 'protocol': protocol}) def nat44_add_del_address_range( @@ -1421,12 +1449,14 @@ class VppPapiProvider(object): vrf_id=0, twice_nat=0, out2in_only=0, + tag='', local_num=0, locals=[], is_add=1): """Add/delete NAT44 load balancing static mapping :param twice_nat: 1 if translate external host address and port + :param tag: Opaque string tag :param is_add - 1 if add, 0 if delete """ return self.api( @@ -1438,6 +1468,7 @@ class VppPapiProvider(object): 'vrf_id': vrf_id, 'twice_nat': twice_nat, 'out2in_only': out2in_only, + 'tag': tag, 'local_num': local_num, 'locals': locals}) @@ -1848,6 +1879,54 @@ class VppPapiProvider(object): 'end_addr': end_addr, 'is_add': is_add}) + def nat66_add_del_interface( + self, + sw_if_index, + is_inside=1, + is_add=1): + """Enable/disable NAT66 feature on the interface + :param sw_if_index: Index of the interface + :param is_inside: 1 if inside, 0 if outside (Default value = 1) + :param is_add: 1 if add, 0 if delete (Default value = 1) + """ + return self.api( + self.papi.nat66_add_del_interface, + {'sw_if_index': sw_if_index, + 'is_inside': is_inside, + 'is_add': is_add}) + + def nat66_add_del_static_mapping( + self, + in_ip, + out_ip, + vrf_id=0, + is_add=1): + """Add/delete NAT66 static mapping + + :param in_ip: Inside IPv6 address + :param out_ip: Outside IPv6 address + :param vrf_id: VRF ID (Default value = 0) + :param is_add: 1 if add, 0 if delete (Default value = 1) + """ + return self.api( + self.papi.nat66_add_del_static_mapping, + {'local_ip_address': in_ip, + 'external_ip_address': out_ip, + 'vrf_id': vrf_id, + 'is_add': is_add}) + + def nat66_interface_dump(self): + """Dump interfaces with NAT66 feature + :return: Dictionary of interfaces with NAT66 feature + """ + return self.api(self.papi.nat66_interface_dump, {}) + + def nat66_static_mapping_dump(self): + """Dump NAT66 static mappings + :return: Dictionary of NAT66 static mappings + """ + return self.api(self.papi.nat66_static_mapping_dump, {}) + def control_ping(self): self.api(self.papi.control_ping) @@ -2065,6 +2144,29 @@ class VppPapiProvider(object): 'l2_table_index': l2_table_index, 'is_add': is_add}) + def output_acl_set_interface( + self, + is_add, + sw_if_index, + ip4_table_index=0xFFFFFFFF, + ip6_table_index=0xFFFFFFFF, + l2_table_index=0xFFFFFFFF): + """ + :param is_add: + :param sw_if_index: + :param ip4_table_index: (Default value = 0xFFFFFFFF) + :param ip6_table_index: (Default value = 0xFFFFFFFF) + :param l2_table_index: (Default value = 0xFFFFFFFF) + """ + + return self.api( + self.papi.output_acl_set_interface, + {'sw_if_index': sw_if_index, + 'ip4_table_index': ip4_table_index, + 'ip6_table_index': ip6_table_index, + 'l2_table_index': l2_table_index, + 'is_add': is_add}) + def set_ipfix_exporter( self, collector_address, @@ -2129,6 +2231,7 @@ class VppPapiProvider(object): hostname, client_id='', is_add=1, + set_broadcast_flag=1, want_dhcp_events=0): return self.api( self.papi.dhcp_client_config, @@ -2138,6 +2241,7 @@ class VppPapiProvider(object): 'client_id': client_id, 'is_add': is_add, 'want_dhcp_event': want_dhcp_events, + 'set_broadcast_flag': set_broadcast_flag, 'pid': os.getpid(), }) @@ -2592,6 +2696,16 @@ class VppPapiProvider(object): 'acls': acls}, expected_retval=expected_retval) + def acl_interface_set_etype_whitelist(self, sw_if_index, + n_input, whitelist, + expected_retval=0): + return self.api(self.papi.acl_interface_set_etype_whitelist, + {'sw_if_index': sw_if_index, + 'count': len(whitelist), + 'n_input': n_input, + 'whitelist': whitelist}, + expected_retval=expected_retval) + def acl_interface_add_del(self, sw_if_index, acl_index, @@ -2824,6 +2938,7 @@ class VppPapiProvider(object): bdti, bp, payload_proto, + next_hop_afi, next_hop, next_hop_tbl_id=0, next_hop_rpf_id=~0, @@ -2838,7 +2953,7 @@ class VppPapiProvider(object): 'bde_n_paths': 1, 'bde_paths': [{'next_hop': next_hop, 'table_id': next_hop_tbl_id, - 'afi': 0, + 'afi': next_hop_afi, 'rpf_id': next_hop_rpf_id, 'n_labels': 0, 'label_stack': [0]}], @@ -3040,3 +3155,53 @@ class VppPapiProvider(object): 'ip6_fib_id': ip6_fib_id, 'namespace_id': namespace_id, 'namespace_id_len': len(namespace_id)}) + + def punt_socket_register(self, l4_port, pathname, header_version=1, + is_ip4=1, l4_protocol=0x11): + """ Punt to socket """ + return self.api(self.papi.punt_socket_register, + {'is_ip4': is_ip4, + 'l4_protocol': l4_protocol, + 'l4_port': l4_port, + 'pathname': pathname, + 'header_version': header_version}) + + def ip_reassembly_set(self, timeout_ms, max_reassemblies, + expire_walk_interval_ms, is_ip6=0): + """ Set IP reassembly parameters """ + return self.api(self.papi.ip_reassembly_set, + {'is_ip6': is_ip6, + 'timeout_ms': timeout_ms, + 'expire_walk_interval_ms': expire_walk_interval_ms, + 'max_reassemblies': max_reassemblies}) + + def ip_reassembly_get(self, is_ip6=0): + """ Get IP reassembly parameters """ + return self.api(self.papi.ip_reassembly_get, {'is_ip6': is_ip6}) + + 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, + {'is_add': is_add, + 'endpoint': { + 'is_ip6': is_ip6, + 'sw_if_index': sw_if_index, + 'address': addr, + 'epg_id': epg}}) + + def gbp_endpoint_dump(self): + """ GBP endpoint Dump """ + return self.api(self.papi.gbp_endpoint_dump, {}) + + def gbp_contract_add_del(self, is_add, src_epg, dst_epg, acl_index): + """ GBP contract Add/Del """ + return self.api(self.papi.gbp_contract_add_del, + {'is_add': is_add, + 'contract': { + 'acl_index': acl_index, + 'src_epg': src_epg, + 'dst_epg': dst_epg}}) + + def gbp_contract_dump(self): + """ GBP contract Dump """ + return self.api(self.papi.gbp_contract_dump, {})