From 3af55a78fcd572f93b1a46178bffc4c8e90534f2 Mon Sep 17 00:00:00 2001 From: Dino Simeon Madarang Date: Wed, 15 Jul 2015 09:22:07 +0100 Subject: vnfs: Enable PVP using vhost-user Enable booting of a VM with DPDK and run testpmd for PVP testing. * Added throughput and back2back tests with pvp deployment scenario in 01_testcases.conf * PVP requires DPDK 2.0 with VHOST_USER enabled and QEMU 2.2.0 * Tested on CentOS7 and Fedora 20 * Fix conflict with change 1078 Recent Changes: * Fix merge conflict (testcase.py and testcases.conf) * Remove QEMU_DIR. User must set QEMU_BIN * Set bidir traffic to True * Add flow for bi-directional traffic * Use working OVS_TAG ad2e649834be20dd01b1632799fe778106a96a2d * Merge change 1096 (src: Add QEMU makefile) * Set virtio-net-pci csum=off and other variables to off * Move hardcoded values to conf/* JIRA: VSPERF-56 Change-Id: I4ad184531064855493483d9833a7722c9f7d3576 Signed-off-by: Madarang, Dino Simeon Signed-off-by: Meghan Halton Reviewed-by: Billy O Mahony Reviewed-by: Maryam Tahhan Reviewed-by: Martin Klozik --- core/loader/loader.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'core/loader') diff --git a/core/loader/loader.py b/core/loader/loader.py index 57787751..39b50f09 100755 --- a/core/loader/loader.py +++ b/core/loader/loader.py @@ -20,6 +20,7 @@ from core.loader.loader_servant import LoaderServant from tools.pkt_gen.trafficgen import ITrafficGenerator from tools.collectors.collector import ICollector from vswitches.vswitch import IVSwitch +from vnfs.vnf.vnf import IVnf class Loader(object): """Loader class - main object context holder. @@ -27,6 +28,7 @@ class Loader(object): _trafficgen_loader = None _metrics_loader = None _vswitch_loader = None + _vnf_loader = None def __init__(self): """Loader ctor - initialization method. @@ -50,6 +52,11 @@ class Loader(object): settings.getValue('VSWITCH'), IVSwitch) + self._vnf_loader = LoaderServant( + settings.getValue('VNF_DIR'), + settings.getValue('VNF'), + IVnf) + def get_trafficgen(self): """Returns a new instance configured traffic generator. @@ -144,10 +151,34 @@ class Loader(object): """ return self._vswitch_loader.get_classes_printable() + def get_vnf(self): + """Returns instance of currently configured vnf implementation. + + :return: IVnf implementation if available, None otherwise. + """ + return self._vnf_loader.get_class()() + def get_vnf_class(self): - """Returns a new instance of the configured VNF + """Returns type of currently configured vnf implementation. + + :return: Type of IVnf implementation if available. + None otherwise. + """ + return self._vnf_loader.get_class() + + def get_vnfs(self): + """Returns dictionary of all available vnfs. + + :return: Dictionary of vnfs. + - key: name of the class which implements IVnf, + - value: Type of vnf which implements IVnf. + """ + return self._vnf_loader.get_classes() + + def get_vnfs_printable(self): + """Returns all available vnfs in printable format. - Currently always returns None + :return: String containing printable list of vnfs. """ - #TODO: Load the VNF class - return None + return self._vnf_loader.get_classes_printable() + -- cgit 1.2.3-korg