IPv6 ND Router discovery control plane (VPP-1095)
[vpp.git] / src / vnet / interface.api
index a8733d1..9dfb0c3 100644 (file)
@@ -1,4 +1,9 @@
-option version = "1.0.0";
+option version = "1.1.0";
+
+service {
+  rpc want_interface_events returns want_interface_events_reply
+    events sw_interface_event;
+};
 
 /** \brief Set flags on the interface
     @param client_index - opaque cookie to identify the sender
@@ -273,66 +278,6 @@ typeonly manual_print manual_endian define vnet_simple_counter
   u64 rx_mpls;
 };
 
-/** \brief Simple stats counters structure
-    @param vnet_counter_type- such as ip4, ip6, punts, etc
-    @param first_sw_if_index - first sw index in block of index, counts
-    @param count - number of counters, equal to the number of interfaces in
-      this stats block
-    @param data - contiguous block of u64 counters
-
-    vnet_counter_type defined in enums - plural - in vnet/interface.h
-*/
-manual_print manual_endian define vnet_interface_simple_counters
-{
-  u8 vnet_counter_type;
-  u32 first_sw_if_index;
-  u32 count;
-  u64 data[count];
-};
-
-/** \brief Combined stats counters structure
-    @param vnet_counter_type- such as ip4, ip6, punts, etc
-    @param first_sw_if_index - first sw index in block of index, counts
-    @param count - number of counters, equal to the number of interfaces in
-      this stats block
-    @param data - contiguous block of vlib_counter_t structures
-
-    vnet_counter_type defined in enums - plural - in vnet/interface.h
-*/
-manual_print manual_endian define vnet_interface_combined_counters
-{
-  u8 vnet_counter_type;
-  u32 first_sw_if_index;
-  u32 count;
-  vl_api_vlib_counter_t data[count];
-};
-
-
-/** \brief Simple per interface stats counters structure
-    @param count - number of elements in message
-    @param timestamp - u32 vlib timestamp for control plane
-    @param data[count] - vl_api_vnet_simple_counter_t 
-
-*/
-manual_print manual_endian define vnet_per_interface_simple_counters
-{
-  u32 count;
-  u32 timestamp;
-  vl_api_vnet_simple_counter_t data[count];
-};
-
-/** \brief Combined stats counters structure per interface
-    @param count - number of elements in message
-    @param timestamp - u32 vlib timestamp for control plane
-    @param data[count] - vl_api_vnet_combined_counter_t
-*/
-manual_print manual_endian define vnet_per_interface_combined_counters
-{
-  u32 count;
-  u32 timestamp;
-  vl_api_vnet_combined_counter_t data[count];
-};
-
 /** \brief Set unnumbered interface add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -391,6 +336,30 @@ autoreply define sw_interface_set_mac_address
     u8 mac_address[6];
 };
 
+/** \brief Get interface's MAC address
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - the interface whose MAC will be returned
+*/
+define sw_interface_get_mac_address
+{
+    u32 client_index;
+    u32 context;
+    u32 sw_if_index;
+};
+
+/** \brief Reply for get interface's MAC address request
+    @param context - returned sender context, to match reply w/ request
+    @param retval - return code
+    @param mac_addr - returned interface's MAC address
+*/
+define sw_interface_get_mac_address_reply
+{
+    u32 context;
+    i32 retval;
+    u8 mac_address[6];
+};
+
 /** \brief Set an interface's rx-mode
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request