UDP-Encap: name counters for the stats segment

change the ADD api so that is returns the 'ID' that can be used
by the client to read the stats from the stats segment and to
delete the object. Previously a similar value used required
to be chosen by the client, now VPP allocates one (like it
does e.g. for interfaces)

Change-Id: I563cf6092276eb990c52d5457c86e72546bcf69e
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet/udp/udp.api b/src/vnet/udp/udp.api
index 8788fba..193b577 100644
--- a/src/vnet/udp/udp.api
+++ b/src/vnet/udp/udp.api
@@ -33,16 +33,16 @@
  * @param src_ip - Encap source address
  * @param dst_port - Encap destination port
  * @param src_port - Encap source port
- * @param id - The ID assigned to this encap object by the caller
+ * @param id - VPP assigned id; ignored in add message, set in dump
  */
 typedef udp_encap
 {
-  u32 id;
   u32 table_id;
   u16 src_port;
   u16 dst_port;
   vl_api_address_t src_ip;
   vl_api_address_t dst_ip;
+  u32 id;
 };
 
 /**
@@ -51,7 +51,7 @@
  * @param context - sender context, to match reply w/ request
  * @param udp_encap - UDP encap description
  */
-autoreply define udp_encap_add
+define udp_encap_add
 {
   u32 client_index;
   u32 context;
@@ -59,6 +59,20 @@
 };
 
 /**
+ * @brief Add UDP encap reply
+ * @param context - sender context, to match reply w/ request
+ * @param retval - success/failure return value
+ * @param id - The ID of the encap object that should be used on delete
+ *             and when reading stats from the stats segment.
+ */
+define udp_encap_add_reply
+{
+  u32 context;
+  i32 retval;
+  u32 id;
+};
+
+/**
  * @brief Del UDP encap
  * @param client_index - opaque cookie to identify the sender
  * @param context - sender context, to match reply w/ request