VAT API to PAPI CONVERSION 00/20500/14
authorpremkumarv <preym17@gmail.com>
Thu, 4 Jul 2019 00:14:57 +0000 (05:44 +0530)
committerPeter Mikus <pmikus@cisco.com>
Fri, 19 Jul 2019 16:54:22 +0000 (16:54 +0000)
Change-Id: I9c87cdfb99780f398da5cd90351b303caa89bda9
Signed-off-by: premkumarv <preym17@gmail.com>
resources/libraries/python/Cop.py
tests/vpp/device/ip6/eth2p-ethip6-ip6base-copwhtlistbase-dev.robot

index 1ff9a99..d875323 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -13,7 +13,7 @@
 
 """COP utilities library."""
 
-from resources.libraries.python.VatExecutor import VatTerminal
+from resources.libraries.python.PapiExecutor import PapiSocketExecutor
 from resources.libraries.python.topology import Topology
 
 
@@ -21,26 +21,42 @@ class Cop(object):
     """COP utilities."""
 
     @staticmethod
-    def cop_add_whitelist_entry(node, interface, ip_format, fib_id):
+    def cop_add_whitelist_entry(node, interface, ip_format, fib_id,
+                                default_cop=0):
         """Add cop whitelisted entry.
 
         :param node: Node to add COP whitelist on.
         :param interface: Interface of the node where the COP is added.
         :param ip_format: IP format : ip4 or ip6 are valid formats.
         :param fib_id: Specify the fib table ID.
+        :param default_cop: 1 => enable non-ip4, non-ip6 filtration.
         :type node: dict
         :type interface: str
         :type ip_format: str
         :type fib_id: int
+        :type default_cop: int
         """
         if ip_format not in ('ip4', 'ip6'):
             raise ValueError("Ip not in correct format!")
+        ip4 = ip6 = 0
+        if ip_format == 'ip4':
+            ip4 = 1
+        else:
+            ip6 = 1
         sw_if_index = Topology.get_interface_sw_index(node, interface)
-        with VatTerminal(node) as vat:
-            vat.vat_terminal_exec_cmd_from_template('cop_whitelist.vat',
-                                                    sw_if_index=sw_if_index,
-                                                    ip=ip_format,
-                                                    fib_id=fib_id)
+        cmd = 'cop_whitelist_enable_disable'
+        err_msg = 'Failed to add COP whitelist on ifc {ifc}'\
+                  .format(ifc=interface)
+        args_in = dict(
+            sw_if_index=int(sw_if_index),
+            fib_id=int(fib_id),
+            ip4=ip4,
+            ip6=ip6,
+            default_cop=default_cop
+        )
+
+        with PapiSocketExecutor(node) as papi_exec:
+            papi_exec.add(cmd, **args_in).get_reply(err_msg)
 
     @staticmethod
     def cop_interface_enable_or_disable(node, interface, state):
@@ -56,12 +72,22 @@ class Cop(object):
         state = state.lower()
         if state in ('enable', 'disable'):
             if state == 'enable':
-                state = ''
+                enable_disable = 1
+            else:
+                enable_disable = 0
             sw_if_index = Topology.get_interface_sw_index(node, interface)
-            with VatTerminal(node) as vat:
-                vat.vat_terminal_exec_cmd_from_template('cop_interface.vat',
-                                                        sw_if_index=sw_if_index,
-                                                        state=state)
+            cmd = 'cop_interface_enable_disable'
+            err_msg = 'Failed to enable or disable on {ifc}'\
+                      .format(ifc=interface)
+
+            args_in = dict(
+                sw_if_index=int(sw_if_index),
+                enable_disable=enable_disable
+            )
+
+            with PapiSocketExecutor(node) as papi_exec:
+                papi_exec.add(cmd, **args_in).get_reply(err_msg)
+
         else:
             raise ValueError(
                 "Possible values are 'enable' or 'disable'!"
index 7ff4b56..83c4363 100644 (file)
@@ -61,8 +61,8 @@
 | | And Set Max Rate And Jumbo And Handle Multi Seg
 | | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Initialize IPv6 forwarding in circular topology
-| | And Add Fib Table | ${dut1} | 1 | ipv6=${True}
-| | And Vpp Route Add | ${dut1} | 2002:1::0 | 64 | vrf=1 | local=${True}
+| | And Add Fib Table | ${dut1} | 1 | ipv6=${TRUE}
+| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE}
 | | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip6 | 1
 | | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable
 | | Then Send packet and verify headers