NFVBENCH-181: Make T-Rex restart on 'cores' or 'vlan_tagging' parameter value change 63/71263/3
authorPierrick Louin <pierrick.louin@orange.com>
Tue, 13 Oct 2020 15:31:51 +0000 (17:31 +0200)
committerAlec Hothan <ahothan@cisco.com>
Sat, 17 Oct 2020 15:30:20 +0000 (15:30 +0000)
Change-Id: Ibd4e03f79699b811f7a245609c2cf45603796842
Signed-off-by: Pierrick Louin <pierrick.louin@orange.com>
nfvbench/traffic_server.py

index c87f8c3..bc79204 100644 (file)
@@ -85,6 +85,15 @@ class TRexTrafficServer(TrafficServer):
 
     def __prepare_config(self, generator_config):
         ifs = ",".join([repr(pci) for pci in generator_config.pcis])
+
+        # For consistency and stability reasons, the T-Rex server
+        # should be forciby restarted each time the value of a
+        # parameter, specified as one of the starting command line
+        # arguments, has been modified since the last launch.
+        # Hence we add some extra fields to the config file (nb_cores,
+        # use_vlan) which will serve as a memory between runs -
+        # while being actually ignored by the T-Rex server.
+
         result = """# Config generated by NFVbench
         - port_limit : 2
           version    : 2
@@ -92,11 +101,17 @@ class TRexTrafficServer(TrafficServer):
           zmq_rpc_port : {zmq_rpc_port}
           prefix       : {prefix}
           limit_memory : {limit_memory}
+          nb_cores : {nb_cores}
+          use_vlan : {use_vlan}
           interfaces : [{ifs}]""".format(zmq_pub_port=generator_config.zmq_pub_port,
                                          zmq_rpc_port=generator_config.zmq_rpc_port,
                                          prefix=generator_config.name,
                                          limit_memory=generator_config.limit_memory,
+                                         nb_cores=generator_config.cores,
+                                         use_vlan=generator_config.gen_config.get('vtep_vlan')
+                                         or generator_config.vlan_tagging,
                                          ifs=ifs)
+
         if hasattr(generator_config, 'mbuf_64') and generator_config.mbuf_64:
             result += """
           memory       :
@@ -126,7 +141,7 @@ class TRexTrafficServer(TrafficServer):
                     result += core_result
             except (KeyError, AttributeError):
                 pass
-        return result
+        return result + "\n"
 
     def __check_platform_config(self, generator_config):
         return hasattr(generator_config.gen_config, 'platform') \