X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_papi_provider.py;h=0269736cd78a3542302de3581b7d55e52e0c2593;hb=f2a23cc8602525a325eaeaae6aca5e18882c33da;hp=338ca27eaa1ce4ad9cdf86cc6b8e79dc75813431;hpb=23f0c4515f62b18ef6f1ff7cab537838f0f65457;p=vpp.git diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index 338ca27eaa1..0269736cd78 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -603,6 +603,18 @@ class VppPapiProvider(object): 'tag1': tag1, 'tag2': tag2}) + def sw_interface_set_l2_emulation( + self, + sw_if_index, + enable=1): + """L2 Emulation + :param sw_if_index - interface the operation is applied to + + """ + return self.api(self.papi.l2_emulation, + {'sw_if_index': sw_if_index, + 'enable': enable}) + def sw_interface_set_flags(self, sw_if_index, admin_up_down): """ @@ -747,7 +759,7 @@ class VppPapiProvider(object): is_local=0, is_classify=0, is_multipath=0, - is_l2_bridged=0, + is_dvr=0, is_udp_encap=0, is_source_lookup=0): """ @@ -768,7 +780,7 @@ class VppPapiProvider(object): :param is_multipath: (Default value = 0) :param is_resolve_host: (Default value = 0) :param is_resolve_attached: (Default value = 0) - :param is_l2_bridged: (Default value = 0) + :param is_dvr: (Default value = 0) :param is_source_lookup: (Default value = 0) :param next_hop_weight: (Default value = 1) @@ -790,7 +802,7 @@ class VppPapiProvider(object): 'is_multipath': is_multipath, 'is_resolve_host': is_resolve_host, 'is_resolve_attached': is_resolve_attached, - 'is_l2_bridged': is_l2_bridged, + 'is_dvr': is_dvr, 'is_source_lookup': is_source_lookup, 'is_udp_encap': is_udp_encap, 'next_hop_weight': next_hop_weight, @@ -1222,6 +1234,9 @@ class VppPapiProvider(object): addr_only=1, vrf_id=0, protocol=0, + twice_nat=0, + out2in_only=0, + tag="", is_add=1): """Add/delete NAT44 static mapping @@ -1233,6 +1248,9 @@ 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 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( @@ -1245,7 +1263,10 @@ class VppPapiProvider(object): 'external_port': external_port, 'external_sw_if_index': external_sw_if_index, 'vrf_id': vrf_id, - 'protocol': protocol}) + 'protocol': protocol, + 'twice_nat': twice_nat, + 'out2in_only': out2in_only, + 'tag': tag}) def nat44_add_del_identity_mapping( self, @@ -1255,6 +1276,7 @@ class VppPapiProvider(object): addr_only=1, vrf_id=0, protocol=0, + tag='', is_add=1): """Add/delete NAT44 identity mapping @@ -1264,6 +1286,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( @@ -1274,6 +1297,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( @@ -1281,12 +1305,14 @@ class VppPapiProvider(object): first_ip_address, last_ip_address, is_add=1, - vrf_id=0xFFFFFFFF): + vrf_id=0xFFFFFFFF, + twice_nat=0): """Add/del NAT44 address range :param first_ip_address: First IP address :param last_ip_address: Last IP address :param vrf_id: VRF id for the address range + :param twice_nat: twice NAT address for extenal hosts :param is_add: 1 if add, 0 if delete (Default value = 1) """ return self.api( @@ -1294,6 +1320,7 @@ class VppPapiProvider(object): {'first_ip_address': first_ip_address, 'last_ip_address': last_ip_address, 'vrf_id': vrf_id, + 'twice_nat': twice_nat, 'is_add': is_add}) def nat44_address_dump(self): @@ -1335,14 +1362,19 @@ class VppPapiProvider(object): def nat44_add_interface_addr( self, sw_if_index, + twice_nat=0, is_add=1): """Add/del NAT44 address from interface :param sw_if_index: Software index of the interface + :param twice_nat: twice NAT address for extenal hosts :param is_add: 1 if add, 0 if delete (Default value = 1) """ - return self.api(self.papi.nat44_add_del_interface_addr, - {'is_add': is_add, 'sw_if_index': sw_if_index}) + return self.api( + self.papi.nat44_add_del_interface_addr, + {'is_add': is_add, + 'sw_if_index': sw_if_index, + 'twice_nat': twice_nat}) def nat44_interface_addr_dump(self): """Dump NAT44 addresses interfaces @@ -1396,11 +1428,16 @@ class VppPapiProvider(object): external_port, protocol, 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( @@ -1410,6 +1447,9 @@ class VppPapiProvider(object): 'external_port': external_port, 'protocol': protocol, 'vrf_id': vrf_id, + 'twice_nat': twice_nat, + 'out2in_only': out2in_only, + 'tag': tag, 'local_num': local_num, 'locals': locals}) @@ -1443,6 +1483,17 @@ class VppPapiProvider(object): 'vrf_id': vrf_id, 'is_in': is_in}) + def nat44_forwarding_enable_disable( + self, + enable): + """Enable/disable forwarding for NAT44 + + :param enable: 1 for enable, 0 for disable + """ + return self.api( + self.papi.nat44_forwarding_enable_disable, + {'enable': enable}) + def nat_set_reass( self, timeout=2, @@ -1781,6 +1832,17 @@ class VppPapiProvider(object): {'ip4_addr': ip4, 'ip6_addr': ip6}) + def dslite_set_b4_addr(self, ip6, ip4): + """Set DS-Lite B4 IPv6 address + + :param ip4: IPv4 address + :param ip6: IPv6 address + """ + return self.api( + self.papi.dslite_set_b4_addr, + {'ip4_addr': ip4, + 'ip6_addr': ip6}) + def dslite_add_del_pool_addr_range( self, start_addr, @@ -1798,6 +1860,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) @@ -2079,6 +2189,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, @@ -2088,6 +2199,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(), }) @@ -2278,6 +2390,7 @@ class VppPapiProvider(object): psid_offset=0, psid_length=0, is_translation=0, + is_rfc6052=0, mtu=1280): return self.api( self.papi.map_add_domain, @@ -2292,6 +2405,7 @@ class VppPapiProvider(object): 'psid_offset': psid_offset, 'psid_length': psid_length, 'is_translation': is_translation, + 'is_rfc6052': is_rfc6052, 'mtu': mtu }) @@ -2973,3 +3087,18 @@ class VppPapiProvider(object): 'is_outbound': is_outbound, 'sa_id': sa_id, 'is_ip_any': is_ip_any}) + + def app_namespace_add(self, + namespace_id, + ip4_fib_id=0, + ip6_fib_id=0, + sw_if_index=0xFFFFFFFF, + secret=0): + return self.api( + self.papi.app_namespace_add_del, + {'secret': secret, + 'sw_if_index': sw_if_index, + 'ip4_fib_id': ip4_fib_id, + 'ip6_fib_id': ip6_fib_id, + 'namespace_id': namespace_id, + 'namespace_id_len': len(namespace_id)})