[ovs-dev] [PATCH] netdev-dummy: Count rx packets regardless of source

Simon Horman horms at verge.net.au
Thu Oct 17 00:23:02 UTC 2013


On Wed, Oct 16, 2013 at 02:32:55PM +0300, Lori Jakab wrote:
> On 10/16/13 1:17 PM, Simon Horman wrote:
> >This alters the way rx packets are accounted for by
> >counting them when they are processed by netdev_dummy_rx_recv(),
> >which seems to be a common path used by all received packets.
> >
> >Previously accounting was done earlier, in netdev_dummy_receive(),
> >however this does not appear to count packets that are received via
> >a socket.
> >
> >This resolves packet counting errors reported by the following
> >OFtest tests:
> >
> >	port_stats.MultiFlowStats
> >	port_stats.SingleFlowStats
> 
> I confirm that the above OFtests are passed on my (similar) setup as
> well with the below patch.
> 
> >	pktact.WildcardPriorityWithDelete
> >	pktact.WildcardPriority
> 
> These tests didn't fail on my setup, but the following two which
> did, are now "ok":
>         counters.RxBytPerPort
>         counters.RxPktPerPort

Interesting. Could you let me know which versions (git checkouts?)
of OFtest and OVS you are using?

> >Signed-off-by: Simon Horman <horms at verge.net.au>
> >---
> >  lib/netdev-dummy.c | 9 +++++++--
> >  1 file changed, 7 insertions(+), 2 deletions(-)
> >
> >diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
> >index e40c099..061ad0c 100644
> >--- a/lib/netdev-dummy.c
> >+++ b/lib/netdev-dummy.c
> >@@ -468,8 +468,15 @@ netdev_dummy_rx_recv(struct netdev_rx *rx_, void *buffer, size_t size)
> >      }
> >      if (packet->size <= size) {
> >+        struct netdev_dummy *dummy_dev = netdev_dummy_cast(netdev);
> >+
> >          memcpy(buffer, packet->data, packet->size);
> >          retval = packet->size;
> >+        ovs_mutex_lock(&dummy_dev->mutex);
> >+        dummy_dev->stats.rx_packets++;
> >+        dummy_dev->stats.rx_bytes += packet->size;
> >+        ovs_mutex_unlock(&dummy_dev->mutex);
> >+
> >      } else {
> >          retval = -EMSGSIZE;
> >      }
> >@@ -870,8 +877,6 @@ netdev_dummy_receive(struct unixctl_conn *conn,
> >          }
> >          ovs_mutex_lock(&dummy_dev->mutex);
> >-        dummy_dev->stats.rx_packets++;
> >-        dummy_dev->stats.rx_bytes += packet->size;
> >          netdev_dummy_queue_packet(dummy_dev, packet);
> >          ovs_mutex_unlock(&dummy_dev->mutex);
> >      }
> 



More information about the dev mailing list