Flow Classification extension
[vswitchperf.git] / core / component_factory.py
index e8bb4de..21cdd61 100644 (file)
@@ -18,8 +18,8 @@
 from core.traffic_controller_rfc2544 import TrafficControllerRFC2544
 from core.vswitch_controller_p2p import VswitchControllerP2P
 from core.vswitch_controller_pvp import VswitchControllerPVP
-from core.vnf_controller_p2p import VnfControllerP2P
-from core.vnf_controller_pvp import VnfControllerPVP
+from core.vswitch_controller_pvvp import VswitchControllerPVVP
+from core.vnf_controller import VnfController
 from tools.load_gen.stress.stress import Stress
 from tools.load_gen.stress_ng.stress_ng import StressNg
 from tools.load_gen.dummy.dummy import DummyLoadGen
@@ -47,7 +47,7 @@ def create_traffic(traffic_type, trafficgen_class):
     return TrafficControllerRFC2544(trafficgen_class)
 
 
-def create_vswitch(deployment_scenario, vswitch_class, bidir=True):
+def create_vswitch(deployment_scenario, vswitch_class, traffic):
     """Return a new IVSwitchController for the deployment_scenario.
 
     The returned controller is configured with the given vSwitch class.
@@ -56,18 +56,19 @@ def create_vswitch(deployment_scenario, vswitch_class, bidir=True):
 
     :param deployment_scenario: The deployment scenario name
     :param vswitch_class: Reference to vSwitch class to be used.
+    :param traffic: Dictionary with traffic specific details
     :return: IVSwitchController for the deployment_scenario
     """
-    #TODO - full mapping from all deployment_scenarios to
-    #correct controller class
     deployment_scenario = deployment_scenario.lower()
     if deployment_scenario.find("p2p") >= 0:
-        return VswitchControllerP2P(vswitch_class)
+        return VswitchControllerP2P(vswitch_class, traffic)
     elif deployment_scenario.find("pvp") >= 0:
-        return VswitchControllerPVP(vswitch_class, bidir)
+        return VswitchControllerPVP(vswitch_class, traffic)
+    elif deployment_scenario.find("pvvp") >= 0:
+        return VswitchControllerPVVP(vswitch_class, traffic)
 
 def create_vnf(deployment_scenario, vnf_class):
-    """Return a new IVnfController for the deployment_scenario.
+    """Return a new VnfController for the deployment_scenario.
 
     The returned controller is configured with the given VNF class.
 
@@ -75,15 +76,9 @@ def create_vnf(deployment_scenario, vnf_class):
 
     :param deployment_scenario: The deployment scenario name
     :param vswitch_class: Reference to vSwitch class to be used.
-    :return: IVnfController for the deployment_scenario
+    :return: VnfController for the deployment_scenario
     """
-    #TODO - full mapping from all deployment_scenarios to
-    #correct controller class
-    deployment_scenario = deployment_scenario.lower()
-    if deployment_scenario.find("p2p") >= 0:
-        return VnfControllerP2P(None)
-    elif deployment_scenario.find("pvp") >= 0:
-        return VnfControllerPVP(vnf_class)
+    return VnfController(deployment_scenario, vnf_class)
 
 def create_collector(collector_class, result_dir, test_name):
     """Return a new Collector of the given class