API: Add service definitions for events and singleton messages (second attempt)

Based on https://gerrit.fd.io/r/#/c/10920/

Updates service definition in stats.api with correct reply message names.

Change-Id: I3282bee5304e667e23bc1fab3f43d967a50d880d
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
diff --git a/src/vnet/dhcp/dhcp.api b/src/vnet/dhcp/dhcp.api
index 721a1be..975aa6e 100644
--- a/src/vnet/dhcp/dhcp.api
+++ b/src/vnet/dhcp/dhcp.api
@@ -109,6 +109,10 @@
   u8 host_mac[6];
 };
 
+service {
+  rpc dhcp_client_config returns dhcp_client_config_reply events dhcp_compl_event;
+};
+
 /** \brief Dump DHCP proxy table
     @param client_index - opaque cookie to identify the sender
     @param True for IPv6 proxy table
diff --git a/src/vnet/interface.api b/src/vnet/interface.api
index a8733d1..a5a9184 100644
--- a/src/vnet/interface.api
+++ b/src/vnet/interface.api
@@ -1,5 +1,10 @@
 option version = "1.0.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
     @param context - sender context, to match reply w/ request
@@ -273,66 +278,6 @@
   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
diff --git a/src/vnet/ip/ip.api b/src/vnet/ip/ip.api
index 6ed5a9d..b94d6d7 100644
--- a/src/vnet/ip/ip.api
+++ b/src/vnet/ip/ip.api
@@ -686,6 +686,11 @@
   u8 mac_ip;
 };
 
+service {
+  rpc want_ip4_arp_events returns want_ip4_arp_events_reply
+    events ip4_arp_event;
+};
+
 /** \brief Register for ip6 nd resolution events
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -720,6 +725,11 @@
   u8 mac_ip;
 };
 
+service {
+  rpc want_ip6_nd_events returns want_ip6_nd_events_reply
+    events ip6_nd_event;
+};
+
 /** \brief Proxy ARP add / del request
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
diff --git a/src/vnet/l2/l2.api b/src/vnet/l2/l2.api
index 5102783..3fb6de0 100644
--- a/src/vnet/l2/l2.api
+++ b/src/vnet/l2/l2.api
@@ -182,6 +182,11 @@
   vl_api_mac_entry_t mac[n_macs];
 };
 
+service {
+  rpc want_l2_macs_events returns want_l2_macs_events_reply
+    events l2_macs_event;
+};
+
 /** \brief Set interface L2 flags (such as L2_LEARN, L2_FWD, 
     L2_FLOOD, L2_UU_FLOOD, or L2_ARP_TERM bits). This can be used
     to disable one or more of the features represented by the