diff options
-rwxr-xr-x | ci/build-vsperf.sh | 10 | ||||
-rw-r--r-- | conf/00_common.conf | 5 | ||||
-rw-r--r-- | docs/release/NEWS.rst | 6 | ||||
-rwxr-xr-x | docs/userguide/testusage.rst | 27 | ||||
-rw-r--r-- | src/Makefile | 2 | ||||
-rwxr-xr-x | src/dpdk/Makefile | 4 | ||||
-rw-r--r-- | src/ovs/Makefile | 4 | ||||
-rw-r--r-- | tools/functions.py | 9 | ||||
-rw-r--r-- | tools/opnfvdashboard/opnfvdashboard.py | 34 | ||||
-rw-r--r-- | vnfs/qemu/qemu.py | 2 | ||||
-rw-r--r-- | vnfs/qemu/qemu_dpdk_vhost_cuse.py | 58 | ||||
-rwxr-xr-x | vsperf | 5 | ||||
-rw-r--r-- | vswitches/ovs_dpdk_vhost.py | 26 |
13 files changed, 34 insertions, 158 deletions
diff --git a/ci/build-vsperf.sh b/ci/build-vsperf.sh index 8fb69072..a02de009 100755 --- a/ci/build-vsperf.sh +++ b/ci/build-vsperf.sh @@ -129,7 +129,7 @@ function print_results() { # execute tests and display results # parameters: -# $1 - vswitch and vnf combination, one of OVS_vanilla, OVS_with_DPDK_and_vHost_Cuse, OVS_with_DPDK_and_vHost_User +# $1 - vswitch and vnf combination, one of OVS_vanilla, OVS_with_DPDK_and_vHost_User # $2 - CI job type, one of verify, merge, daily function execute_vsperf() { # figure out list of TCs and execution parameters @@ -163,14 +163,6 @@ function execute_vsperf() { echo "$VSPERF_BIN --opnfvpod="$NODE_NAME" --vswitch OvsVanilla --vnf QemuVirtioNet $CONF_FILE $TESTPARAM $TESTCASES &> $LOG_FILE" $VSPERF_BIN --opnfvpod="$NODE_NAME" --vswitch OvsVanilla --vnf QemuVirtioNet $CONF_FILE $TESTPARAM $TESTCASES &> $LOG_FILE ;; - "OVS_with_DPDK_and_vHost_Cuse") - # figure out log file name - LOG_SUBDIR="OvsDpdkVhostCuse" - LOG_FILE="${LOG_FILE_PREFIX}_${LOG_SUBDIR}_${DATE_SUFFIX}.log" - - echo "$VSPERF_BIN --opnfvpod="$NODE_NAME" --vswitch OvsDpdkVhost --vnf QemuDpdkVhostCuse $CONF_FILE $TESTPARAM $TESTCASES &> $LOG_FILE" - $VSPERF_BIN --opnfvpod="$NODE_NAME" --vswitch OvsDpdkVhost --vnf QemuDpdkVhostCuse $CONF_FILE $TESTPARAM $TESTCASES &> $LOG_FILE - ;; *) # figure out log file name LOG_SUBDIR="OvsDpdkVhost" diff --git a/conf/00_common.conf b/conf/00_common.conf index 944619c5..fe4e1f5d 100644 --- a/conf/00_common.conf +++ b/conf/00_common.conf @@ -39,13 +39,10 @@ SYSMETRICS_DIR = os.path.join(ROOT_DIR, 'tools/collectors') # deployment specific paths to OVS and DPDK OVS_DIR_VANILLA = os.path.join(ROOT_DIR, 'src_vanilla/ovs/ovs/') -RTE_SDK_CUSE = os.path.join(ROOT_DIR, 'src_cuse/dpdk/dpdk/') -OVS_DIR_CUSE = os.path.join(ROOT_DIR, 'src_cuse/ovs/ovs/') - RTE_SDK_USER = os.path.join(ROOT_DIR, 'src/dpdk/dpdk/') OVS_DIR_USER = os.path.join(ROOT_DIR, 'src/ovs/ovs/') -# the same qemu version is used for vanilla, vHost User and Cuse +# the same qemu version is used for vanilla and vHost User QEMU_DIR = os.path.join(ROOT_DIR, 'src/qemu/qemu/') # ############################ diff --git a/docs/release/NEWS.rst b/docs/release/NEWS.rst index 47ede0a3..a259870b 100644 --- a/docs/release/NEWS.rst +++ b/docs/release/NEWS.rst @@ -2,6 +2,10 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. +OPNFV D Release +=============== +* Remove support for vhost cuse + OPNFV Colorado Release ====================== * Support for DPDK v16.07 @@ -99,7 +103,7 @@ September 2015 ============== - Implementation of system statistics based upon pidstat command line tool. -- Support of PVVP deployment scenario using bhost-cuse and vhost user access +- Support of PVVP deployment scenario using vhost-cuse and vhost user access methods August 2015 diff --git a/docs/userguide/testusage.rst b/docs/userguide/testusage.rst index 0c6e189d..9eeddc27 100755 --- a/docs/userguide/testusage.rst +++ b/docs/userguide/testusage.rst @@ -61,10 +61,8 @@ The 'make' builds all options in src: * Vanilla OVS * OVS with vhost_user as the guest access method (with DPDK support) -* OVS with vhost_cuse s the guest access method (with DPDK support) The vhost_user build will reside in src/ovs/ -The vhost_cuse build will reside in vswitchperf/src_cuse The Vanilla OVS build will reside in vswitchperf/src_vanilla To delete a src subdirectory and its contents to allow you to re-clone simply @@ -237,7 +235,7 @@ To run tests using vhost-user as guest access method: .. code-block:: console - VHOST_METHOD='user' + VSWITCH = 'OvsDpdkVhost' VNF = 'QemuDpdkVhost' 2. If needed, recompile src for all OVS variants @@ -254,29 +252,6 @@ To run tests using vhost-user as guest access method: $ ./vsperf --conf-file=<path_to_custom_conf>/10_custom.conf -To run tests using vhost-cuse as guest access method: - -1. Set VHOST_METHOD and VNF of your settings file to: - -.. code-block:: console - - VHOST_METHOD='cuse' - VNF = 'QemuDpdkVhostCuse' - -2. If needed, recompile src for all OVS variants - -.. code-block:: console - - $ cd src - $ make distclean - $ make - -3. Run test: - -.. code-block:: console - - $ ./vsperf --conf-file=<path_to_custom_conf>/10_custom.conf - Executing PVP tests using Vanilla OVS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/Makefile b/src/Makefile index 42970288..fbc2e711 100644 --- a/src/Makefile +++ b/src/Makefile @@ -19,7 +19,7 @@ # Contributors: # Aihua Li, Huawei Technologies. -SUBBUILDS = src_cuse src_vanilla +SUBBUILDS = src_vanilla .PHONY: vhost subbuilds $(SUBBUILDS) all clean distclean: vhost subbuilds diff --git a/src/dpdk/Makefile b/src/dpdk/Makefile index 69255f75..1cd85e3e 100755 --- a/src/dpdk/Makefile +++ b/src/dpdk/Makefile @@ -30,7 +30,6 @@ ifndef VHOST_USER endif WORK_DIR = dpdk TAG_DONE_FLAG = $(WORK_DIR)/.$(DPDK_TAG).tag.done -DPDK_CUSE = ../../src_cuse/dpdk # VHOST configuration options are stored in different files based on DPDK version # v1.2.3r0-v1.6.0r2 - configuration inside config/defconfig_x86_64-default-linuxapp-gcc @@ -99,7 +98,6 @@ clean: $(AT)cd $(WORK_DIR) && git clean -xfd *.o clobber: $(AT)rm -rf $(WORK_DIR) - $(AT)rm -rf $(DPDK_CUSE) # distclean is for developer who would like to keep the # clone git repo, saving time to fetch again from url @@ -114,8 +112,6 @@ sanity: $(WORK_DIR): $(AT)git clone $(DPDK_URL) - $(AT)mkdir -p $(DPDK_CUSE) - $(AT)cp -rf ./* $(DPDK_CUSE) $(TAG_DONE_FLAG): $(WORK_DIR) $(AT)cd $(WORK_DIR); git checkout $(DPDK_TAG) diff --git a/src/ovs/Makefile b/src/ovs/Makefile index 384d6993..ee15c521 100644 --- a/src/ovs/Makefile +++ b/src/ovs/Makefile @@ -27,7 +27,6 @@ TAG_DONE_FLAG = $(WORK_DIR)/.$(OVS_TAG).done CONFIG_CMD = CONFIG_CMD += ./configure OVS_VANILLA = ../../src_vanilla/ovs -OVS_CUSE = ../../src_cuse/ovs # If WITH_LINUX is defined, OVS is built without DPDK but with kernel # module @@ -90,7 +89,6 @@ clean: clobber: $(AT)rm -rf $(WORK_DIR) $(AT)rm -rf $(OVS_VANILLA) - $(AT)rm -rf $(OVS_CUSE) # distclean is for developer who would like to keep the # clone git repo, saving time to fetch again from url @@ -116,8 +114,6 @@ $(WORK_DIR): $(AT)git clone $(OVS_URL) $(AT)mkdir -p $(OVS_VANILLA) $(AT)cp -rf ./* $(OVS_VANILLA) - $(AT)mkdir -p $(OVS_CUSE) - $(AT)cp -rf ./* $(OVS_CUSE) $(TAG_DONE_FLAG): $(WORK_DIR) $(AT)cd ovs; git checkout $(OVS_TAG) diff --git a/tools/functions.py b/tools/functions.py index 5079a9f0..60ed0802 100644 --- a/tools/functions.py +++ b/tools/functions.py @@ -28,15 +28,6 @@ def settings_update_paths(): if settings.getValue('VSWITCH').endswith('Vanilla'): # settings paths for Vanilla settings.setValue('OVS_DIR', (settings.getValue('OVS_DIR_VANILLA'))) - elif settings.getValue('VSWITCH').endswith('Vhost'): - if settings.getValue('VNF').endswith('Cuse'): - # settings paths for Cuse - settings.setValue('RTE_SDK', (settings.getValue('RTE_SDK_CUSE'))) - settings.setValue('OVS_DIR', (settings.getValue('OVS_DIR_CUSE'))) - else: - # settings paths for VhostUser - settings.setValue('RTE_SDK', (settings.getValue('RTE_SDK_USER'))) - settings.setValue('OVS_DIR', (settings.getValue('OVS_DIR_USER'))) else: # default - set to VHOST USER but can be changed during enhancement settings.setValue('RTE_SDK', (settings.getValue('RTE_SDK_USER'))) diff --git a/tools/opnfvdashboard/opnfvdashboard.py b/tools/opnfvdashboard/opnfvdashboard.py index e7a47e50..6f53526d 100644 --- a/tools/opnfvdashboard/opnfvdashboard.py +++ b/tools/opnfvdashboard/opnfvdashboard.py @@ -91,34 +91,30 @@ def _generate_test_name(testcase, int_data): """ the method generates testcase name for releng """ - cuse = int_data['cuse'] vanilla = int_data['vanilla'] res_name = "" - names = {'phy2phy_tput': ["tput_ovsdpdk", "tput_ovsdpdk", "tput_ovs"], - 'back2back': ["b2b_ovsdpdk", "b2b_ovsdpdk", "b2b_ovs"], - 'phy2phy_tput_mod_vlan': ["tput_mod_vlan_ovsdpdk", "tput_mod_vlan_ovsdpdk", "tput_mod_vlan_ovs"], - 'phy2phy_cont': ["cont_ovsdpdk", "cont_ovsdpdk", "cont_ovs"], - 'pvp_cont': ["pvp_cont_ovsdpdkuser", "pvp_cont_ovsdpdkcuse", "pvp_cont_ovsvirtio"], - 'pvvp_cont': ["pvvp_cont_ovsdpdkuser", "pvvp_cont_ovsdpdkcuse", "pvvp_cont_ovsvirtio"], - 'phy2phy_scalability': ["scalability_ovsdpdk", "scalability_ovsdpdk", "scalability_ovs"], - 'pvp_tput': ["pvp_tput_ovsdpdkuser", "pvp_tput_ovsdpdkcuse", "pvp_tput_ovsvirtio"], - 'pvp_back2back': ["pvp_b2b_ovsdpdkuser", "pvp_b2b_ovsdpdkcuse", "pvp_b2b_ovsvirtio"], - 'pvvp_tput': ["pvvp_tput_ovsdpdkuser", "pvvp_tput_ovsdpdkcuse", "pvvp_tput_ovsvirtio"], - 'pvvp_back2back': ["pvvp_b2b_ovsdpdkuser", "pvvp_b2b_ovsdpdkcuse", "pvvp_b2b_ovsvirtio"], - 'phy2phy_cpu_load': ["cpu_load_ovsdpdk", "cpu_load_ovsdpdk", "cpu_load_ovs"], - 'phy2phy_mem_load': ["mem_load_ovsdpdk", "mem_load_ovsdpdk", "mem_load_ovs"]} + names = {'phy2phy_tput': ["tput_ovsdpdk", "tput_ovs"], + 'back2back': ["b2b_ovsdpdk", "b2b_ovs"], + 'phy2phy_tput_mod_vlan': ["tput_mod_vlan_ovsdpdk", "tput_mod_vlan_ovs"], + 'phy2phy_cont': ["cont_ovsdpdk", "cont_ovs"], + 'pvp_cont': ["pvp_cont_ovsdpdkuser", "pvp_cont_ovsvirtio"], + 'pvvp_cont': ["pvvp_cont_ovsdpdkuser", "pvvp_cont_ovsvirtio"], + 'phy2phy_scalability': ["scalability_ovsdpdk", "scalability_ovs"], + 'pvp_tput': ["pvp_tput_ovsdpdkuser", "pvp_tput_ovsvirtio"], + 'pvp_back2back': ["pvp_b2b_ovsdpdkuser", "pvp_b2b_ovsvirtio"], + 'pvvp_tput': ["pvvp_tput_ovsdpdkuser", "pvvp_tput_ovsvirtio"], + 'pvvp_back2back': ["pvvp_b2b_ovsdpdkuser", "pvvp_b2b_ovsvirtio"], + 'phy2phy_cpu_load': ["cpu_load_ovsdpdk", "cpu_load_ovs"], + 'phy2phy_mem_load': ["mem_load_ovsdpdk", "mem_load_ovs"]} for name, name_list in names.items(): if name != testcase: continue if vanilla == True: - res_name = name_list[2] + res_name = name_list[1] else: - if cuse == True: - res_name = name_list[1] - else: - res_name = name_list[0] + res_name = name_list[0] break return res_name diff --git a/vnfs/qemu/qemu.py b/vnfs/qemu/qemu.py index 02ada4b5..b5eaddc3 100644 --- a/vnfs/qemu/qemu.py +++ b/vnfs/qemu/qemu.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Automation of QEMU hypervisor for launching vhost-cuse enabled guests. +"""Automation of QEMU hypervisor for launching guests. """ import os diff --git a/vnfs/qemu/qemu_dpdk_vhost_cuse.py b/vnfs/qemu/qemu_dpdk_vhost_cuse.py deleted file mode 100644 index ab4fec84..00000000 --- a/vnfs/qemu/qemu_dpdk_vhost_cuse.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2015 Intel Corporation. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Automation of QEMU hypervisor for launching vhost-cuse enabled guests. -""" - -import logging - -from conf import settings as S -from vnfs.qemu.qemu import IVnfQemu - -class QemuDpdkVhostCuse(IVnfQemu): - """ - Control an instance of QEMU with vHost cuse guest communication. - """ - def __init__(self): - """ - Initialisation function. - """ - super(QemuDpdkVhostCuse, self).__init__() - self._logger = logging.getLogger(__name__) - - # calculate indexes of guest devices (e.g. charx, dpdkvhostuserx) - i = self._number * 2 - if1 = str(i) - if2 = str(i + 1) - net1 = 'net' + str(i + 1) - net2 = 'net' + str(i + 2) - - self._cmd += ['-netdev', - 'type=tap,id=' + net1 + ',script=no,downscript=no,' + - 'ifname=dpdkvhostcuse' + if1 + ',vhost=on', - '-device', - 'virtio-net-pci,mac=' + - S.getValue('GUEST_NET1_MAC')[self._number] + - ',netdev=' + net1 + ',csum=off,gso=off,' + - 'guest_tso4=off,guest_tso6=off,guest_ecn=off', - '-netdev', - 'type=tap,id=' + net2 + - ',script=no,downscript=no,' + - 'ifname=dpdkvhostcuse' + if2 + ',vhost=on', - '-device', - 'virtio-net-pci,mac=' + - S.getValue('GUEST_NET2_MAC')[self._number] + - ',netdev=' + net2 + ',csum=off,gso=off,' + - 'guest_tso4=off,guest_tso6=off,guest_ecn=off', - ] @@ -680,16 +680,13 @@ def main(): opnfv_url = settings.getValue('OPNFV_URL') pkg_list = settings.getValue('PACKAGE_LIST') - int_data = {'cuse': False, - 'vanilla': False, + int_data = {'vanilla': False, 'pod': pod_name, 'installer': installer_name, 'pkg_list': pkg_list, 'db_url': opnfv_url} if settings.getValue('VSWITCH').endswith('Vanilla'): int_data['vanilla'] = True - if settings.getValue('VNF').endswith('Cuse'): - int_data['cuse'] = True opnfvdashboard.results2opnfv_dashboard(results_path, int_data) # cleanup before exit diff --git a/vswitches/ovs_dpdk_vhost.py b/vswitches/ovs_dpdk_vhost.py index 39c8b633..cebc14b2 100644 --- a/vswitches/ovs_dpdk_vhost.py +++ b/vswitches/ovs_dpdk_vhost.py @@ -50,10 +50,6 @@ class OvsDpdkVhost(IVSwitchOvs): else: self._vswitchd_args = vswitchd_args - if settings.getValue('VNF').endswith('Cuse'): - self._logger.info("Inserting VHOST Cuse modules into kernel...") - dpdk.insert_vhost_modules() - def configure(self): """ Configure vswitchd DPDK options through ovsdb if needed """ @@ -131,20 +127,14 @@ class OvsDpdkVhost(IVSwitchOvs): from 0 """ bridge = self._bridges[switch_name] - # Changed dpdkvhost to dpdkvhostuser to be able to run in Qemu 2.2 - if settings.getValue('VNF').endswith('Cuse'): - vhost_count = self._get_port_count('type=dpdkvhostcuse') - port_name = 'dpdkvhostcuse' + str(vhost_count) - params = ['--', 'set', 'Interface', port_name, 'type=dpdkvhostcuse'] - else: - vhost_count = self._get_port_count('type=dpdkvhostuser') - port_name = 'dpdkvhostuser' + str(vhost_count) - params = ['--', 'set', 'Interface', port_name, 'type=dpdkvhostuser'] - # multi queue enable - if int(settings.getValue('VSWITCH_MULTI_QUEUES')) and \ - not settings.getValue('OVS_OLD_STYLE_MQ'): - params += ['options:n_rxq={}'.format( - settings.getValue('VSWITCH_MULTI_QUEUES'))] + vhost_count = self._get_port_count('type=dpdkvhostuser') + port_name = 'dpdkvhostuser' + str(vhost_count) + params = ['--', 'set', 'Interface', port_name, 'type=dpdkvhostuser'] + # multi queue enable + if int(settings.getValue('VSWITCH_MULTI_QUEUES')) and \ + not settings.getValue('OVS_OLD_STYLE_MQ'): + params += ['options:n_rxq={}'.format( + settings.getValue('VSWITCH_MULTI_QUEUES'))] of_port = bridge.add_port(port_name, params) return (port_name, of_port) |