interface: send proper link/admin status in event
[vpp.git] / src / vnet / interface.api
index d8d9198..4ffc7f8 100644 (file)
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-option version = "2.3.0";
+option version = "3.1.1";
 
 import "vnet/interface_types.api";
 
@@ -113,7 +113,7 @@ autoreply define want_interface_events
     @param sw_if_index - index of the interface
     @param sup_sw_if_index - index of parent interface if any, else same as sw_if_index
     @param l2_address_length - length of the interface's l2 address
-    @param pid - the interface's l2 address
+    @param l2_address - the interface's l2 address
     @param interface_name - name of the interface
     @param link_duplex - 1 if half duplex, 2 if full duplex
     @param link_speed - value in kbps
@@ -151,9 +151,6 @@ define sw_interface_details
   u32 l2_address_length;
   u8 l2_address[8];
 
-  /* Interface name */
-  u8 interface_name[64];
-
   /* 1 = up, 0 = down */
   u8 admin_up_down;
   u8 link_up_down;
@@ -192,7 +189,6 @@ define sw_interface_details
   u32 vtr_push_dot1q;          // ethertype of first pushed tag is dot1q/dot1ad
   u32 vtr_tag1;                        // first pushed tag
   u32 vtr_tag2;                        // second pushed tag
-  u8 tag[64];
 
   /* pbb tag rewrite info */
   u16 outer_tag;
@@ -200,14 +196,19 @@ define sw_interface_details
   u8  b_smac[6];
   u16 b_vlanid;
   u32 i_sid;
+
+  /* Interface name */
+  string interface_name[64];
+  string tag[64];
 };
 
 /** \brief Request all or filtered subset of sw_interface_details
     @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 dump info on, ~0 if on all
+    @param sw_if_index - index of the interface to dump info on, 0 or ~0 if on all
+      TODO: Support selecting only index==0 when CSIT is ready.
     @param name_filter_valid - 1 if requesting a filtered subset of records else 0
-      if name filter is valid, sw_if_index value is effectively set to ~0
+      if name filter is set as valid, sw_if_index value is ignored and all interfaces are examined
     @param name_filter - interface name substring filter. Eg. loop1 returns [loop1, loop10]
 */
 define sw_interface_dump
@@ -215,8 +216,8 @@ define sw_interface_dump
   u32 client_index;
   u32 context;
   vl_api_interface_index_t sw_if_index;
-  u8 name_filter_valid;
-  u8 name_filter[49];
+  bool name_filter_valid;
+  string name_filter[];
 };
 
 /** \brief Set or delete one or all ip addresses on a specified interface
@@ -246,7 +247,7 @@ autoreply define sw_interface_add_del_address
     @param context - sender context, to match reply w/ request
     @param sw_if_index - index of the interface
     @param is_ipv6 - if non-zero ipv6, else ipv4
-    @param vrf_id - fib table/vrd id to associate the interface with
+    @param vrf_id - fib table/vrf id to associate the interface with
 */
 autoreply define sw_interface_set_table
 {
@@ -318,11 +319,11 @@ autoreply define sw_interface_clear_stats
 */
 autoreply define sw_interface_tag_add_del 
 {
-    u32 client_index;
-    u32 context;
-    u8 is_add;
-    u32 sw_if_index;
-    u8 tag[64];
+  u32 client_index;
+  u32 context;
+  bool is_add;
+  vl_api_interface_index_t sw_if_index;
+  string tag[64];
 };
 
 /** \brief Set an interface's MAC address