-option version = "2.1.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.2.0";
+
+import "vnet/interface_types.api";
service {
rpc want_interface_events returns want_interface_events_reply
@param pid - 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 - 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G
+ @param link_speed - value in kbps
@param link_MTU - max. transmission unit
@param sub_if_id - A number 0-N to uniquely identify this subif on super if
@param sub_dot1ad - 0 = dot1q, 1 = dot1ad
/* 1 = half duplex, 2 = full duplex */
u8 link_duplex;
- /* 1 = 10M, 2 = 100M, 4 = 1G, 8 = 10G, 16 = 40G, 32 = 100G */
- u8 link_speed;
+ /* link speed in kbps */
+ u32 link_speed;
/* MTU */
u16 link_mtu;
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 name_filter_valid - 1 if requesting a filtered subset of records else 0
+ @param name_filter - interface name substring filter. Eg. loop1 returns [loop1, loop10]
+*/
+
define sw_interface_dump
{
u32 client_index;
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