.. _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