acl-plugin: take 2 at VPP-991 fix, this time with a test case which verifies it.
[vpp.git] / test / vpp_papi_provider.py
index 519aff8..634dabe 100644 (file)
@@ -101,11 +101,11 @@ class VppPapiProvider(object):
     def wait_for_event(self, timeout, name=None):
         """ Wait for and return next event. """
         if name:
-            self.test_class.logger.debug("Expecting event within %ss",
-                                         timeout)
-        else:
             self.test_class.logger.debug("Expecting event '%s' within %ss",
                                          name, timeout)
+        else:
+            self.test_class.logger.debug("Expecting event within %ss",
+                                         timeout)
         if self._events:
             self.test_class.logger.debug("Not waiting, event already queued")
         limit = time.time() + timeout
@@ -419,6 +419,18 @@ class VppPapiProvider(object):
                          'ip_address': ip,
                          'mac_address': mac})
 
+    def want_ip4_arp_events(self, enable_disable=1, address=0):
+        return self.api(self.papi.want_ip4_arp_events,
+                        {'enable_disable': enable_disable,
+                         'address': address,
+                         'pid': os.getpid(), })
+
+    def want_ip6_nd_events(self, enable_disable=1, address=0):
+        return self.api(self.papi.want_ip6_nd_events,
+                        {'enable_disable': enable_disable,
+                         'address': address,
+                         'pid': os.getpid(), })
+
     def l2fib_add_del(self, mac, bd_id, sw_if_index, is_add=1, static_mac=0,
                       filter_mac=0, bvi_mac=0):
         """Create/delete L2 FIB entry.
@@ -2266,23 +2278,70 @@ class VppPapiProvider(object):
              'traffic_type': traffic_type
              })
 
-    def macip_acl_add_replace(self, rules, acl_index=0xFFFFFFFF, tag=""):
+    def acl_add_replace(self, acl_index, r, tag='',
+                        expected_retval=0):
+        """Add/replace an ACL
+        :param int acl_index: ACL index to replace, 2^32-1 to create new ACL.
+        :param acl_rule r: ACL rules array.
+        :param str tag: symbolic tag (description) for this ACL.
+        :param int count: number of rules.
+        """
+        return self.api(self.papi.acl_add_replace,
+                        {'acl_index': acl_index,
+                         'r': r,
+                         'count': len(r),
+                         'tag': tag},
+                        expected_retval=expected_retval)
+
+    def acl_del(self, acl_index, expected_retval=0):
+        """
+
+        :param acl_index:
+        :return:
+        """
+        return self.api(self.papi.acl_del,
+                        {'acl_index': acl_index},
+                        expected_retval=expected_retval)
+
+    def acl_interface_set_acl_list(self, sw_if_index, n_input, acls,
+                                   expected_retval=0):
+        return self.api(self.papi.acl_interface_set_acl_list,
+                        {'sw_if_index': sw_if_index,
+                         'count': len(acls),
+                         'n_input': n_input,
+                         'acls': acls},
+                        expected_retval=expected_retval)
+
+    def acl_dump(self, acl_index, expected_retval=0):
+        return self.api(self.papi.acl_dump,
+                        {'acl_index': acl_index},
+                        expected_retval=expected_retval)
+
+    def macip_acl_add(self, rules, tag=""):
         """ Add MACIP acl
 
         :param rules: list of rules for given acl
         :param tag: acl tag
         """
 
-        # return self.api(self.papi.macip_acl_add_replace,
-        #                 {'acl_index': acl_index,
-        #                  'r': rules,
-        #                  'count': len(rules),
-        #                  'tag': tag})
         return self.api(self.papi.macip_acl_add,
                         {'r': rules,
                          'count': len(rules),
                          'tag': tag})
 
+    def macip_acl_add_replace(self, rules, acl_index=0xFFFFFFFF, tag=""):
+        """ Add MACIP acl
+
+        :param rules: list of rules for given acl
+        :param tag: acl tag
+        """
+
+        return self.api(self.papi.macip_acl_add_replace,
+                        {'acl_index': acl_index,
+                         'r': rules,
+                         'count': len(rules),
+                         'tag': tag})
+
     def macip_acl_del(self, acl_index):
         """