From d1145851ad5cb9b5abe963ee97491aa694d389dc Mon Sep 17 00:00:00 2001 From: Martin Klozik Date: Mon, 27 Feb 2017 09:00:50 +0000 Subject: vpp: Initial support of VPP vSwitch Support of VPP was implemented into VSPERF. Initial implementation uses step driven testcases to configure P2P, PVP and PVVP network scenarios. These testcases were prepared for three RFC2544 traffic types, i.e. throughput, continuous stream and back to back. VPP configuration is driven by new configuration option VSWITCH_VPP_ARGS. It is possible to use three types of l2 port connection supported by VPP, i.e. l2 xconnect (default), l2patch and l2 bridge features. Configuration is driven by parameter VSWITCH_VPP_L2_CONNECT_MODE. JIRA: VSPERF-495 Change-Id: Idebef9b10fb0d70796adb3405fec77302de00a7e Signed-off-by: Martin Klozik Reviewed-by: Al Morton Reviewed-by: Christian Trautman Reviewed-by: Sridhar Rao Reviewed-by: Trevor Cooper --- docs/configguide/installation.rst | 32 +++++++++++++++---------- docs/configguide/trafficgen.rst | 1 + docs/design/vswitchperf_design.rst | 2 ++ docs/userguide/teststeps.rst | 2 ++ docs/userguide/testusage.rst | 49 ++++++++++++++++++++++++++++++++++---- 5 files changed, 68 insertions(+), 18 deletions(-) (limited to 'docs') diff --git a/docs/configguide/installation.rst b/docs/configguide/installation.rst index bda5a0bc..1965a8f5 100644 --- a/docs/configguide/installation.rst +++ b/docs/configguide/installation.rst @@ -165,6 +165,22 @@ built from upstream source due to kernel incompatibilities. Please see the instructions in the vswitchperf_design document for details on configuring OVS Vanilla for binary package usage. +.. _vpp-installation: + +VPP installation +================ + +Currently vswitchperf installation scripts do not support automatic build +of VPP. In order to execute tests with VPP, it is required to install it +manually. Please refer to the official documentation of `fd.io`_ project to +install VPP from `packages`_ or from the `sources`_. + +See details about :ref:`vpp-test`. + +.. _fd.io: https://fd.io/ +.. _packages: https://wiki.fd.io/view/VPP/Installing_VPP_binaries_from_packages +.. _sources: https://wiki.fd.io/view/VPP/Build,_install,_and_test_images + Using vswitchperf ----------------- @@ -260,20 +276,10 @@ your configuration in the ``02_vswitch.conf`` file. .. code:: bash - VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,1024'] - VSWITCHD_DPDK_CONFIG = { - 'dpdk-init' : 'true', - 'dpdk-lcore-mask' : '0x4', - 'dpdk-socket-mem' : '1024,1024', - } - -**NOTE:** Option ``VSWITCHD_DPDK_ARGS`` is used for vswitchd, which supports ``--dpdk`` -parameter. In recent vswitchd versions, option ``VSWITCHD_DPDK_CONFIG`` is -used to configure vswitchd via ``ovs-vsctl`` calls. + DPDK_SOCKET_MEM = ['1024', '0'] -With the ``--socket-mem`` argument set to use 1 hugepage on the specified sockets as -seen above, the configuration will need 10 hugepages total to run all tests -within vsperf if the pagesize is set correctly to 1GB. +**NOTE:** Option ``DPDK_SOCKET_MEM`` is used by all vSwitches with DPDK support. +It means Open vSwitch, VPP and TestPMD. VSPerf will verify hugepage amounts are free before executing test environments. In case of hugepage amounts not being free, test initialization diff --git a/docs/configguide/trafficgen.rst b/docs/configguide/trafficgen.rst index 3c33d4ef..4e42b2be 100644 --- a/docs/configguide/trafficgen.rst +++ b/docs/configguide/trafficgen.rst @@ -469,6 +469,7 @@ For RFC2889 tests, specifying the locations for the monitoring ports is mandator Necessary parameters are: .. code-block:: console + TRAFFICGEN_STC_RFC2889_TEST_FILE_NAME TRAFFICGEN_STC_EAST_CHASSIS_ADDR = " " TRAFFICGEN_STC_EAST_SLOT_NUM = " " diff --git a/docs/design/vswitchperf_design.rst b/docs/design/vswitchperf_design.rst index 9e74e599..da7ec6fd 100644 --- a/docs/design/vswitchperf_design.rst +++ b/docs/design/vswitchperf_design.rst @@ -498,6 +498,8 @@ Other Configuration ``conf.settings`` also loads configuration from the command line and from the environment. +.. _pxp-deployment: + PXP Deployment ============== diff --git a/docs/userguide/teststeps.rst b/docs/userguide/teststeps.rst index 4e6c0808..870c3d80 100644 --- a/docs/userguide/teststeps.rst +++ b/docs/userguide/teststeps.rst @@ -2,6 +2,8 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. +.. _step-driven-tests: + Step driven tests ================= diff --git a/docs/userguide/testusage.rst b/docs/userguide/testusage.rst index 0055164e..c6037aaf 100644 --- a/docs/userguide/testusage.rst +++ b/docs/userguide/testusage.rst @@ -335,6 +335,43 @@ To run tests using Vanilla OVS: $ ./vsperf --conf-file/10_custom.conf +.. _vpp-test: + +Executing VPP tests +^^^^^^^^^^^^^^^^^^^ + +Currently it is not possible to use standard scenario deployments for execution of +tests with VPP. It means, that deployments ``p2p``, ``pvp``, ``pvvp`` and in general any +:ref:`pxp-deployment` won't work with VPP. However it is possible to use VPP in +:ref:`step-driven-tests`. A basic set of VPP testcases covering ``phy2phy``, ``pvp`` +and ``pvvp`` tests are already prepared. + +List of performance tests with VPP support follows: + +* phy2phy_tput_vpp: VPP: LTD.Throughput.RFC2544.PacketLossRatio +* phy2phy_cont_vpp: VPP: Phy2Phy Continuous Stream +* phy2phy_back2back_vpp: VPP: LTD.Throughput.RFC2544.BackToBackFrames +* pvp_tput_vpp: VPP: LTD.Throughput.RFC2544.PacketLossRatio +* pvp_cont_vpp: VPP: PVP Continuous Stream +* pvp_back2back_vpp: VPP: LTD.Throughput.RFC2544.BackToBackFrames +* pvvp_tput_vpp: VPP: LTD.Throughput.RFC2544.PacketLossRatio +* pvvp_cont_vpp: VPP: PVP Continuous Stream +* pvvp_back2back_vpp: VPP: LTD.Throughput.RFC2544.BackToBackFrames + +In order to execute testcases with VPP it is required to: + +* install VPP manually, see :ref:`vpp-installation` +* configure ``WHITELIST_NICS``, with two physical NICs connected to the traffic generator +* configure traffic generator, see :ref:`trafficgen-installation` + +After that it is possible to execute VPP testcases listed above. + +For example: + +.. code-block:: console + + $ ./vsperf --conf-file= phy2phy_tput_vpp + .. _vfio-pci: Using vfio_pci with DPDK @@ -689,7 +726,8 @@ application to use the correct number of nb-cores. .. code-block:: python - VSWITCHD_DPDK_ARGS = ['-l', '46,44,42,40,38', '-n', '4', '--socket-mem 1024,0'] + DPDK_SOCKET_MEM = ['1024', '0'] + VSWITCHD_DPDK_ARGS = ['-l', '46,44,42,40,38', '-n', '4'] TESTPMD_ARGS = ['--nb-cores=4', '--txq=1', '--rxq=1'] For guest TestPMD 3 VCpus should be assigned with the following TestPMD params. @@ -790,16 +828,17 @@ an appropriate amount of memory: .. code-block:: python - VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,0'] + DPDK_SOCKET_MEM = ['1024', '0'] + VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4'] VSWITCHD_DPDK_CONFIG = { 'dpdk-init' : 'true', 'dpdk-lcore-mask' : '0x4', 'dpdk-socket-mem' : '1024,0', } -Note: Option VSWITCHD_DPDK_ARGS is used for vswitchd, which supports --dpdk -parameter. In recent vswitchd versions, option VSWITCHD_DPDK_CONFIG will be -used to configure vswitchd via ovs-vsctl calls. +Note: Option ``VSWITCHD_DPDK_ARGS`` is used for vswitchd, which supports ``--dpdk`` +parameter. In recent vswitchd versions, option ``VSWITCHD_DPDK_CONFIG`` will be +used to configure vswitchd via ``ovs-vsctl`` calls. More information -- cgit 1.2.3-korg