From: ahothan Date: Mon, 23 Apr 2018 17:27:13 +0000 (-0700) Subject: [NFVBENCH-87] In case of asymmetric actual Tx rate, total drops is calculated incorrectly X-Git-Tag: 1.4.0~1 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F87%2F56287%2F1;p=nfvbench.git [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 --- 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']) } }