From 7394b5b06b6549b5ff7fe3f1103c269ae966f584 Mon Sep 17 00:00:00 2001 From: John Lo Date: Sun, 4 Sep 2016 08:55:34 -0400 Subject: Add packet/byte count output tx stats to tunap interface Change-Id: I167c49d2a64e7a36a176d57054ecd99b398a9cca Signed-off-by: John Lo --- vnet/vnet/unix/tuntap.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/vnet/vnet/unix/tuntap.c b/vnet/vnet/unix/tuntap.c index b3fbc7f32e7..48d5dc2387d 100644 --- a/vnet/vnet/unix/tuntap.c +++ b/vnet/vnet/unix/tuntap.c @@ -141,6 +141,9 @@ tuntap_tx (vlib_main_t * vm, u32 * buffers = vlib_frame_args (frame); uword n_packets = frame->n_vectors; tuntap_main_t * tm = &tuntap_main; + vnet_main_t *vnm = vnet_get_main (); + vnet_interface_main_t *im = &vnm->interface_main; + u32 n_bytes = 0; int i; for (i = 0; i < n_packets; i++) @@ -181,8 +184,17 @@ tuntap_tx (vlib_main_t * vm, if (writev (tm->dev_net_tun_fd, tm->iovecs, vec_len (tm->iovecs)) < l) clib_unix_warning ("writev"); + + n_bytes += l; } + /* Update tuntap interface output stats. */ + vlib_increment_combined_counter (im->combined_sw_if_counters + + VNET_INTERFACE_COUNTER_TX, + vm->cpu_index, + tm->sw_if_index, n_packets, n_bytes); + + /** The normal interface path flattens the buffer chain */ if (tm->have_normal_interface) vlib_buffer_free_no_next (vm, buffers, n_packets); -- cgit 1.2.3-korg