1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. (c) OPNFV, Intel Corporation, AT&T and others.
5 .. _trafficgen-installation:
7 ===========================
8 'vsperf' Traffic Gen Guide
9 ===========================
14 VSPERF supports the following traffic generators:
18 * `Spirent TestCenter`_
23 To see the list of traffic gens from the cli:
25 .. code-block:: console
27 $ ./vsperf --list-trafficgens
29 This guide provides the details of how to install
30 and configure the various traffic generators.
32 Background Information
33 ----------------------
34 The traffic default configuration can be found in **conf/03_traffic.conf**,
35 and is configured as follows:
37 .. code-block:: console
40 'traffic_type' : 'rfc2544_throughput',
42 'bidir' : 'True', # will be passed as string in title format to tgen
45 'pre_installed_flows' : 'No', # used by vswitch implementation
46 'flow_type' : 'port', # used by vswitch implementation
50 'srcmac': '00:00:00:00:00:00',
51 'dstmac': '00:00:00:00:00:00',
57 'dstip': '90.90.90.90',
72 The framesize parameter can be overridden from the configuration
73 files by adding the following to your custom configuration file
76 .. code-block:: console
78 TRAFFICGEN_PKT_SIZES = (64, 128,)
80 OR from the commandline:
82 .. code-block:: console
84 $ ./vsperf --test-params "TRAFFICGEN_PKT_SIZES=(x,y)" $TESTNAME
86 You can also modify the traffic transmission duration and the number
87 of tests run by the traffic generator by extending the example
90 .. code-block:: console
92 $ ./vsperf --test-params "TRAFFICGEN_PKT_SIZES=(x,y);TRAFFICGEN_DURATION=10;" \
93 "TRAFFICGEN_RFC2544_TESTS=1" $TESTNAME
100 The Dummy traffic generator can be used to test VSPERF installation or
101 to demonstrate VSPERF functionality at DUT without connection
102 to a real traffic generator.
104 You could also use the Dummy generator in case, that your external
105 traffic generator is not supported by VSPERF. In such case you could
106 use VSPERF to setup your test scenario and then transmit the traffic.
107 After the transmission is completed you could specify values for all
108 collected metrics and VSPERF will use them to generate final reports.
113 To select the Dummy generator please add the following to your
114 custom configuration file ``10_custom.conf``.
116 .. code-block:: console
120 OR run ``vsperf`` with the ``--trafficgen`` argument
122 .. code-block:: console
124 $ ./vsperf --trafficgen Dummy $TESTNAME
126 Where $TESTNAME is the name of the vsperf test you would like to run.
127 This will setup the vSwitch and the VNF (if one is part of your test)
128 print the traffic configuration and prompt you to transmit traffic
129 when the setup is complete.
131 .. code-block:: console
133 Please send 'continuous' traffic with the following stream config:
134 30mS, 90mpps, multistream False
135 and the following flow config:
142 "dstip": "90.90.90.90"
144 "traffic_type": "rfc2544_continuous",
160 "dstmac": "00:00:00:00:00:00",
161 "srcmac": "00:00:00:00:00:00",
165 What was the result for 'frames tx'?
167 When your traffic generator has completed traffic transmission and provided
168 the results please input these at the VSPERF prompt. VSPERF will try
171 .. code-block:: console
173 Is '$input_value' correct?
175 Please answer with y OR n.
177 VSPERF will ask you to provide a value for every of collected metrics. The list
178 of metrics can be found at traffic-type-metrics_.
179 Finally vsperf will print out the results for your test and generate the
180 appropriate logs and report files.
182 .. _traffic-type-metrics:
184 Metrics collected for supported traffic types
185 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
187 Below you could find a list of metrics collected by VSPERF for each of supported
190 RFC2544 Throughput and Continuous:
204 Dummy result pre-configuration
205 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 In case of a Dummy traffic generator it is possible to pre-configure the test
208 results. This is useful for creation of demo testcases, which do not require
209 a real traffic generator. Such testcase can be run by any user and it will still
210 generate all reports and result files.
212 Result values can be specified within ``TRAFFICGEN_DUMMY_RESULTS`` dictionary,
213 where every of collected metrics must be properly defined. Please check the list
214 of traffic-type-metrics_.
216 Dictionary with dummy results can be passed by CLI argument ``--test-params``
217 or specified in ``Parameters`` section of testcase definition.
219 Example of testcase execution with dummy results defined by CLI argument:
221 .. code-block:: console
223 $ ./vsperf back2back --trafficgen Dummy --test-params \
224 "TRAFFICGEN_DUMMY_RESULTS={'b2b frames':'3000','b2b frame loss %':'0.0'}"
226 Example of testcase definition with pre-configured dummy results:
228 .. code-block:: python
232 "Traffic Type": "rfc2544_back2back",
234 "biDirectional": "True",
235 "Description": "LTD.Throughput.RFC2544.BackToBackFrames",
237 'TRAFFICGEN_DUMMY_RESULTS' : {'b2b frames':'3000','b2b frame loss %':'0.0'}
241 **NOTE:** Pre-configured results for the Dummy traffic generator will be used only
242 in case, that the Dummy traffic generator is used. Otherwise the option
243 ``TRAFFICGEN_DUMMY_RESULTS`` will be ignored.
250 VSPERF can use both IxNetwork and IxExplorer TCL servers to control Ixia chassis.
251 However usage of IxNetwork TCL server is a preferred option. Following sections
252 will describe installation and configuration of IxNetwork components used by VSPERF.
257 On the system under the test you need to install IxNetworkTclClient$(VER\_NUM)Linux.bin.tgz.
259 On the IXIA client software system you need to install IxNetwork TCL server. After its
260 installation you should configure it as follows:
262 1. Find the IxNetwork TCL server app (start -> All Programs -> IXIA ->
263 IxNetwork -> IxNetwork\_$(VER\_NUM) -> IxNetwork TCL Server)
264 2. Right click on IxNetwork TCL Server, select properties - Under shortcut tab in
265 the Target dialogue box make sure there is the argument "-tclport xxxx"
266 where xxxx is your port number (take note of this port number as you will
267 need it for the 10\_custom.conf file).
269 .. image:: TCLServerProperties.png
271 3. Hit Ok and start the TCL server application
276 There are several configuration options specific to the IxNetwork traffic generator
277 from IXIA. It is essential to set them correctly, before the VSPERF is executed
280 Detailed description of options follows:
282 * ``TRAFFICGEN_IXNET_MACHINE`` - IP address of server, where IxNetwork TCL Server is running
283 * ``TRAFFICGEN_IXNET_PORT`` - PORT, where IxNetwork TCL Server is accepting connections from
285 * ``TRAFFICGEN_IXNET_USER`` - username, which will be used during communication with IxNetwork
286 TCL Server and IXIA chassis
287 * ``TRAFFICGEN_IXIA_HOST`` - IP address of IXIA traffic generator chassis
288 * ``TRAFFICGEN_IXIA_CARD`` - identification of card with dedicated ports at IXIA chassis
289 * ``TRAFFICGEN_IXIA_PORT1`` - identification of the first dedicated port at ``TRAFFICGEN_IXIA_CARD``
290 at IXIA chassis; VSPERF uses two separated ports for traffic generation. In case of
291 unidirectional traffic, it is essential to correctly connect 1st IXIA port to the 1st NIC
292 at DUT, i.e. to the first PCI handle from ``WHITELIST_NICS`` list. Otherwise traffic may not
293 be able to pass through the vSwitch.
294 **NOTE**: In case that ``TRAFFICGEN_IXIA_PORT1`` and ``TRAFFICGEN_IXIA_PORT2`` are set to the
295 same value, then VSPERF will assume, that there is only one port connection between IXIA
296 and DUT. In this case it must be ensured, that chosen IXIA port is physically connected to the
297 first NIC from ``WHITELIST_NICS`` list.
298 * ``TRAFFICGEN_IXIA_PORT2`` - identification of the second dedicated port at ``TRAFFICGEN_IXIA_CARD``
299 at IXIA chassis; VSPERF uses two separated ports for traffic generation. In case of
300 unidirectional traffic, it is essential to correctly connect 2nd IXIA port to the 2nd NIC
301 at DUT, i.e. to the second PCI handle from ``WHITELIST_NICS`` list. Otherwise traffic may not
302 be able to pass through the vSwitch.
303 **NOTE**: In case that ``TRAFFICGEN_IXIA_PORT1`` and ``TRAFFICGEN_IXIA_PORT2`` are set to the
304 same value, then VSPERF will assume, that there is only one port connection between IXIA
305 and DUT. In this case it must be ensured, that chosen IXIA port is physically connected to the
306 first NIC from ``WHITELIST_NICS`` list.
307 * ``TRAFFICGEN_IXNET_LIB_PATH`` - path to the DUT specific installation of IxNetwork TCL API
308 * ``TRAFFICGEN_IXNET_TCL_SCRIPT`` - name of the TCL script, which VSPERF will use for
309 communication with IXIA TCL server
310 * ``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` - folder accessible from IxNetwork TCL server,
311 where test results are stored, e.g. ``c:/ixia_results``; see test-results-share_
312 * ``TRAFFICGEN_IXNET_DUT_RESULT_DIR`` - directory accessible from the DUT, where test
313 results from IxNetwork TCL server are stored, e.g. ``/mnt/ixia_results``; see
316 .. _test-results-share:
321 VSPERF is not able to retrieve test results via TCL API directly. Instead, all test
322 results are stored at IxNetwork TCL server. Results are stored at folder defined by
323 ``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` configuration parameter. Content of this
324 folder must be shared (e.g. via samba protocol) between TCL Server and DUT, where
325 VSPERF is executed. VSPERF expects, that test results will be available at directory
326 configured by ``TRAFFICGEN_IXNET_DUT_RESULT_DIR`` configuration parameter.
328 Example of sharing configuration:
330 * Create a new folder at IxNetwork TCL server machine, e.g. ``c:\ixia_results``
331 * Modify sharing options of ``ixia_results`` folder to share it with everybody
332 * Create a new directory at DUT, where shared directory with results
333 will be mounted, e.g. ``/mnt/ixia_results``
334 * Update your custom VSPERF configuration file as follows:
336 .. code-block:: python
338 TRAFFICGEN_IXNET_TESTER_RESULT_DIR = 'c:/ixia_results'
339 TRAFFICGEN_IXNET_DUT_RESULT_DIR = '/mnt/ixia_results'
341 **NOTE:** It is essential to use slashes '/' also in path
342 configured by ``TRAFFICGEN_IXNET_TESTER_RESULT_DIR`` parameter.
343 * Install cifs-utils package.
345 e.g. at rpm based Linux distribution:
347 .. code-block:: console
349 yum install cifs-utils
351 * Mount shared directory, so VSPERF can access test results.
353 e.g. by adding new record into ``/etc/fstab``
355 .. code-block:: console
357 mount -t cifs //_TCL_SERVER_IP_OR_FQDN_/ixia_results /mnt/ixia_results
358 -o file_mode=0777,dir_mode=0777,nounix
360 It is recommended to verify, that any new file inserted into ``c:/ixia_results`` folder
361 is visible at DUT inside ``/mnt/ixia_results`` directory.
363 .. _`Spirent TestCenter`:
368 Spirent installation files and instructions are available on the
369 Spirent support website at:
371 http://support.spirent.com
373 Select a version of Spirent TestCenter software to utilize. This example
374 will use Spirent TestCenter v4.57 as an example. Substitute the appropriate
375 version in place of 'v4.57' in the examples, below.
377 On the CentOS 7 System
378 ~~~~~~~~~~~~~~~~~~~~~~
380 Download and install the following:
382 Spirent TestCenter Application, v4.57 for 64-bit Linux Client
384 Spirent Virtual Deployment Service (VDS)
385 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
387 Spirent VDS is required for both TestCenter hardware and virtual
388 chassis in the vsperf environment. For installation, select the version
389 that matches the Spirent TestCenter Application version. For v4.57,
390 the matching VDS version is 1.0.55. Download either the ova (VMware)
391 or qcow2 (QEMU) image and create a VM with it. Initialize the VM
392 according to Spirent installation instructions.
394 Using Spirent TestCenter Virtual (STCv)
395 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
397 STCv is available in both ova (VMware) and qcow2 (QEMU) formats. For
400 Spirent TestCenter Virtual Machine for VMware, v4.57 for Hypervisor - VMware ESX.ESXi
402 Virtual test port performance is affected by the hypervisor configuration. For
403 best practice results in deploying STCv, the following is suggested:
405 - Create a single VM with two test ports rather than two VMs with one port each
406 - Set STCv in DPDK mode
407 - Give STCv 2*n + 1 cores, where n = the number of ports. For vsperf, cores = 5.
408 - Turning off hyperthreading and pinning these cores will improve performance
409 - Give STCv 2 GB of RAM
411 To get the highest performance and accuracy, Spirent TestCenter hardware is
412 recommended. vsperf can run with either stype test ports.
414 Using STC REST Client
415 ~~~~~~~~~~~~~~~~~~~~~
416 The stcrestclient package provides the stchttp.py ReST API wrapper module.
417 This allows simple function calls, nearly identical to those provided by
418 StcPython.py, to be used to access TestCenter server sessions via the
419 STC ReST API. Basic ReST functionality is provided by the resthttp module,
420 and may be used for writing ReST clients independent of STC.
422 - Project page: <https://github.com/Spirent/py-stcrestclient>
423 - Package download: <http://pypi.python.org/pypi/stcrestclient>
425 To use REST interface, follow the instructions in the Project page to
426 install the package. Once installed, the scripts named with 'rest' keyword
427 can be used. For example: testcenter-rfc2544-rest.py can be used to run
428 RFC 2544 tests using the REST interface.
433 1. The Labserver and license server addresses. These parameters applies to
434 all the tests, and are mandatory for all tests.
436 .. code-block:: console
438 TRAFFICGEN_STC_LAB_SERVER_ADDR = " "
439 TRAFFICGEN_STC_LICENSE_SERVER_ADDR = " "
440 TRAFFICGEN_STC_PYTHON2_PATH = " "
441 TRAFFICGEN_STC_TESTCENTER_PATH = " "
442 TRAFFICGEN_STC_TEST_SESSION_NAME = " "
443 TRAFFICGEN_STC_CSV_RESULTS_FILE_PREFIX = " "
445 2. For RFC2544 tests, the following parameters are mandatory
447 .. code-block:: console
449 TRAFFICGEN_STC_EAST_CHASSIS_ADDR = " "
450 TRAFFICGEN_STC_EAST_SLOT_NUM = " "
451 TRAFFICGEN_STC_EAST_PORT_NUM = " "
452 TRAFFICGEN_STC_EAST_INTF_ADDR = " "
453 TRAFFICGEN_STC_EAST_INTF_GATEWAY_ADDR = " "
454 TRAFFICGEN_STC_WEST_CHASSIS_ADDR = ""
455 TRAFFICGEN_STC_WEST_SLOT_NUM = " "
456 TRAFFICGEN_STC_WEST_PORT_NUM = " "
457 TRAFFICGEN_STC_WEST_INTF_ADDR = " "
458 TRAFFICGEN_STC_WEST_INTF_GATEWAY_ADDR = " "
459 TRAFFICGEN_STC_RFC2544_TPUT_TEST_FILE_NAME
461 3. RFC2889 tests: Currently, the forwarding, address-caching, and
462 address-learning-rate tests of RFC2889 are supported.
463 The testcenter-rfc2889-rest.py script implements the rfc2889 tests.
464 The configuration for RFC2889 involves test-case definition, and parameter
465 definition, as described below. New results-constants, as shown below, are
466 added to support these tests.
468 Example of testcase definition for RFC2889 tests:
470 .. code-block:: python
473 "Name": "phy2phy_forwarding",
475 "Description": "LTD.Forwarding.RFC2889.MaxForwardingRate",
478 "traffic_type" : "rfc2889_forwarding",
483 For RFC2889 tests, specifying the locations for the monitoring ports is mandatory.
484 Necessary parameters are:
486 .. code-block:: console
488 TRAFFICGEN_STC_RFC2889_TEST_FILE_NAME
489 TRAFFICGEN_STC_EAST_CHASSIS_ADDR = " "
490 TRAFFICGEN_STC_EAST_SLOT_NUM = " "
491 TRAFFICGEN_STC_EAST_PORT_NUM = " "
492 TRAFFICGEN_STC_EAST_INTF_ADDR = " "
493 TRAFFICGEN_STC_EAST_INTF_GATEWAY_ADDR = " "
494 TRAFFICGEN_STC_WEST_CHASSIS_ADDR = ""
495 TRAFFICGEN_STC_WEST_SLOT_NUM = " "
496 TRAFFICGEN_STC_WEST_PORT_NUM = " "
497 TRAFFICGEN_STC_WEST_INTF_ADDR = " "
498 TRAFFICGEN_STC_WEST_INTF_GATEWAY_ADDR = " "
499 TRAFFICGEN_STC_VERBOSE = "True"
500 TRAFFICGEN_STC_RFC2889_LOCATIONS="//10.1.1.1/1/1,//10.1.1.1/2/2"
502 Other Configurations are :
504 .. code-block:: console
506 TRAFFICGEN_STC_RFC2889_MIN_LR = 1488
507 TRAFFICGEN_STC_RFC2889_MAX_LR = 14880
508 TRAFFICGEN_STC_RFC2889_MIN_ADDRS = 1000
509 TRAFFICGEN_STC_RFC2889_MAX_ADDRS = 65536
510 TRAFFICGEN_STC_RFC2889_AC_LR = 1000
512 The first 2 values are for address-learning test where as other 3 values are
513 for the Address caching capacity test. LR: Learning Rate. AC: Address Caching.
514 Maximum value for address is 16777216. Whereas, maximum for LR is 4294967295.
516 Results for RFC2889 Tests: Forwarding tests outputs following values:
518 .. code-block:: console
520 TX_RATE_FPS : "Transmission Rate in Frames/sec"
521 THROUGHPUT_RX_FPS: "Received Throughput Frames/sec"
522 TX_RATE_MBPS : " Transmission rate in MBPS"
523 THROUGHPUT_RX_MBPS: "Received Throughput in MBPS"
524 TX_RATE_PERCENT: "Transmission Rate in Percentage"
525 FRAME_LOSS_PERCENT: "Frame loss in Percentage"
526 FORWARDING_RATE_FPS: " Maximum Forwarding Rate in FPS"
529 Whereas, the address caching test outputs following values,
531 .. code-block:: console
533 CACHING_CAPACITY_ADDRS = 'Number of address it can cache'
534 ADDR_LEARNED_PERCENT = 'Percentage of address successfully learned'
536 and address learning test outputs just a single value:
538 .. code-block:: console
540 OPTIMAL_LEARNING_RATE_FPS = 'Optimal learning rate in fps'
542 Note that 'FORWARDING_RATE_FPS', 'CACHING_CAPACITY_ADDRS',
543 'ADDR_LEARNED_PERCENT' and 'OPTIMAL_LEARNING_RATE_FPS' are the new
544 result-constants added to support RFC2889 tests.
554 Xena Networks traffic generator requires specific files and packages to be
555 installed. It is assumed the user has access to the Xena2544.exe file which
556 must be placed in VSPerf installation location under the tools/pkt_gen/xena
557 folder. Contact Xena Networks for the latest version of this file. The user
558 can also visit www.xenanetworks/downloads to obtain the file with a valid
561 **Note** VSPerf has been fully tested with version v2.43 of Xena2544.exe
563 To execute the Xena2544.exe file under Linux distributions the mono-complete
564 package must be installed. To install this package follow the instructions
565 below. Further information can be obtained from
566 http://www.mono-project.com/docs/getting-started/install/linux/
568 .. code-block:: console
570 rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
571 yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
572 yum -y install mono-complete
574 To prevent gpg errors on future yum installation of packages the mono-project
575 repo should be disabled once installed.
577 .. code-block:: console
579 yum-config-manager --disable download.mono-project.com_repo_centos_
584 Connection information for your Xena Chassis must be supplied inside the
585 ``10_custom.conf`` or ``03_custom.conf`` file. The following parameters must be
586 set to allow for proper connections to the chassis.
588 .. code-block:: console
590 TRAFFICGEN_XENA_IP = ''
591 TRAFFICGEN_XENA_PORT1 = ''
592 TRAFFICGEN_XENA_PORT2 = ''
593 TRAFFICGEN_XENA_USER = ''
594 TRAFFICGEN_XENA_PASSWORD = ''
595 TRAFFICGEN_XENA_MODULE1 = ''
596 TRAFFICGEN_XENA_MODULE2 = ''
598 RFC2544 Throughput Testing
599 ~~~~~~~~~~~~~~~~~~~~~~~~~~
601 Xena traffic generator testing for rfc2544 throughput can be modified for
602 different behaviors if needed. The default options for the following are
603 optimized for best results.
605 .. code-block:: console
607 TRAFFICGEN_XENA_2544_TPUT_INIT_VALUE = '10.0'
608 TRAFFICGEN_XENA_2544_TPUT_MIN_VALUE = '0.1'
609 TRAFFICGEN_XENA_2544_TPUT_MAX_VALUE = '100.0'
610 TRAFFICGEN_XENA_2544_TPUT_VALUE_RESOLUTION = '0.5'
611 TRAFFICGEN_XENA_2544_TPUT_USEPASS_THRESHHOLD = 'false'
612 TRAFFICGEN_XENA_2544_TPUT_PASS_THRESHHOLD = '0.0'
614 Each value modifies the behavior of rfc 2544 throughput testing. Refer to your
615 Xena documentation to understand the behavior changes in modifying these
618 Xena RFC2544 testing inside VSPerf also includes a final verification option.
619 This option allows for a faster binary search with a longer final verification
620 of the binary search result. This feature can be enabled in the configuration
621 files as well as the length of the final verification in seconds.
623 ..code-block:: python
625 TRAFFICGEN_XENA_RFC2544_VERIFY = False
626 TRAFFICGEN_XENA_RFC2544_VERIFY_DURATION = 120
628 If the final verification does not pass the test with the lossrate specified
629 it will continue the binary search from its previous point. If the smart search
630 option is enabled the search will continue by taking the current pass rate minus
631 the minimum and divided by 2. The maximum is set to the last pass rate minus the
634 For example if the settings are as follows
636 ..code-block:: python
638 TRAFFICGEN_XENA_RFC2544_BINARY_RESTART_SMART_SEARCH = True
639 TRAFFICGEN_XENA_2544_TPUT_MIN_VALUE = '0.5'
640 TRAFFICGEN_XENA_2544_TPUT_VALUE_RESOLUTION = '0.5'
642 and the verification attempt was 64.5, smart search would take 64.5 - 0.5 / 2.
643 This would continue the search at 32 but still have a maximum possible value of
646 If smart is not enabled it will just resume at the last pass rate minus the
649 Continuous Traffic Testing
650 ~~~~~~~~~~~~~~~~~~~~~~~~~~
652 Xena continuous traffic by default does a 3 second learning preemption to allow
653 the DUT to receive learning packets before a continuous test is performed. If
654 a custom test case requires this learning be disabled, you can disable the option
655 or modify the length of the learning by modifying the following settings.
657 .. code-block:: console
659 TRAFFICGEN_XENA_CONT_PORT_LEARNING_ENABLED = False
660 TRAFFICGEN_XENA_CONT_PORT_LEARNING_DURATION = 3
668 MoonGen architecture overview and general installation instructions
671 https://github.com/emmericp/MoonGen
673 * Note: Today, MoonGen with VSPERF only supports 10Gbps line speeds.
675 For VSPERF use, MoonGen should be cloned from here (as opposed to the
676 previously mentioned GitHub):
678 git clone https://github.com/atheurer/lua-trafficgen
680 and use the master branch:
684 VSPERF uses a particular Lua script with the MoonGen project:
688 Follow MoonGen set up and execution instructions here:
690 https://github.com/atheurer/lua-trafficgen/blob/master/README.md
692 Note one will need to set up ssh login to not use passwords between the server
693 running MoonGen and the device under test (running the VSPERF test
694 infrastructure). This is because VSPERF on one server uses 'ssh' to
695 configure and run MoonGen upon the other server.
697 One can set up this ssh access by doing the following on both servers:
699 .. code-block:: console
701 ssh-keygen -b 2048 -t rsa
702 ssh-copy-id <other server>
707 Connection information for MoonGen must be supplied inside the
708 ``10_custom.conf`` or ``03_custom.conf`` file. The following parameters must be
709 set to allow for proper connections to the host with MoonGen.
711 .. code-block:: console
713 TRAFFICGEN_MOONGEN_HOST_IP_ADDR = ""
714 TRAFFICGEN_MOONGEN_USER = ""
715 TRAFFICGEN_MOONGEN_BASE_DIR = ""
716 TRAFFICGEN_MOONGEN_PORTS = ""
717 TRAFFICGEN_MOONGEN_LINE_SPEED_GBPS = ""
725 Trex architecture overview and general installation instructions
728 https://trex-tgn.cisco.com/trex/doc/trex_stateless.html
730 You can directly download from GitHub:
732 .. code-block:: console
734 git clone https://github.com/cisco-system-traffic-generator/trex-core
736 and use the master branch:
738 .. code-block:: console
742 or Trex latest release you can download from here:
744 .. code-block:: console
746 wget --no-cache http://trex-tgn.cisco.com/trex/release/latest
748 After download, Trex repo has to be built:
750 .. code-block:: console
752 cd trex-core/linux_dpdk
753 ./b configure (run only once)
756 Next step is to create a minimum configuration file. It can be created by script ``dpdk_setup_ports.py``.
757 The script with parameter ``-i`` will run in interactive mode and it will create file ``/etc/trex_cfg.yaml``.
759 .. code-block:: console
762 sudo ./dpdk_setup_ports.py -i
764 Or example of configuration file can be found at location below, but it must be updated manually:
766 .. code-block:: console
768 cp trex-core/scripts/cfg/simple_cfg /etc/trex_cfg.yaml
770 For additional information about configuration file see official documentation (chapter 3.1.2):
772 https://trex-tgn.cisco.com/trex/doc/trex_manual.html#_creating_minimum_configuration_file
774 After compilation and configuration it is possible to run trex server in stateless mode.
775 It is neccesary for proper connection between Trex server and VSPERF.
777 .. code-block:: console
779 cd trex-core/scripts/
782 For additional information about Trex stateless mode see Trex stateless documentation:
784 https://trex-tgn.cisco.com/trex/doc/trex_stateless.html
786 **NOTE:** One will need to set up ssh login to not use passwords between the server
787 running Trex and the device under test (running the VSPERF test
788 infrastructure). This is because VSPERF on one server uses 'ssh' to
789 configure and run Trex upon the other server.
791 One can set up this ssh access by doing the following on both servers:
793 .. code-block:: console
795 ssh-keygen -b 2048 -t rsa
796 ssh-copy-id <other server>
801 Connection information for Trex must be supplied inside the custom configuration
802 file. The following parameters must be set to allow for proper connections to the host with Trex.
803 Example of this configuration is in conf/03_traffic.conf or conf/10_custom.conf.
805 .. code-block:: console
807 TRAFFICGEN_TREX_HOST_IP_ADDR = ''
808 TRAFFICGEN_TREX_USER = ''
809 TRAFFICGEN_TREX_BASE_DIR = ''
811 TRAFFICGEN_TREX_USER has to have sudo permission and passwordless access.
812 TRAFFICGEN_TREX_BASE_DIR is the place, where is stored 't-rex-64' file.