X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=core%2Fcomponent_factory.py;h=9c58fc5ce23b03339eb99104bb1a31db97c7206b;hb=b55c8beb6003f07f025fc0edbc08c3e0fcaed064;hp=21cdd61d5ea1a95528b4b488a08274b9a3f385d8;hpb=3572d56f5733592db30f0df2273fe93e731cba2d;p=vswitchperf.git diff --git a/core/component_factory.py b/core/component_factory.py index 21cdd61d..9c58fc5c 100644 --- a/core/component_factory.py +++ b/core/component_factory.py @@ -1,4 +1,4 @@ -# Copyright 2015 Intel Corporation. +# Copyright 2015-2016 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,10 +16,13 @@ """ 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 +from core.vswitch_controller_op2p import VswitchControllerOP2P from core.vnf_controller import VnfController +from core.pktfwd_controller import PktFwdController 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 +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. @@ -57,15 +61,21 @@ 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() - if deployment_scenario.find("p2p") >= 0: + if deployment_scenario.find("p2p") == 0: return VswitchControllerP2P(vswitch_class, traffic) elif deployment_scenario.find("pvp") >= 0: return VswitchControllerPVP(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, 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. @@ -108,4 +118,13 @@ def create_loadgen(loadgen_type, loadgen_cfg): elif loadgen_type.find("stress") >= 0: return Stress(loadgen_cfg) +def create_pktfwd(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. + :return: packet forwarder controller + """ + return PktFwdController(pktfwd_class)