Use IP address types on UDP encap API
[vpp.git] / test / vpp_papi_provider.py
index 50a94d7..f9ac769 100644 (file)
@@ -275,6 +275,10 @@ class VppPapiProvider(object):
                          'unnumbered_sw_if_index': sw_if_index,
                          'is_add': is_add})
 
+    def ip_unnumbered_dump(self, sw_if_index=0xffffffff):
+        return self.api(self.papi.ip_unnumbered_dump,
+                        {'sw_if_index': sw_if_index})
+
     def sw_interface_enable_disable_mpls(self, sw_if_index,
                                          is_enable=1):
         """
@@ -1145,15 +1149,13 @@ class VppPapiProvider(object):
              'session_id': session_id}
         )
 
-    def udp_encap_add_del(self,
-                          id,
-                          src_ip,
-                          dst_ip,
-                          src_port,
-                          dst_port,
-                          table_id=0,
-                          is_add=1,
-                          is_ip6=0):
+    def udp_encap_add(self,
+                      id,
+                      src_ip,
+                      dst_ip,
+                      src_port,
+                      dst_port,
+                      table_id=0):
         """ Add a GRE tunnel
         :param id: user provided ID
         :param src_ip:
@@ -1161,21 +1163,23 @@ class VppPapiProvider(object):
         :param src_port:
         :param dst_port:
         :param outer_fib_id:  (Default value = 0)
-        :param is_add:  (Default value = 1)
-        :param is_ipv6:  (Default value = 0)
         """
 
         return self.api(
-            self.papi.udp_encap_add_del,
-            {'id': id,
-             'is_add': is_add,
-             'is_ip6': is_ip6,
-             'src_ip': src_ip,
-             'dst_ip': dst_ip,
-             'src_port': src_port,
-             'dst_port': dst_port,
-             'table_id': table_id}
-        )
+            self.papi.udp_encap_add,
+            {
+                'udp_encap': {
+                    'id': id,
+                    'src_ip': src_ip,
+                    'dst_ip': dst_ip,
+                    'src_port': src_port,
+                    'dst_port': dst_port,
+                    'table_id': table_id
+                }
+            })
+
+    def udp_encap_del(self, id):
+        return self.api(self.papi.udp_encap_del, {'id': id})
 
     def udp_encap_dump(self):
         return self.api(self.papi.udp_encap_dump, {})
@@ -2230,6 +2234,8 @@ class VppPapiProvider(object):
         :param current_data_offset:  (Default value = 0)
         """
 
+        mask_len = ((len(mask) - 1) / 16 + 1) * 16
+        mask = mask + '\0' * (mask_len - len(mask))
         return self.api(
             self.papi.classify_add_del_table,
             {'is_add': is_add,
@@ -2242,6 +2248,7 @@ class VppPapiProvider(object):
              'miss_next_index': miss_next_index,
              'current_data_flag': current_data_flag,
              'current_data_offset': current_data_offset,
+             'mask_len': mask_len,
              'mask': mask})
 
     def classify_add_del_session(
@@ -2265,6 +2272,8 @@ class VppPapiProvider(object):
         :param metadata:  (Default value = 0)
         """
 
+        match_len = ((len(match) - 1) / 16 + 1) * 16
+        match = match + '\0' * (match_len - len(match))
         return self.api(
             self.papi.classify_add_del_session,
             {'is_add': is_add,
@@ -2274,6 +2283,7 @@ class VppPapiProvider(object):
              'advance': advance,
              'action': action,
              'metadata': metadata,
+             'match_len': match_len,
              'match': match})
 
     def input_acl_set_interface(