Tests to target holes in adjacency and DPO test coverage
[vpp.git] / test / vpp_papi_provider.py
index c7e875f..0062b72 100644 (file)
@@ -276,6 +276,12 @@ class VppPapiProvider(object):
                         {'sw_if_index': sw_if_index,
                          'suppress': suppress})
 
+    def ip6_nd_proxy(self, address, sw_if_index, is_del=0):
+        return self.api(self.papi.ip6nd_proxy_add_del,
+                        {'address': address,
+                         'sw_if_index': sw_if_index,
+                         'is_del': is_del})
+
     def ip6_sw_interface_ra_config(self, sw_if_index,
                                    no,
                                    suppress,
@@ -1103,7 +1109,8 @@ class VppPapiProvider(object):
     def snat_user_session_dump(
             self,
             ip_address,
-            vrf_id):
+            vrf_id,
+            is_ip4=1):
         """Dump S-NAT user's sessions
 
         :param ip_address: ip adress of the user to be dumped
@@ -1114,7 +1121,8 @@ class VppPapiProvider(object):
         return self.api(
             self.papi.snat_user_session_dump,
             {'ip_address': ip_address,
-             'vrf_id': vrf_id})
+             'vrf_id': vrf_id,
+             'is_ip4': is_ip4})
 
     def snat_user_dump(self):
         """Dump S-NAT users
@@ -1123,6 +1131,61 @@ class VppPapiProvider(object):
         """
         return self.api(self.papi.snat_user_dump, {})
 
+    def snat_add_det_map(
+            self,
+            in_addr,
+            in_plen,
+            out_addr,
+            out_plen,
+            is_add=1):
+        """Add/delete S-NAT deterministic mapping
+
+        :param is_add - 1 if add, 0 if delete
+        :param in_addr - inside IP address
+        :param in_plen - inside IP address prefix length
+        :param out_addr - outside IP address
+        :param out_plen - outside IP address prefix length
+        """
+        return self.api(
+            self.papi.snat_add_det_map,
+            {'is_add': is_add,
+             'in_addr': in_addr,
+             'in_plen': in_plen,
+             'out_addr': out_addr,
+             'out_plen': out_plen})
+
+    def snat_det_forward(
+            self,
+            in_addr):
+        """Get outside address and port range from inside address
+
+        :param in_addr - inside IP address
+        """
+        return self.api(
+            self.papi.snat_det_forward,
+            {'in_addr': in_addr})
+
+    def snat_det_reverse(
+            self,
+            out_addr,
+            out_port):
+        """Get inside address from outside address and port
+
+        :param out_addr - outside IP address
+        :param out_port - outside port
+        """
+        return self.api(
+            self.papi.snat_det_reverse,
+            {'out_addr': out_addr,
+             'out_port': out_port})
+
+    def snat_det_map_dump(self):
+        """Dump S-NAT deterministic mappings
+
+        :return: Dictionary of S-NAT deterministic mappings
+        """
+        return self.api(self.papi.snat_det_map_dump, {})
+
     def control_ping(self):
         self.api(self.papi.control_ping)