NFVBENCH-215 Fix wrong throughput ratio in latency tests
[nfvbench.git] / nfvbench / nfvbench.py
index bd86810..740dca2 100644 (file)
@@ -60,8 +60,8 @@ class NFVBench(object):
         self.config_plugin = config_plugin
         self.factory = factory
         self.notifier = notifier
-        self.cred = credentials.Credentials(config.openrc_file, None, False) \
-            if config.openrc_file else None
+        self.cred = credentials.Credentials(config.openrc_file, config.clouds_detail, None, False) \
+            if config.openrc_file or config.clouds_detail else None
         self.chain_runner = None
         self.specs = Specs()
         self.specs.set_openstack_spec(openstack_spec)
@@ -96,8 +96,10 @@ class NFVBench(object):
 
             # check that an empty openrc file (no OpenStack) is only allowed
             # with EXT chain
-            if not self.config.openrc_file and self.config.service_chain != ChainType.EXT:
-                raise Exception("openrc_file in the configuration is required for PVP/PVVP chains")
+            if (not self.config.openrc_file and not self.config.clouds_detail) and \
+                    self.config.service_chain != ChainType.EXT:
+                raise Exception("openrc_file or clouds_detail in the configuration is required"
+                                " for PVP/PVVP chains")
 
             self.specs.set_run_spec(self.config_plugin.get_run_spec(self.config,
                                                                     self.specs.openstack))
@@ -530,6 +532,13 @@ def _parse_opts_from_cli():
                              'tagged with given VLAN id(s) or not (given \'no-tag\') '
                              '\'true\': use current vlans; \'false\': disable this mode.')
 
+    parser.add_argument('--i40e-mixed', dest='i40e_mixed',
+                        action='store',
+                        default=None,
+                        metavar='<ignore,check,unbind>',
+                        help='TRex behavior when dealing with a i40e network card driver'
+                             ' [ https://trex-tgn.cisco.com/youtrack/issue/trex-528 ]')
+
     parser.add_argument('--user-info', dest='user_info',
                         action='append',
                         metavar='<data>',
@@ -727,7 +736,8 @@ def main():
         # dump the contents of the trex log file
         if opts.show_trex_log:
             try:
-                print(open('/tmp/trex.log').read(), end="")
+                with open('/tmp/trex.log') as trex_log_file:
+                    print(trex_log_file.read(), end="")
             except FileNotFoundError:
                 print("No TRex log file found!")
             sys.exit(0)
@@ -875,6 +885,8 @@ def main():
                                 config.service_chain_count = len(vlans[0])
             opts.l2_loopback = None
 
+        if config.i40e_mixed is None:
+            config.i40e_mixed = 'ignore'
         if config.use_sriov_middle_net is None:
             config.use_sriov_middle_net = False
         if opts.use_sriov_middle_net is not None: