From 90e69f01d75a76dbac971174db0e701ebd40f543 Mon Sep 17 00:00:00 2001 From: ahothan Date: Wed, 4 Apr 2018 00:56:04 -0700 Subject: [NFVBENCH-81]With some Intel X710 NIC cards, NFVbench reports erroneous RX counters Work around this NIC FW issue by using port level stats for packets/bytes ALso fix mutliple calls to get_stats() Change-Id: Id19086d0db6bcc4417adff4ed4ce9606ffb30fe2 Signed-off-by: ahothan --- nfvbench/chain_managers.py | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'nfvbench/chain_managers.py') diff --git a/nfvbench/chain_managers.py b/nfvbench/chain_managers.py index 087c751..de6afca 100644 --- a/nfvbench/chain_managers.py +++ b/nfvbench/chain_managers.py @@ -98,8 +98,8 @@ class StatsManager(object): def _get_data(self): return self.worker.get_data() if self.worker else {} - def _get_network(self, traffic_port, index=None, reverse=False): - interfaces = [self.clients['traffic'].get_interface(traffic_port)] + def _get_network(self, traffic_port, index, stats, reverse=False): + interfaces = [self.clients['traffic'].get_interface(traffic_port, stats)] if self.worker: interfaces.extend(self.worker.get_network_interfaces(index)) return Network(interfaces, reverse) @@ -144,16 +144,21 @@ class StatsManager(object): 'stats': stats } + # fetch latest stats from traffic gen + if self.config.no_traffic: + stats = None + else: + stats = self.clients['traffic'].get_stats() LOG.info('Requesting packet analysis on the forward direction...') result['packet_analysis']['direction-forward'] = \ - self.get_analysis([self._get_network(0, 0), - self._get_network(0, 1, reverse=True)]) + self.get_analysis([self._get_network(0, 0, stats), + self._get_network(0, 1, stats, reverse=True)]) LOG.info('Packet analysis on the forward direction completed') LOG.info('Requesting packet analysis on the reverse direction...') result['packet_analysis']['direction-reverse'] = \ - self.get_analysis([self._get_network(1, 1), - self._get_network(1, 0, reverse=True)]) + self.get_analysis([self._get_network(1, 1, stats), + self._get_network(1, 0, stats, reverse=True)]) LOG.info('Packet analysis on the reverse direction completed') return result @@ -205,16 +210,20 @@ class PVVPStatsManager(StatsManager): 'packet_analysis': {}, 'stats': stats } - - fwd_nets = [self._get_network(0, 0)] + # fetch latest stats from traffic gen + if self.config.no_traffic: + stats = None + else: + stats = self.clients['traffic'].get_stats() + fwd_nets = [self._get_network(0, 0, stats)] if fwd_v2v_net: fwd_nets.append(fwd_v2v_net) - fwd_nets.append(self._get_network(0, 1, reverse=True)) + fwd_nets.append(self._get_network(0, 1, stats, reverse=True)) - rev_nets = [self._get_network(1, 1)] + rev_nets = [self._get_network(1, 1, stats)] if rev_v2v_net: rev_nets.append(rev_v2v_net) - rev_nets.append(self._get_network(1, 0, reverse=True)) + rev_nets.append(self._get_network(1, 0, stats, reverse=True)) LOG.info('Requesting packet analysis on the forward direction...') result['packet_analysis']['direction-forward'] = self.get_analysis(fwd_nets) -- cgit 1.2.3-korg