NAT: DS-Lite (VPP-1040)
[vpp.git] / test / vpp_papi_provider.py
index 68b2bd0..468cf83 100644 (file)
@@ -195,7 +195,7 @@ class VppPapiProvider(object):
         return cli + "\n" + str(self.cli(cli))
 
     def _convert_mac(self, mac):
-        return int(mac.replace(":", ""), 16) << 16
+        return mac.replace(':', '').decode('hex')
 
     def show_version(self):
         """ """
@@ -1346,6 +1346,29 @@ class VppPapiProvider(object):
         """
         return self.api(self.papi.nat44_lb_static_mapping_dump, {})
 
+    def nat44_del_session(
+            self,
+            addr,
+            port,
+            protocol,
+            vrf_id=0,
+            is_in=1):
+        """Delete NAT44 session
+
+        :param addr: IPv4 address
+        :param por: port number
+        :param protocol: IP protocol number
+        :param vrf_id: VRF ID
+        :param is_in: 1 if inside network addres and port pari, 0 if outside
+        """
+        return self.api(
+            self.papi.nat44_del_session,
+            {'address': addr,
+             'port': port,
+             'protocol': protocol,
+             'vrf_id': vrf_id,
+             'is_in': is_in})
+
     def nat_det_add_del_map(
             self,
             in_addr,
@@ -1624,6 +1647,34 @@ class VppPapiProvider(object):
         """
         return self.api(self.papi.nat64_prefix_dump, {})
 
+    def dslite_set_aftr_addr(self, ip6, ip4):
+        """Set DS-Lite AFTR addresses
+
+        :param ip4: IPv4 address
+        :param ip6: IPv6 address
+        """
+        return self.api(
+            self.papi.dslite_set_aftr_addr,
+            {'ip4_addr': ip4,
+             'ip6_addr': ip6})
+
+    def dslite_add_del_pool_addr_range(
+            self,
+            start_addr,
+            end_addr,
+            is_add=1):
+        """Add/del address range to DS-Lite pool
+
+        :param start_addr: First IP address
+        :param end_addr: Last IP address
+        :param is_add: 1 if add, 0 if delete (Default value = 1)
+        """
+        return self.api(
+            self.papi.dslite_add_del_pool_addr_range,
+            {'start_addr': start_addr,
+             'end_addr': end_addr,
+             'is_add': is_add})
+
     def control_ping(self):
         self.api(self.papi.control_ping)