Merge "Namespace_veth: Add funtionality for network namespace, veth ports"
[vswitchperf.git] / core / component_factory.py
index 1e5f226..a91872e 100644 (file)
@@ -16,6 +16,7 @@
 """
 
 from core.traffic_controller_rfc2544 import TrafficControllerRFC2544
+from core.vswitch_controller_clean import VswitchControllerClean
 from core.vswitch_controller_p2p import VswitchControllerP2P
 from core.vswitch_controller_pvp import VswitchControllerPVP
 from core.vswitch_controller_pvvp import VswitchControllerPVVP
@@ -49,7 +50,8 @@ def create_traffic(traffic_type, trafficgen_class):
     return TrafficControllerRFC2544(trafficgen_class)
 
 
-def create_vswitch(deployment_scenario, vswitch_class, traffic):
+def create_vswitch(deployment_scenario, vswitch_class, traffic,
+                   tunnel_operation=None):
     """Return a new IVSwitchController for the deployment_scenario.
 
     The returned controller is configured with the given vSwitch class.
@@ -59,6 +61,7 @@ def create_vswitch(deployment_scenario, vswitch_class, traffic):
     :param deployment_scenario: The deployment scenario name
     :param vswitch_class: Reference to vSwitch class to be used.
     :param traffic: Dictionary with traffic specific details
+    :param tunnel_operation encapsulation/decapsulation or None
     :return: IVSwitchController for the deployment_scenario
     """
     deployment_scenario = deployment_scenario.lower()
@@ -69,7 +72,10 @@ def create_vswitch(deployment_scenario, vswitch_class, traffic):
     elif deployment_scenario.find("pvvp") >= 0:
         return VswitchControllerPVVP(vswitch_class, traffic)
     elif deployment_scenario.find("op2p") >= 0:
-        return VswitchControllerOP2P(vswitch_class, traffic)
+        return VswitchControllerOP2P(vswitch_class, traffic, tunnel_operation)
+    elif deployment_scenario.find("clean") >= 0:
+        return VswitchControllerClean(vswitch_class, traffic)
+
 
 def create_vnf(deployment_scenario, vnf_class):
     """Return a new VnfController for the deployment_scenario.
@@ -112,13 +118,14 @@ def create_loadgen(loadgen_type, loadgen_cfg):
     elif loadgen_type.find("stress") >= 0:
         return Stress(loadgen_cfg)
 
-def create_pktfwd(pktfwd_class):
+def create_pktfwd(deployment, pktfwd_class):
     """Return a new packet forwarder controller
 
     The returned controller is configured with the given
     packet forwarder class.
 
     :param pktfwd_class: Reference to packet forwarder class to be used.
+    :param deployment: The deployment scenario name
     :return: packet forwarder controller
     """
-    return PktFwdController(pktfwd_class)
+    return PktFwdController(deployment, pktfwd_class)