interface: add custom interface name support
[vpp.git] / src / vnet / interface.api
index 1db5ef3..d89dea4 100644 (file)
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-option version = "3.2.0";
+option version = "3.2.3";
 
 import "vnet/interface_types.api";
 import "vnet/ethernet/ethernet_types.api";
@@ -40,6 +40,20 @@ autoreply define sw_interface_set_flags
   vl_api_if_status_flags_t flags;
 };
 
+/** \brief Set interface promiscuous mode
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+    @param sw_if_index - index of the interface to set flags on
+    @param promisc_on - promiscuous mode is on ?
+*/
+autoreply define sw_interface_set_promisc
+{
+  u32 client_index;
+  u32 context;
+  vl_api_interface_index_t sw_if_index;
+  bool promisc_on;
+};
+
 /** \brief Set interface physical MTU
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -204,7 +218,7 @@ define sw_interface_dump
 {
   u32 client_index;
   u32 context;
-  vl_api_interface_index_t sw_if_index;
+  vl_api_interface_index_t sw_if_index [default=0xFFFFFFFF];
   bool name_filter_valid;
   string name_filter[];
 };
@@ -228,6 +242,43 @@ autoreply define sw_interface_add_del_address
   vl_api_address_with_prefix_t prefix;
 };
 
+/** \brief IP interface address replace begin
+
+    The use-case is that, for some unspecified reason, the control plane
+    has a different set of interface addresses than VPP
+    currently has. The CP would thus like to 'replace' VPP's set
+    only by specifying what the new set shall be, i.e. it is not
+    going to delete anything that already eixts, rather, is wants any
+    unspecified interface addresses to be deleted implicitly.
+    The CP declares the start of this procedure with this replace_begin
+    API Call, and when it has populated all addresses it wants, it calls
+    the below replace_end API. From this point on it is of course free
+    to add and delete interface addresses as usual.
+    The underlying mechanism by which VPP implements this replace is
+    intentionally left unspecified.
+
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+autoreply define sw_interface_address_replace_begin
+{
+  u32 client_index;
+  u32 context;
+};
+
+/** \brief IP interface address replace end
+
+    see ip_interface_address_replace_begin description.
+
+    @param client_index - opaque cookie to identify the sender
+    @param context - sender context, to match reply w/ request
+*/
+autoreply define sw_interface_address_replace_end
+{
+  u32 client_index;
+  u32 context;
+};
+
 /** \brief Associate the specified interface with a fib table
     @param client_index - opaque cookie to identify the sender
     @param context - sender context, to match reply w/ request
@@ -407,6 +458,22 @@ autoreply define sw_interface_set_rx_placement
     bool is_main;
 };
 
+/** \brief Set custom interface name
+    Set custom interface name for the interface.
+    @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 name will be set
+    @param name - the custom interface name to be set
+k
+*/
+autoreply define sw_interface_set_interface_name
+{
+  u32 client_index;
+  u32 context;
+  vl_api_interface_index_t sw_if_index;
+  string name[64];
+};
+
 /** \brief dump the rx queue placement of interface(s)
     @param sw_if_index - optional interface index for which queue placement to
       be requested. sw_if_index = ~0 will dump placement information for all