aboutsummaryrefslogtreecommitdiff
path: root/lib/netdev-dummy.c
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2012-09-18 11:06:08 -0700
committerBen Pfaff <blp@nicira.com>2013-02-11 13:26:24 -0800
commit02d5bfe3beca895d2beb5906e8bcf50cb945efce (patch)
tree7dd56879bae0a13e7eb39a570105c51d331f6eae /lib/netdev-dummy.c
parent6e1fb7e169c2363c78819b40869e1b47ebf3189d (diff)
netdev-dummy: Correctly maintain port statistics.
Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
Diffstat (limited to 'lib/netdev-dummy.c')
-rw-r--r--lib/netdev-dummy.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
index f81b68e6..234d7bc5 100644
--- a/lib/netdev-dummy.c
+++ b/lib/netdev-dummy.c
@@ -205,6 +205,19 @@ netdev_dummy_drain(struct netdev *netdev_)
}
static int
+netdev_dummy_send(struct netdev *netdev, const void *buffer OVS_UNUSED,
+ size_t size)
+{
+ struct netdev_dev_dummy *dev =
+ netdev_dev_dummy_cast(netdev_get_dev(netdev));
+
+ dev->stats.tx_packets++;
+ dev->stats.tx_bytes += size;
+
+ return 0;
+}
+
+static int
netdev_dummy_set_etheraddr(struct netdev *netdev,
const uint8_t mac[ETH_ADDR_LEN])
{
@@ -336,7 +349,7 @@ static const struct netdev_class dummy_class = {
netdev_dummy_recv_wait,
netdev_dummy_drain,
- NULL, /* send */
+ netdev_dummy_send, /* send */
NULL, /* send_wait */
netdev_dummy_set_etheraddr,
@@ -443,6 +456,9 @@ netdev_dummy_receive(struct unixctl_conn *conn,
return;
}
+ dummy_dev->stats.rx_packets++;
+ dummy_dev->stats.rx_bytes += packet->size;
+
n_listeners = 0;
LIST_FOR_EACH (dev, node, &dummy_dev->devs) {
if (dev->listening) {