From 3918ebaca624bf6d58559d602eed8e33881e7ce0 Mon Sep 17 00:00:00 2001 From: ahothan Date: Mon, 23 Apr 2018 10:27:13 -0700 Subject: [NFVBENCH-87] In case of asymmetric actual Tx rate, total drops is calculated incorrectly Use far end TX counter to calculate dropped packets at given RX port. Change-Id: Icfffb390e2e557f0bad2e9ddf685510decc25b27 Signed-off-by: ahothan --- nfvbench/traffic_gen/trex.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'nfvbench') diff --git a/nfvbench/traffic_gen/trex.py b/nfvbench/traffic_gen/trex.py index 1d0dab3..c468802 100644 --- a/nfvbench/traffic_gen/trex.py +++ b/nfvbench/traffic_gen/trex.py @@ -73,12 +73,19 @@ class TRex(AbstractTrafficGenerator): return self.client.get_server_version() def extract_stats(self, in_stats): + """Extract stats from dict returned by Trex API. + + :param in_stats: dict as returned by TRex api + """ utils.nan_replace(in_stats) LOG.debug(in_stats) result = {} + # port_handles should have only 2 elements: [0, 1] + # so (1 - ph) will be the index for the far end port for ph in self.port_handle: stats = in_stats[ph] + far_end_stats = in_stats[1 - ph] result[ph] = { 'tx': { 'total_pkts': cast_integer(stats['opackets']), @@ -91,8 +98,10 @@ class TRex(AbstractTrafficGenerator): 'total_pkt_bytes': cast_integer(stats['ibytes']), 'pkt_rate': cast_integer(stats['rx_pps']), 'pkt_bit_rate': cast_integer(stats['rx_bps']), + # how many pkts were dropped in RX direction + # need to take the tx counter on the far end port 'dropped_pkts': cast_integer( - stats['opackets'] - stats['ipackets']) + far_end_stats['opackets'] - stats['ipackets']) } } -- cgit 1.2.3-korg