summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2015-09-25 18:00:17 +0100
committerMaryam Tahhan <maryam.tahhan@intel.com>2015-10-07 14:53:13 +0000
commit89e23da8e473387b2e6cb37a2b882d2d3c68655c (patch)
tree41bd86bc1447bf9bcbfa33cd95f175c258ede9d7 /src
parent1550b638fca662c5e68556702ff0316c3fc9562c (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.py38
-rw-r--r--src/ovs/ofctl.py11
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)