flowprobe: use explicit types in api
[vpp.git] / src / plugins / flowprobe / flowprobe.api
index 830e442..8e8b90f 100644 (file)
@@ -7,11 +7,27 @@
 
 option version = "1.0.0";
 
+import "vnet/interface_types.api";
+
+enum flowprobe_which_flags : u8
+{
+  FLOWPROBE_WHICH_FLAG_IP4 = 0x1,
+  FLOWPROBE_WHICH_FLAG_L2  = 0x2,
+  FLOWPROBE_WHICH_FLAG_IP6 = 0x4,
+};
+
+enum flowprobe_record_flags : u8
+{
+  FLOWPROBE_RECORD_FLAG_L2 = 0x1,
+  FLOWPROBE_RECORD_FLAG_L3 = 0x2,
+  FLOWPROBE_RECORD_FLAG_L4 = 0x4,
+};
+
 /** \brief Enable / disable per-packet IPFIX recording on an interface
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
     @param is_add - add address if non-zero, else delete
-    @param is_ipv6 - if non-zero the address is ipv6, else ipv4
+    @param which - flags indicating forwarding path
     @param sw_if_index - index of the interface
 */
 autoreply manual_print define flowprobe_tx_interface_add_del
@@ -23,11 +39,11 @@ autoreply manual_print define flowprobe_tx_interface_add_del
   u32 context;
 
   /* Enable / disable the feature */
-  u8 is_add;
-  u8 which;  /* 0 = ipv4, 1 = l2, 2 = ipv6 */
+  bool is_add;
+  vl_api_flowprobe_which_flags_t which;
 
   /* Interface handle */
-  u32 sw_if_index;
+  vl_api_interface_index_t sw_if_index;
   option vat_help = "<intfc> [disable]";
 };
 
@@ -35,9 +51,7 @@ autoreply define flowprobe_params
 {
   u32 client_index;
   u32 context;
-  u8 record_l2;
-  u8 record_l3;
-  u8 record_l4;
+  vl_api_flowprobe_record_flags_t record_flags;
   u32 active_timer;  /* ~0 is off, 0 is default */
   u32 passive_timer; /* ~0 is off, 0 is default */
   option vat_help = "record <[l2] [l3] [l4]> [active <timer> passive <timer>]";