diff options
author | jdenisco <jdenisco@cisco.com> | 2018-11-26 15:15:09 -0500 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2018-11-27 15:48:06 +0000 |
commit | ad4426e565e4066a9af4ac8058a0efb6cf29db42 (patch) | |
tree | 9550da303fee8ea8fe51e4a0e9642ac072bb01b1 /docs/usecases | |
parent | e411d9d86f90c558fdff5a9b3bdbe939ecd0cf61 (diff) |
docs: Add more on trex
Change-Id: Ifb5eabe30e1b0ba911ddf455573cc346ff4bec85
Signed-off-by: jdenisco <jdenisco@cisco.com>
Diffstat (limited to 'docs/usecases')
-rw-r--r-- | docs/usecases/index.rst | 2 | ||||
-rw-r--r-- | docs/usecases/simpleperf/index.rst | 2 | ||||
-rw-r--r-- | docs/usecases/simpleperf/trex.rst | 8 | ||||
-rw-r--r-- | docs/usecases/simpleperf/trex1.rst | 12 | ||||
-rw-r--r-- | docs/usecases/simpleperf/trex2.rst | 192 | ||||
-rw-r--r-- | docs/usecases/simpleperf/trex3.rst | 27 |
6 files changed, 223 insertions, 20 deletions
diff --git a/docs/usecases/index.rst b/docs/usecases/index.rst index e6287f38931..735947cd994 100644 --- a/docs/usecases/index.rst +++ b/docs/usecases/index.rst @@ -14,3 +14,5 @@ extensive list, but should give a sampling of the many features contained in FD. vhost/index.rst homegateway contiv/index.rst + + diff --git a/docs/usecases/simpleperf/index.rst b/docs/usecases/simpleperf/index.rst index 0f1d30737eb..c1cbf58cde1 100644 --- a/docs/usecases/simpleperf/index.rst +++ b/docs/usecases/simpleperf/index.rst @@ -11,6 +11,8 @@ VPP with Iperf3 and TRex iperf31 trex trex1 + trex2 + trex3 diff --git a/docs/usecases/simpleperf/trex.rst b/docs/usecases/simpleperf/trex.rst index 3dffcab4675..996ed156d10 100644 --- a/docs/usecases/simpleperf/trex.rst +++ b/docs/usecases/simpleperf/trex.rst @@ -66,13 +66,6 @@ information on the configuration file, please refer to the `TRex Manual <http:// - ip: 10.10.1.2 default_gw: 10.10.1.1 - platform: - master_thread_id: 0 - latency_thread_id: 1 - dual_if: - - socket: 1 - threads: [22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43] - Stop the previous VPP session and start it again in order to add a route for new IP addresses 16.0.0.0/8 and 48.0.0.0/8, according to Figure 2. Those IP addresses are needed because TRex generates packets that use these addresses. Refer to the @@ -130,4 +123,3 @@ configuration file "cap2/dns.yaml". On *csp2s22c03*, the *show run* command displays the graph runtime statistics. .. figure:: /_images/build-a-fast-network-stack-terminal-2.png - diff --git a/docs/usecases/simpleperf/trex1.rst b/docs/usecases/simpleperf/trex1.rst index d1101edb85a..0daa57f7035 100644 --- a/docs/usecases/simpleperf/trex1.rst +++ b/docs/usecases/simpleperf/trex1.rst @@ -30,15 +30,3 @@ On *csp2s22c03*, use the VCC CLI command show run to display the graph runtime s Observe that the average vector per node is 10.69 and 14.47: .. figure:: /_images/build-a-fast-network-stack-terminal-3.png - -Summary -======= - -This tutorial showed how to download, compile, and install the VPP binary on an -IntelĀ® Architecture platform. Examples of /etc/sysctl.d/80-vpp.conf and -/etc/vpp/startup.conf/startup.conf configuration files were provided to get the -user up and running with VPP. The tutorial also illustrated how to detect and bind -the network interfaces to a DPDK-compatible driver. You can use the VPP CLI to assign -IP addresses to these interfaces and bring them up. Finally, four examples using iperf3 -and TRex were included, to show how VPP processes packets in batches. - diff --git a/docs/usecases/simpleperf/trex2.rst b/docs/usecases/simpleperf/trex2.rst new file mode 100644 index 00000000000..adb1d10c736 --- /dev/null +++ b/docs/usecases/simpleperf/trex2.rst @@ -0,0 +1,192 @@ +.. _trex2: + +TRex Stateless Mode +=================== + +TRex can also be run in a stateless mode. For a detailed description of TRex stateless support +please refer to `TRex Stateless Support <https://trex-tgn.cisco.com/trex/doc/trex_stateless.html>`_. + +In this section we show some simple examples using TRex stateless mode. These examples use +the configuration as shown in the section :ref:`trex`. These examples we will be using VMWare VMs. + +To use TRex stateless mode we use 2 terminals on the TRex traffic generator node. One terminal will +be used for the TRex console and one to monitor the traffic. + +In one of terminals start TRex in stateless mode. Use *Ctrl-C* to stop. + +.. code-block:: console + + # cd v2.46/ + # ./trex -i + -Per port stats table + ports | 0 | 1 | 2 | 3 + ----------------------------------------------------------------------------------------- + opackets | 0 | 0 | 0 | 0 + obytes | 0 | 0 | 0 | 0 + ipackets | 6 | 6 | 5 | 5 + ibytes | 384 | 384 | 320 | 320 + ierrors | 0 | 0 | 0 | 0 + oerrors | 0 | 0 | 0 | 0 + Tx Bw | 0.00 bps | 0.00 bps | 0.00 bps | 0.00 bps + + -Global stats enabled + Cpu Utilization : 0.0 % + Platform_factor : 1.0 + Total-Tx : 0.00 bps + Total-Rx : 238.30 bps + Total-PPS : 0.00 pps + Total-CPS : 0.00 cps + + Expected-PPS : 0.00 pps + Expected-CPS : 0.00 cps + Expected-BPS : 0.00 bps + + Active-flows : 0 Clients : 0 Socket-util : 0.0000 % + Open-flows : 0 Servers : 0 Socket : 0 Socket/Clients : -nan + drop-rate : 0.00 bps + current time : 21.4 sec + test duration : 0.0 sec + *** TRex is shutting down - cause: 'CTRL + C detected' + All cores stopped !! + +In the other terminal start the TRex console. With this console we will execute the TRex commands. + +.. code-block:: console + + # cd v2.46/ + # ./trex -console + + Using 'python' as Python interpeter + + + Connecting to RPC server on localhost:4501 [SUCCESS] + + + Connecting to publisher server on localhost:4500 [SUCCESS] + + + Acquiring ports [0, 1, 2, 3]: [SUCCESS] + + + Server Info: + + Server version: v2.46 @ STL + Server mode: Stateless + Server CPU: 2 x Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz + Ports count: 4 x 10Gbps @ VMXNET3 Ethernet Controller + + -=TRex Console v3.0=- + + Type 'help' or '?' for supported actions + trex> + +Start some traffic using the **stl/imix.py** traffic profile. + +.. code-block:: console + + trex>start -f ./stl/imix.py -p 0 1 2 3 -m 9475mbps + + Removing all streams from port(s) [0, 1, 2, 3]: [SUCCESS] + + + Attaching 3 streams to port(s) [0]: [SUCCESS] + + + Attaching 3 streams to port(s) [1]: [SUCCESS] + + + Attaching 3 streams to port(s) [2]: [SUCCESS] + + + Attaching 3 streams to port(s) [3]: [SUCCESS] + + + Starting traffic on port(s) [0, 1, 2, 3]: [SUCCESS] + + 80.94 [ms] + + trex> + +The **-f ./stl/imix.py** argument specifies the file that is used to create the +traffic profile. The argument **-p 0 1 2 3** specifies the ports to be used. +The argument **-m 9475mbps** the number of packets/sec to be used. +All the arguments can be displayed with the **-h** argument. + +In the other terminal the display shows the statistics related the traffic flows. + +.. code-block:: console + + -Per port stats table + ports | 0 | 1 | 2 | 3 + ----------------------------------------------------------------------------------------- + opackets | 789907304 | 789894738 | 790017701 | 790017132 + obytes | 285397726750 | 285392406754 | 285406864578 | 285405883070 + ipackets | 1563501970 | 45 | 1563504693 | 44 + ibytes | 564870783050 | 2880 | 564873491682 | 2816 + ierrors | 15728759 | 0 | 15732451 | 0 + oerrors | 0 | 0 | 0 | 0 + Tx Bw | 606.55 Mbps | 606.19 Mbps | 606.25 Mbps | 606.51 Mbps + + -Global stats enabled + Cpu Utilization : 100.0 % 2.4 Gb/core + Platform_factor : 1.0 + Total-Tx : 2.43 Gbps + Total-Rx : 2.40 Gbps + Total-PPS : 841.44 Kpps + Total-CPS : 0.00 cps + + Expected-PPS : 0.00 pps + Expected-CPS : 0.00 cps + Expected-BPS : 0.00 bps + + Active-flows : 0 Clients : 0 Socket-util : 0.0000 % + Open-flows : 0 Servers : 0 Socket : 0 Socket/Clients : -nan + Total_queue_full : 6529970196 + drop-rate : 0.00 bps + current time : 4016.8 sec + test duration : 0.0 sec + +More statistics can be displayed on the TRex console using the **tui** command. + +.. code-block:: console + + trex>tui + + Global Statistitcs + + connection : localhost, Port 4501 total_tx_L2 : 2.45 Gb/sec + version : STL @ v2.46 total_tx_L1 : 2.59 Gb/sec + cpu_util. : 99.89% @ 2 cores (1 per port) total_rx : 2.42 Gb/sec + rx_cpu_util. : 4.03% / 837.39 Kpkt/sec total_pps : 846.96 Kpkt/sec + async_util. : 0.05% / 1.76 KB/sec drop_rate : 0 b/sec + queue_full : 42,750,771 pkts + + Port Statistics + + port | 0 | 1 | 2 | 3 | total + -----------+-------------------+-------------------+-------------------+-------------------+------------------ + owner | root | root | root | root | + link | UP | UP | UP | UP | + state | TRANSMITTING | TRANSMITTING | TRANSMITTING | TRANSMITTING | + speed | 10 Gb/s | 10 Gb/s | 10 Gb/s | 10 Gb/s | + CPU util. | 99.89% | 99.89% | 99.89% | 99.89% | + -- | | | | | + Tx bps L2 | 612.76 Mbps | 613.07 Mbps | 612.52 Mbps | 612.77 Mbps | 2.45 Gbps + Tx bps L1 | 646.64 Mbps | 646.96 Mbps | 646.4 Mbps | 646.64 Mbps | 2.59 Gbps + Tx pps | 211.72 Kpps | 211.8 Kpps | 211.73 Kpps | 211.71 Kpps | 846.96 Kpps + Line Util. | 6.47 % | 6.47 % | 6.46 % | 6.47 % | + --- | | | | | + Rx bps | 1.21 Gbps | \u25bc\u25bc\u25bc 23.03 bps | 1.21 Gbps | 5.94 bps | 2.42 G bps + Rx pps | 418.59 Kpps | 0.04 pps | 418.77 Kpps | 0.01 pps | 837.36 Kpps + ---- | | | | | + opackets | 5227126 | 5227271 | 5432528 | 5432354 | 21319279 + ipackets | 10526000 | 5 | 10527054 | 4 | 21053063 + obytes | 1890829910 | 1891039152 | 1965259162 | 1965124338 | 7712252562 + ibytes | 3807894454 | 320 | 3808149896 | 256 | 7616044926 + tx-pkts | 5.23 Mpkts | 5.23 Mpkts | 5.43 Mpkts | 5.43 Mpkts | 21.32 Mpkts + rx-pkts | 10.53 Mpkts | 5 pkts | 10.53 Mpkts | 4 pkts | 21.05 Mpkts + tx-bytes | 1.89 GB | 1.89 GB | 1.97 GB | 1.97 GB | 7.71 GB + rx-bytes | 3.81 GB | 320 B | 3.81 GB | 256 B | 7.62 GB + ----- | | | | | + oerrors | 0 | 0 | 0 | 0 | 0 + ierrors | 133,370 | 0 | 132,529 | 0 | 265,899 diff --git a/docs/usecases/simpleperf/trex3.rst b/docs/usecases/simpleperf/trex3.rst new file mode 100644 index 00000000000..e1014e52e2f --- /dev/null +++ b/docs/usecases/simpleperf/trex3.rst @@ -0,0 +1,27 @@ +.. _trex3: + +Examples +======== + +There are many examples of how to create traffic flows in the directories below the +TRex root directory. The stateless examples are written in Python and are found in +the **./stl** directory. Examine the directories **./avl/, ./stl and ./cap2**. A few +simple examples are as follows: + +* ./cap2/dns.yaml - Used in the first example +* ./avl/sfr_delay_10_1g.yaml - Used in the second example +* ./cap2/imix*.yaml - Uses some imix traffic profiles. +* ./stl/udp_1pkt.py - UDP example +* ./stl/imix.py - Simple imix example + +Summary +======= + +This tutorial showed how to download, compile, and install the VPP binary on an +IntelĀ® Architecture platform. Examples of /etc/sysctl.d/80-vpp.conf and +/etc/vpp/startup.conf/startup.conf configuration files were provided to get the +user up and running with VPP. The tutorial also illustrated how to detect and bind +the network interfaces to a DPDK-compatible driver. You can use the VPP CLI to assign +IP addresses to these interfaces and bring them up. Four examples using iperf3 +and TRex were included, to show how VPP processes packets in batches. We +also showed how to use TRex in stateless mode and examine traffic flow statistics. |