From: Giuseppe Lettieri Date: Thu, 21 Jun 2012 12:17:15 +0000 (+0200) Subject: update rx/tx stats X-Git-Tag: sliver-openvswitch-0.1-1~7 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=747cc5e5ff4bc2c525753a1662a91ebefb208483;p=sliver-openvswitch.git update rx/tx stats --- diff --git a/lib/netdev-tunnel.c b/lib/netdev-tunnel.c index ab185dd04..f94474c88 100644 --- a/lib/netdev-tunnel.c +++ b/lib/netdev-tunnel.c @@ -243,11 +243,20 @@ netdev_tunnel_recv(struct netdev *netdev_, void *buffer, size_t size) VLOG_DBG("%s: recv(%x, %d, MSG_TRUNC) = %d", netdev_get_name(netdev_), buffer, size, retval); if (retval >= 0) { - return retval <= size ? retval : -EMSGSIZE; + dev->stats.rx_packets++; + dev->stats.rx_bytes += retval; + if (retval <= size) { + return retval; + } else { + dev->stats.rx_errors++; + dev->stats.rx_length_errors++; + return -EMSGSIZE; + } } else if (errno != EINTR) { if (errno != EAGAIN) { VLOG_WARN_RL(&rl, "error receiveing Ethernet packet on %s: %s", netdev_get_name(netdev_), strerror(errno)); + dev->stats.rx_errors++; } return -errno; } @@ -276,15 +285,19 @@ netdev_tunnel_send(struct netdev *netdev_, const void *buffer, size_t size) retval = send(dev->sockfd, buffer, size, 0); VLOG_DBG("%s: send(%x, %d) = %d", netdev_get_name(netdev_), buffer, size, retval); if (retval >= 0) { + dev->stats.tx_packets++; + dev->stats.tx_bytes++; if (retval != size) { VLOG_WARN_RL(&rl, "sent partial Ethernet packet (%zd bytes of " "%zu) on %s", retval, size, netdev_get_name(netdev_)); + dev->stats.tx_errors++; } return 0; } else if (errno != EINTR) { if (errno != EAGAIN) { VLOG_WARN_RL(&rl, "error sending Ethernet packet on %s: %s", netdev_get_name(netdev_), strerror(errno)); + dev->stats.tx_errors++; } return errno; }