X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fvpp_papi_provider.py;h=66126c599aec4b4045b6170c410939c563ec58f9;hb=8527f12b525181b47cc7c0c9e943a743b1a3b19e;hp=31d7ac48d1f083b6e53b00e636e6c14575077f1f;hpb=810086d8fd08445919ae03bf36161037e53a712a;p=vpp.git diff --git a/test/vpp_papi_provider.py b/test/vpp_papi_provider.py index 31d7ac48d1f..66126c599ae 100644 --- a/test/vpp_papi_provider.py +++ b/test/vpp_papi_provider.py @@ -1408,6 +1408,43 @@ class VppPapiProvider(object): 'vrf_id': vrf_id, 'is_in': is_in}) + def nat_set_reass( + self, + timeout=2, + max_reass=1024, + max_frag=5, + drop_frag=0, + is_ip6=0): + """Set NAT virtual fragmentation reassembly + + :param timeout: reassembly timeout (Default 2sec) + :param max_reass: maximum concurrent reassemblies (Default 1024) + :param max_frag: maximum fragmets per reassembly (Default 5) + :param drop_frag: if 0 translate fragments, otherwise drop fragments + :param is_ip6: 1 if IPv6, 0 if IPv4 + """ + return self.api( + self.papi.nat_set_reass, + {'timeout': timeout, + 'max_reass': max_reass, + 'max_frag': max_frag, + 'drop_frag': drop_frag, + 'is_ip6': is_ip6}) + + def nat_get_reass(self): + """Get NAT virtual fragmentation reassembly configuration + + :return: NAT virtual fragmentation reassembly configuration + """ + return self.api(self.papi.nat_get_reass, {}) + + def nat_reass_dump(self): + """Dump NAT virtual fragmentation reassemblies + + :return: Dictionary of NAT virtual fragmentation reassemblies + """ + return self.api(self.papi.nat_reass_dump, {}) + def nat_det_add_del_map( self, in_addr, @@ -1686,6 +1723,18 @@ class VppPapiProvider(object): """ return self.api(self.papi.nat64_prefix_dump, {}) + def nat64_add_interface_addr( + self, + sw_if_index, + is_add=1): + """Add/del NAT64 address from interface + + :param sw_if_index: Software index of the interface + :param is_add: 1 if add, 0 if delete (Default value = 1) + """ + return self.api(self.papi.nat64_add_del_interface_addr, + {'is_add': is_add, 'sw_if_index': sw_if_index}) + def dslite_set_aftr_addr(self, ip6, ip4): """Set DS-Lite AFTR addresses @@ -2008,14 +2057,17 @@ class VppPapiProvider(object): grp_address, grp_address_length, e_flags, + next_hop_afi, next_hop_sw_if_index, i_flags, + bier_imp=0, rpf_id=0, table_id=0, is_add=1, is_ipv6=0, is_local=0): """ + IP Multicast Route add/del """ return self.api( self.papi.ip_mroute_add_del, @@ -2027,6 +2079,8 @@ class VppPapiProvider(object): 'is_add': is_add, 'is_ipv6': is_ipv6, 'is_local': is_local, + 'bier_imp': bier_imp, + 'next_hop_afi': next_hop_afi, 'grp_address_length': grp_address_length, 'grp_address': grp_address, 'src_address': src_address}) @@ -2037,6 +2091,9 @@ class VppPapiProvider(object): def ip_mfib_dump(self): return self.api(self.papi.ip_mfib_dump, {}) + def ip6_mfib_dump(self): + return self.api(self.papi.ip6_mfib_dump, {}) + def lisp_enable_disable(self, is_enabled): return self.api( self.papi.lisp_enable_disable, @@ -2444,6 +2501,23 @@ class VppPapiProvider(object): 'acls': acls}, expected_retval=expected_retval) + def acl_interface_add_del(self, + sw_if_index, + acl_index, + is_add=1): + """ Add/Delete ACL to/from interface + + :param sw_if_index: + :param acl_index: + :param is_add: (Default value = 1) + """ + + return self.api(self.papi.acl_interface_add_del, + {'is_add': is_add, + 'is_input': 1, + 'sw_if_index': sw_if_index, + 'acl_index': acl_index}) + def acl_dump(self, acl_index, expected_retval=0): return self.api(self.papi.acl_dump, {'acl_index': acl_index}, @@ -2568,3 +2642,124 @@ class VppPapiProvider(object): 'nh': nh, 'is_add': is_add, 'is_ip6': is_ip6}) + + def bier_table_add_del(self, + bti, + mpls_label, + is_add=1): + """ BIER Table add/del """ + return self.api( + self.papi.bier_table_add_del, + {'bt_tbl_id': {"bt_set": bti.set_id, + "bt_sub_domain": bti.sub_domain_id, + "bt_hdr_len_id": bti.hdr_len_id}, + 'bt_label': mpls_label, + 'bt_is_add': is_add}) + + def bier_table_dump(self): + return self.api(self.papi.bier_table_dump, {}) + + def bier_route_add_del(self, + bti, + bp, + next_hop, + next_hop_label, + next_hop_table_id, + next_hop_is_ip4=1, + is_add=1): + """ BIER Route add/del """ + return self.api( + self.papi.bier_route_add_del, + {'br_tbl_id': {"bt_set": bti.set_id, + "bt_sub_domain": bti.sub_domain_id, + "bt_hdr_len_id": bti.hdr_len_id}, + 'br_bp': bp, + 'br_n_paths': 1, + 'br_paths': [{'next_hop': next_hop, + 'afi': 0, + 'n_labels': 1, + 'table_id': next_hop_table_id, + 'label_stack': [next_hop_label]}], + 'br_is_add': is_add}) + + def bier_route_dump(self, bti): + return self.api( + self.papi.bier_route_dump, + {'br_tbl_id': {"bt_set": bti.set_id, + "bt_sub_domain": bti.sub_domain_id, + "bt_hdr_len_id": bti.hdr_len_id}}) + + def bier_imp_add(self, + bti, + src, + ibytes, + is_add=1): + """ BIER Imposition Add """ + return self.api( + self.papi.bier_imp_add, + {'bi_tbl_id': {"bt_set": bti.set_id, + "bt_sub_domain": bti.sub_domain_id, + "bt_hdr_len_id": bti.hdr_len_id}, + 'bi_src': src, + 'bi_n_bytes': len(ibytes), + 'bi_bytes': ibytes}) + + def bier_imp_del(self, bi_index): + """ BIER Imposition del """ + return self.api( + self.papi.bier_imp_del, + {'bi_index': bi_index}) + + def bier_imp_dump(self): + return self.api(self.papi.bier_imp_dump, {}) + + def bier_disp_table_add_del(self, + bdti, + is_add=1): + """ BIER Disposition Table add/del """ + return self.api( + self.papi.bier_disp_table_add_del, + {'bdt_tbl_id': bdti, + 'bdt_is_add': is_add}) + + def bier_disp_table_dump(self): + return self.api(self.papi.bier_disp_table_dump, {}) + + def bier_disp_entry_add_del(self, + bdti, + bp, + payload_proto, + next_hop, + next_hop_tbl_id=0, + next_hop_rpf_id=~0, + next_hop_is_ip4=1, + is_add=1): + """ BIER Route add/del """ + return self.api( + self.papi.bier_disp_entry_add_del, + {'bde_tbl_id': bdti, + 'bde_bp': bp, + 'bde_payload_proto': payload_proto, + 'bde_n_paths': 1, + 'bde_paths': [{'next_hop': next_hop, + 'table_id': next_hop_tbl_id, + 'afi': 0, + 'rpf_id': next_hop_rpf_id, + 'n_labels': 0, + 'label_stack': [0]}], + 'bde_is_add': is_add}) + + def bier_disp_entry_dump(self, bdti): + return self.api( + self.papi.bier_disp_entry_dump, + {'bde_tbl_id': bdti}) + + def add_node_next(self, node_name, next_name): + """ Set the next node for a given node request + + :param node_name: + :param next_name: + """ + return self.api(self.papi.add_node_next, + {'node_name': node_name, + 'next_name': next_name})