X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fstats%2Fstats.api;h=bd1c3f634fe737574fc62dce719e4a736325fe8a;hb=048a4e5a000017d0d632ebf02dcc23d9bf9ccf72;hp=7f745859610ee88d5020c8b0eed8832c1fee9422;hpb=8a19f12a0cfe6d611f6e266931af691fb69a74ad;p=vpp.git diff --git a/src/vpp/stats/stats.api b/src/vpp/stats/stats.api index 7f745859610..bd1c3f634fe 100644 --- a/src/vpp/stats/stats.api +++ b/src/vpp/stats/stats.api @@ -18,6 +18,49 @@ This file defines the stats API */ +option version = "1.0.0"; + +import "vnet/interface.api"; + +service { + rpc want_stats + returns want_stats_reply; + rpc want_interface_simple_stats + returns want_interface_simple_stats_reply + events vnet_interface_simple_counters; + rpc want_per_interface_simple_stats + returns want_per_interface_simple_stats_reply + events vnet_per_interface_simple_counters; + rpc want_interface_combined_stats + returns want_interface_combined_stats_reply + events vnet_interface_combined_counters; + rpc want_per_interface_combined_stats + returns want_per_interface_combined_stats_reply + events vnet_per_interface_combined_counters; + rpc want_ip4_fib_stats + returns want_ip4_fib_stats_reply + events vnet_ip4_fib_counters; + rpc want_ip6_fib_stats + returns want_ip6_fib_stats_reply + events vnet_ip6_fib_counters; + rpc want_ip4_mfib_stats + returns want_ip4_mfib_stats_reply + events vnet_ip4_mfib_counters; + rpc want_ip6_mfib_stats + returns want_ip6_mfib_stats_reply + events vnet_ip6_mfib_counters; + rpc want_ip4_nbr_stats + returns want_ip4_nbr_stats_reply + events vnet_ip4_nbr_counters; + rpc want_ip6_nbr_stats + returns want_ip6_nbr_stats_reply + events vnet_ip6_nbr_counters; + rpc want_udp_encap_stats + returns want_udp_encap_stats_reply + events vnet_udp_encap_counters; + rpc map_stats_segment + returns map_stats_segment_reply; +}; /** \brief Want Stats, enable/disable ALL stats updates @param client_index - opaque cookie to identify the sender @@ -38,6 +81,8 @@ autoreply define want_stats @param context - sender context, to match reply w/ request @param enable_disable - 1 = enable stats, 0 = disable @param pid - pid of process requesting stats updates + + Please consider using want_per_interface_simple_stats with sw_if_index=~0 */ autoreply define want_interface_simple_stats { @@ -47,11 +92,33 @@ autoreply define want_interface_simple_stats u32 pid; }; +/** \brief Want Per Interface simple Stats, register for continuous stats + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 = enable stats, 0 = disable + @param pid - pid of process requesting stats updates + @param num - number of sw_if_indexes + @param sw_ifs - array of sw_if_index +*/ +autoreply define want_per_interface_simple_stats +{ + u32 client_index; + u32 context; + u32 enable_disable; + u32 pid; + u32 num; + u32 sw_ifs[num]; + +}; + /** \brief Want Interface Combined Stats, register for continuous stats @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param enable_disable - 1 = enable stats, 0 = disable @param pid - pid of process requesting stats updates + + Please consider using want_per_interface_combined_stats with sw_if_index=~0 + */ autoreply define want_interface_combined_stats { @@ -61,6 +128,25 @@ autoreply define want_interface_combined_stats u32 pid; }; +/** \brief Want Per Interface Combined Stats, register for continuous stats + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 = enable stats, 0 = disable + @param pid - pid of process requesting stats updates + @param num - number of sw_if_indexes + @param sw_ifs - array of sw_if_index +*/ +autoreply define want_per_interface_combined_stats +{ + u32 client_index; + u32 context; + u32 enable_disable; + u32 pid; + u32 num; + u32 sw_ifs[num]; + +}; + /** \brief Want IP4 FIB Stats, register for continuous stats @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -89,6 +175,34 @@ autoreply define want_ip6_fib_stats u32 pid; }; +/** \brief Want IP4 muilticast FIB Stats, register for continuous stats + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 = enable stats, 0 = disable + @param pid - pid of process requesting stats updates +*/ +autoreply define want_ip4_mfib_stats +{ + u32 client_index; + u32 context; + u32 enable_disable; + u32 pid; +}; + +/** \brief Want IP6 multicast FIB Stats, register for continuous stats + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 = enable stats, 0 = disable + @param pid - pid of process requesting stats updates +*/ +autoreply define want_ip6_mfib_stats +{ + u32 client_index; + u32 context; + u32 enable_disable; + u32 pid; +}; + /** \brief Want IP4 NBR Stats, register for continuous stats @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -132,6 +246,22 @@ manual_print manual_endian define vnet_ip4_fib_counters vl_api_ip4_fib_counter_t c[count]; }; +typeonly manual_print manual_endian define ip4_mfib_counter +{ + u8 source[4]; + u8 group[4]; + u8 group_length; + u64 packets; + u64 bytes; +}; + +manual_print manual_endian define vnet_ip4_mfib_counters +{ + u32 vrf_id; + u32 count; + vl_api_ip4_mfib_counter_t c[count]; +}; + typeonly manual_print manual_endian define ip4_nbr_counter { u32 address; @@ -172,6 +302,22 @@ manual_print manual_endian define vnet_ip6_fib_counters vl_api_ip6_fib_counter_t c[count]; }; +typeonly manual_print manual_endian define ip6_mfib_counter +{ + u8 source[16]; + u8 group[16]; + u8 group_length; + u64 packets; + u64 bytes; +}; + +manual_print manual_endian define vnet_ip6_mfib_counters +{ + u32 vrf_id; + u32 count; + vl_api_ip6_mfib_counter_t c[count]; +}; + typeonly manual_print manual_endian define ip6_nbr_counter { u64 address[2]; @@ -188,6 +334,64 @@ manual_print manual_endian define vnet_ip6_nbr_counters vl_api_ip6_nbr_counter_t c[count]; }; +/** \brief Simple stats counters structure + @param vnet_counter_type- such as ip4, ip6, punts, etc + @param first_sw_if_index - first sw index in block of index, counts + @param count - number of counters, equal to the number of interfaces in + this stats block + @param data - contiguous block of u64 counters + + vnet_counter_type defined in enums - plural - in vnet/interface.h +*/ +manual_print manual_endian define vnet_interface_simple_counters +{ + u8 vnet_counter_type; + u32 first_sw_if_index; + u32 count; + u64 data[count]; +}; + +/** \brief Combined stats counters structure + @param vnet_counter_type- such as ip4, ip6, punts, etc + @param first_sw_if_index - first sw index in block of index, counts + @param count - number of counters, equal to the number of interfaces in + this stats block + @param data - contiguous block of vlib_counter_t structures + + vnet_counter_type defined in enums - plural - in vnet/interface.h +*/ +manual_print manual_endian define vnet_interface_combined_counters +{ + u8 vnet_counter_type; + u32 first_sw_if_index; + u32 count; + vl_api_vlib_counter_t data[count]; +}; + +/** \brief Simple per interface stats counters structure + @param count - number of elements in message + @param timestamp - u32 vlib timestamp for control plane + @param data[count] - vl_api_vnet_simple_counter_t + +*/ +manual_print manual_endian define vnet_per_interface_simple_counters +{ + u32 count; + u32 timestamp; + vl_api_vnet_simple_counter_t data[count]; +}; + +/** \brief Combined stats counters structure per interface + @param count - number of elements in message + @param timestamp - u32 vlib timestamp for control plane + @param data[count] - vl_api_vnet_combined_counter_t +*/ +manual_print manual_endian define vnet_per_interface_combined_counters +{ + u32 count; + u32 timestamp; + vl_api_vnet_combined_counter_t data[count]; +}; /** \brief Request for a single block of summary stats @param client_index - opaque cookie to identify the sender @@ -215,6 +419,68 @@ define vnet_get_summary_stats_reply f64 vector_rate; }; +/** \brief Get delay between polling statistics + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request +*/ +define stats_get_poller_delay +{ + u32 client_index; + u32 context; +}; + +/** \brief Get delay between polling statistics reply + @param context - sender context, to match reply w/ request + @param retval - return code for request + @param delay - poller delay +*/ +define stats_get_poller_delay_reply +{ + u32 context; + i32 retval; + u32 delay; +}; + +/** \brief Want UDP encap Stats, register for continuous stats + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable - 1 = enable stats, 0 = disable + @param pid - pid of process requesting stats updates +*/ +autoreply define want_udp_encap_stats +{ + u32 client_index; + u32 context; + u32 enable; + u32 pid; +}; + +/** \brief Stat for one UDP encap object + @param id - The ID of the object, same as passed for the create + @param packets - number of packets sent + @param bytes - number of bytes sent +*/ +typeonly manual_print manual_endian define udp_encap_counter +{ + u32 id; + u64 packets; + u64 bytes; +}; + +manual_print manual_endian define vnet_udp_encap_counters +{ + u32 timestamp; + u32 count; + vl_api_udp_encap_counter_t c[count]; +}; + +autoreply define map_stats_segment +{ + u32 client_index; + u32 context; +}; + + /* * Local Variables: * eval: (c-set-style "gnu")