1 Getting Started with 'vsperf'
2 =============================
7 VSPERF requires the following hardware to run tests: IXIA traffic
8 generator (IxNetwork), a machine that runs the IXIA client software and
9 a CentOS Linux release 7.1.1503 (Core) host.
14 The vSwitch must support Open Flow 1.3 or greater.
19 Follow the `installation instructions <installation.md>`__ to install.
24 On the CentOS 7 system
25 ~~~~~~~~~~~~~~~~~~~~~~
27 You need to install IxNetworkTclClient$(VER\_NUM)Linux.bin.tgz.
29 On the IXIA client software system
30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 Find the IxNetwork TCL server app (start -> All Programs -> IXIA ->
33 IxNetwork -> IxNetwork\_$(VER\_NUM) -> IxNetwork TCL Server)
35 Right click on IxNetwork TCL Server, select properties - Under shortcut tab in
36 the Target dialogue box make sure there is the argument "-tclport xxxx"
37 where xxxx is your port number (take note of this port number you will
38 need it for the 10\_custom.conf file).
42 Hit Ok and start the TCL server application
44 Cloning and building src dependencies
45 -------------------------------------
47 In order to run VSPERF, you will need to download DPDK and OVS. You can
48 do this manually and build them in a preferred location, or you could
49 use vswitchperf/src. The vswitchperf/src directory contains makefiles
50 that will allow you to clone and build the libraries that VSPERF depends
51 on, such as DPDK and OVS. To clone and build simply:
53 .. code-block:: console
58 VSPERF can be used with OVS without DPDK support. In this case you have
59 to specify path to the kernel sources by WITH\_LINUX parameter:
61 .. code-block:: console
64 make WITH_LINUX=/lib/modules/`uname -r`/build
66 To build DPDK and OVS for PVP testing with vhost_user as the guest access
69 .. code-block:: console
73 To delete a src subdirectory and its contents to allow you to re-clone simply
76 .. code-block:: console
80 Configure the ``./conf/10_custom.conf`` file
81 --------------------------------------------
83 The supplied ``10_custom.conf`` file must be modified, as it contains
84 configuration items for which there are no reasonable default values.
86 The configuration items that can be added is not limited to the initial
87 contents. Any configuration item mentioned in any .conf file in
88 ``./conf`` directory can be added and that item will be overridden by
89 the custom configuration value.
91 Using a custom settings file
92 ----------------------------
94 Alternatively a custom settings file can be passed to ``vsperf`` via the
95 ``--conf-file`` argument.
97 .. code-block:: console
99 ./vsperf --conf-file <path_to_settings_py> ...
101 Note that configuration passed in via the environment (``--load-env``)
102 or via another command line argument will override both the default and
103 your custom configuration files. This "priority hierarchy" can be
104 described like so (1 = max priority):
106 1. Command line arguments
107 2. Environment variables
108 3. Configuration file(s)
115 Before running any tests make sure you have root permissions by adding
116 the following line to /etc/sudoers:
118 .. code-block:: console
120 username ALL=(ALL) NOPASSWD: ALL
122 username in the example above should be replaced with a real username.
124 To list the available tests:
126 .. code-block:: console
128 ./vsperf --list-tests
130 To run a group of tests, for example all tests with a name containing
133 .. code-block:: console
135 ./vsperf --conf-file=user_settings.py --tests="RFC2544"
139 .. code-block:: console
141 ./vsperf --conf-file=user_settings.py
143 Some tests allow for configurable parameters, including test duration
144 (in seconds) as well as packet sizes (in bytes).
148 ./vsperf --conf-file user_settings.py
150 --test-param "rfc2544_duration=10;packet_sizes=128"
152 For all available options, check out the help dialog:
154 .. code-block:: console
162 OVS with DPDK and QEMU
163 ~~~~~~~~~~~~~~~~~~~~~~~
164 If you encounter the following error: "before (last 100 chars):
165 '-path=/dev/hugepages,share=on: unable to map backing store for
166 hugepages: Cannot allocate memory\r\n\r\n" with the PVP deployment
167 scenario, check the amount of hugepages on your system:
171 cat /proc/meminfo | grep HugePages
174 By default the vswitchd is launched with 1Gb of memory, to change
175 this, modify --socket-mem parameter in conf/02_vswitch.conf to allocate
176 an appropriate amount of memory:
180 VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,0']
184 .. |Alt text| image:: images/TCLServerProperties.png