Make sw_interface_dump more compatible with 2.2.0
[vpp.git] / src / vnet / interface.api
index 2010d8b..d8d9198 100644 (file)
@@ -1,4 +1,22 @@
-option version = "2.2.0";
+/* Hey Emacs use -*- mode: C -*- */
+/*
+ * Copyright (c) 2018 Cisco and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+option version = "2.3.0";
+
+import "vnet/interface_types.api";
 
 service {
   rpc want_interface_events returns want_interface_events_reply
@@ -59,7 +77,6 @@ autoreply define sw_interface_set_ip_directed_broadcast
   u8  enable;
 };
 
-
 /** \brief Interface Event generated by want_interface_events
     @param client_index - opaque cookie to identify the sender
     @param pid - client pid registered to receive notification
@@ -94,7 +111,7 @@ autoreply define want_interface_events
 
 /** \brief Interface details structure (fix this) 
     @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 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 interface_name - name of the interface
@@ -176,7 +193,7 @@ define sw_interface_details
   u32 vtr_tag1;                        // first pushed tag
   u32 vtr_tag2;                        // second pushed tag
   u8 tag[64];
-  
+
   /* pbb tag rewrite info */
   u16 outer_tag;
   u8  b_dmac[6];
@@ -185,11 +202,19 @@ define sw_interface_details
   u32 i_sid;
 };
 
-/* works */
+/** \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 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
+    @param name_filter - interface name substring filter. Eg. loop1 returns [loop1, loop10]
+*/
 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];
 };
@@ -256,80 +281,6 @@ define sw_interface_get_table_reply
   u32 vrf_id;
 };
 
-typeonly manual_print manual_endian define vlib_counter
-{
-  u64 packets;                 /**< packet counter */
-  u64 bytes;                   /**< byte counter  */
-};
-
-/** \brief Combined interface counter data type for vnet_interface_combined_counters
-    @param sw_if_index - interface indexes for counters
-    @param rx_packets - received packet count
-    @param rx_bytes - received byte count
-    @param rx_unicast_packets - received unicast packet count
-    @param rx_unicast_bytes - received unicast byte count
-    @param rx_multicast_packets - received multicast packet count
-    @param rx_multicast_bytes - received multicast byte count
-    @param rx_broadcast_packets - received broadcast packet count
-    @param rx_broadcast_bytes - received broadcast byte count
-    @param tx_packets - transmitted packet count
-    @param tx_bytes - transmitted byte count
-    @param tx_unicast_packets - transmitted unicast packet count
-    @param tx_unicast_bytes - transmitted unicast byte count
-    @param tx_multicast_packets - transmitted multicast packet count
-    @param tx_multicast_bytes - transmitted multicast byte count
-    @param tx_broadcast_packets - transmitted broadcast packet count
-    @param tx_broadcast_bytes - transmitted broadcast byte count
-
-*/
-typeonly manual_print manual_endian define vnet_combined_counter
-{
-  u32 sw_if_index;
-  u64 rx_packets;                              /**< packet counter */
-  u64 rx_bytes;                                        /**< byte counter  */
-  u64 rx_unicast_packets;                      /**< packet counter */
-  u64 rx_unicast_bytes;                                /**< byte counter  */
-  u64 rx_multicast_packets;                    /**< packet counter */
-  u64 rx_multicast_bytes;                      /**< byte counter  */
-  u64 rx_broadcast_packets;                    /**< packet counter */
-  u64 rx_broadcast_bytes;                      /**< byte counter  */
-  u64 tx_packets;                              /**< packet counter */
-  u64 tx_bytes;                                        /**< byte counter  */
-  u64 tx_unicast_packets;                      /**< packet counter */
-  u64 tx_unicast_bytes;                                /**< byte counter  */
-  u64 tx_multicast_packets;                    /**< packet counter */
-  u64 tx_multicast_bytes;                      /**< byte counter  */
-  u64 tx_broadcast_packets;                    /**< packet counter */
-  u64 tx_broadcast_bytes;                      /**< byte counter  */
-};
-
-/** \brief Simple interface counter data type for vnet_interface_simple_counters
-    @param sw_if_index - interface indexes for counters
-    @param drop - RX or TX drops due to buffer starvation
-    @param punt - used with VNET "punt" disposition
-    @param rx_ip4 - received IP4 packets
-    @param rx_ip6 - received IP6 packets
-    @param rx_no_buffer - no RX buffers available
-    @param rx_miss - receive misses
-    @param rx_error - receive errors
-    @param tx_error - transmit errors
-    @param rx_mpls - received MPLS packet
-
-*/
-typeonly manual_print manual_endian define vnet_simple_counter
-{
-  u32 sw_if_index;
-  u64 drop;
-  u64 punt;
-  u64 rx_ip4;
-  u64 rx_ip6;
-  u64 rx_no_buffer;
-  u64 rx_miss;
-  u64 rx_error;
-  u64 tx_error;
-  u64 rx_mpls;
-};
-
 /** \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