policer: add api to configure input policing

Add a new API to apply a policer to an input interface.

Type: improvement
Signed-off-by: Brian Russell <brian@graphiant.com>
Change-Id: Ie8aff9120149b63d85363a9a5afdcaed60a93700
diff --git a/src/vnet/policer/policer.api b/src/vnet/policer/policer.api
index c3b8d7c..a664ab0 100644
--- a/src/vnet/policer/policer.api
+++ b/src/vnet/policer/policer.api
@@ -15,6 +15,7 @@
 
 option version = "2.0.0";
 
+import "vnet/interface_types.api";
 import "vnet/policer/policer_types.api";
 
 /** \brief policer bind: Associate/disassociate a policer with a worker thread.
@@ -34,6 +35,23 @@
   bool bind_enable;
 };
 
+/** \brief policer input: Apply policer as an input feature.
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param name - policer name
+    @param sw_if_index - interface to apply the policer
+    @param apply - Apply/remove
+*/
+autoreply define policer_input
+{
+  u32 client_index;
+  u32 context;
+
+  string name[64];
+  vl_api_interface_index_t sw_if_index;
+  bool apply;
+};
+
 /** \brief Add/del policer
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request