diff options
author | Martin Klozik <martinx.klozik@intel.com> | 2015-09-25 18:00:17 +0100 |
---|---|---|
committer | Maryam Tahhan <maryam.tahhan@intel.com> | 2015-10-07 14:53:13 +0000 |
commit | 89e23da8e473387b2e6cb37a2b882d2d3c68655c (patch) | |
tree | 41bd86bc1447bf9bcbfa33cd95f175c258ede9d7 /src | |
parent | 1550b638fca662c5e68556702ff0316c3fc9562c (diff) |
Enable PVVP deployment for DPDK Vhost User and Vhost Cuse
Generic PVVP deployment support has been added. Two
new testcase scenarios for throughput and back2back
tests with PVVP deployment were added. Original
implementation of PVP has been refactored
Following files were affected:
modified: conf/01_testcases.conf
modified: conf/02_vswitch.conf
modified: conf/04_vnf.conf
modified: core/__init__.py
modified: core/component_factory.py
modified: core/loader/loader_servant.py
modified: core/vnf_controller.py
deleted: core/vnf_controller_p2p.py
deleted: core/vnf_controller_pvp.py
modified: core/vswitch_controller_p2p.py
modified: core/vswitch_controller_pvp.py
new file: core/vswitch_controller_pvvp.py
modified: docs/to-be-reorganized/NEWS.rst
modified: docs/to-be-reorganized/quickstart.rst
modified: src/dpdk/dpdk.py
modified: src/ovs/ofctl.py
modified: testcases/testcase.py
modified: tools/tasks.py
new file: vnfs/qemu/qemu.py
new file: vnfs/qemu/qemu_dpdk.py
modified: vnfs/qemu/qemu_dpdk_vhost_cuse.py
modified: vnfs/qemu/qemu_dpdk_vhost_user.py
modified: vnfs/vnf/vnf.py
modified: vswitches/ovs_dpdk_vhost.py
Change-Id: Ib6869a29337a184cb58c57fd96bba1183aba00ab
JIRA: VSPERF-68, VSPERF-69
Signed-off-by: Martin Klozik (martinx.klozik@intel.com)
Reviewed-by: Maryam Tahhan <maryam.tahhan@intel.com>
Reviewed-by: Brian Castelli <brian.castelli@spirent.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/dpdk/dpdk.py | 38 | ||||
-rw-r--r-- | src/ovs/ofctl.py | 11 |
2 files changed, 26 insertions, 23 deletions
diff --git a/src/dpdk/dpdk.py b/src/dpdk/dpdk.py index 093670c4..0633c7a1 100644 --- a/src/dpdk/dpdk.py +++ b/src/dpdk/dpdk.py @@ -302,7 +302,7 @@ def _unbind_nics_get_driver(): for line in _output.decode(_my_encoding).split('\n'): for nic in settings.getValue('WHITELIST_NICS'): if nic in line: - _driver_list.append((line.split("unused=",1)[1])) + _driver_list.append((line.split("unused=", 1)[1])) return _driver_list def _unbind_nics(): @@ -325,10 +325,10 @@ def _unbind_nics(): try: if nic_drivers[i] != '': tasks.run_task(['sudo', RTE_PCI_TOOL, '--bind', - nic_drivers[i], nic], - _LOGGER, 'Binding NIC %s...' % - nic, - True) + nic_drivers[i], nic], + _LOGGER, 'Binding NIC %s...' % + nic, + True) except subprocess.CalledProcessError: _LOGGER.error('Unable to bind NICs %s to drivers %s', str(settings.getValue('WHITELIST_NICS')), @@ -336,23 +336,23 @@ def _unbind_nics(): def _copy_dpdk_for_guest(): - """Copy dpdk code to GUEST_SHARE_DIR for use by guests. + """Copy dpdk code to GUEST_SHARE_DIR[s] for use by guests. """ - guest_share_dir = os.path.join( - settings.getValue('GUEST_SHARE_DIR'), 'DPDK') + for guest_dir in settings.getValue('GUEST_SHARE_DIR'): + guest_share_dir = os.path.join(guest_dir, 'DPDK') - if not os.path.exists(guest_share_dir): - os.makedirs(guest_share_dir) + if not os.path.exists(guest_share_dir): + os.makedirs(guest_share_dir) - try: - tasks.run_task(['rsync', '-a', '-r', '-l', r'--exclude="\.git"', - os.path.join(settings.getValue('RTE_SDK'), ''), - guest_share_dir], - _LOGGER, - 'Copying DPDK to shared directory...', - True) - except subprocess.CalledProcessError: - _LOGGER.error('Unable to copy DPDK to shared directory') + try: + tasks.run_task(['rsync', '-a', '-r', '-l', r'--exclude="\.git"', + os.path.join(settings.getValue('RTE_SDK'), ''), + guest_share_dir], + _LOGGER, + 'Copying DPDK to shared directory...', + True) + except subprocess.CalledProcessError: + _LOGGER.error('Unable to copy DPDK to shared directory') # diff --git a/src/ovs/ofctl.py b/src/ovs/ofctl.py index 1c5e6513..7cbdfe2c 100644 --- a/src/ovs/ofctl.py +++ b/src/ovs/ofctl.py @@ -34,6 +34,8 @@ _OVS_OFCTL_BIN = os.path.join(settings.getValue('OVS_DIR'), 'utilities', _OVS_VAR_DIR = '/usr/local/var/run/openvswitch/' +_OVS_BRIDGE_NAME = settings.getValue('VSWITCH_BRIDGE_NAME') + class OFBase(object): """Add/remove/show datapaths using ``ovs-ofctl``. """ @@ -63,7 +65,7 @@ class OFBase(object): # datapath management - def add_br(self, br_name='br0'): + def add_br(self, br_name=_OVS_BRIDGE_NAME): """Add datapath. :param br_name: Name of bridge @@ -75,7 +77,7 @@ class OFBase(object): return OFBridge(br_name, self.timeout) - def del_br(self, br_name='br0'): + def del_br(self, br_name=_OVS_BRIDGE_NAME): """Delete datapath. :param br_name: Name of bridge @@ -89,7 +91,7 @@ class OFBase(object): class OFBridge(OFBase): """Control a bridge instance using ``ovs-vsctl`` and ``ovs-ofctl``. """ - def __init__(self, br_name='br0', timeout=10): + def __init__(self, br_name=_OVS_BRIDGE_NAME, timeout=10): """Initialise bridge. :param br_name: Bridge name @@ -126,7 +128,8 @@ class OFBridge(OFBase): :return: None """ - cmd = ['sudo', _OVS_OFCTL_BIN, '-O', 'OpenFlow13', '--timeout', str(self.timeout)] + args + cmd = ['sudo', _OVS_OFCTL_BIN, '-O', 'OpenFlow13', '--timeout', + str(self.timeout)] + args return tasks.run_task( cmd, self.logger, 'Running ovs-ofctl...', check_error) |