{"id":1263,"date":"2021-11-10T22:15:37","date_gmt":"2021-11-10T13:15:37","guid":{"rendered":"http:\/\/192.168.20.1\/?p=1263"},"modified":"2021-12-29T13:29:00","modified_gmt":"2021-12-29T04:29:00","slug":"install-cisco-trex-traffic-generator-on-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/rlab.cavtime.net\/?p=1263","title":{"rendered":"Install TRex Traffic Generator on Ubuntu 20.04"},"content":{"rendered":"<h2>Overview<\/h2>\n<p>TRex Traffic Generator \u3092 Ubuntu 20.04 \u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<h2>Function Summary<\/h2>\n<ul>\n<li>Stateless Mode &#8211; STL<\/li>\n<li>Stateful Mode \/ Advanced Stateful Mode &#8211; ASTF<\/li>\n<li>Emulation Server &#8211; EMU<\/li>\n<li>Bird Integration<\/li>\n<\/ul>\n<h2>Reference<\/h2>\n<ul>\n<li><a href=\"https:\/\/trex-tgn.cisco.com\/\" target=\"_blank\" rel=\"noopener\">TRex<\/a><\/li>\n<li><a href=\"https:\/\/trex-tgn.cisco.com\/trex\/doc\/release_notes.html\" target=\"_blank\" rel=\"noopener\">TRex relese notes<\/a><\/li>\n<li><a href=\"https:\/\/trex-tgn.cisco.com\/trex\/release\/\" target=\"_blank\" rel=\"noopener\">TRex download<\/a><\/li>\n<\/ul>\n<h2>Environment<\/h2>\n<pre>$ lscpu\r\nArchitecture:                    x86_64\r\nCPU op-mode(s):                  32-bit, 64-bit\r\nByte Order:                      Little Endian\r\nAddress sizes:                   39 bits physical, 48 bits virtual\r\nCPU(s):                          4\r\nOn-line CPU(s) list:             0-3\r\nThread(s) per core:              2\r\nCore(s) per socket:              2\r\nSocket(s):                       1\r\nNUMA node(s):                    1\r\nVendor ID:                       GenuineIntel\r\nCPU family:                      6\r\nModel:                           94\r\nModel name:                      Intel(R) Core(TM) i3-6100T CPU @ 3.20GHz\r\nStepping:                        3\r\nCPU MHz:                         800.176\r\nCPU max MHz:                     3200.0000\r\nCPU min MHz:                     800.0000\r\nBogoMIPS:                        6399.96\r\nVirtualization:                  VT-x\r\nL1d cache:                       64 KiB\r\nL1i cache:                       64 KiB\r\nL2 cache:                        512 KiB\r\nL3 cache:                        3 MiB\r\nNUMA node0 CPU(s):               0-3\r\nVulnerability Itlb multihit:     KVM: Mitigation: Split huge pages\r\nVulnerability L1tf:              Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerab\r\n                                 le\r\nVulnerability Mds:               Mitigation; Clear CPU buffers; SMT vulnerable\r\nVulnerability Meltdown:          Mitigation; PTI\r\nVulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp\r\nVulnerability Spectre v1:        Mitigation; usercopy\/swapgs barriers and __user pointer sanitization\r\nVulnerability Spectre v2:        Mitigation; Full generic retpoline, IBPB conditional, IBRS_FW, STIBP c\r\n                                 onditional, RSB filling\r\nVulnerability Srbds:             Mitigation; Microcode\r\nVulnerability Tsx async abort:   Not affected\r\nFlags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse3\r\n                                 6 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb r\r\n                                 dtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopolog\r\n                                 y nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx\r\n                                  est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe\r\n                                  popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnow\r\n                                 prefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_s\r\n                                 hadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2\r\n                                 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveop\r\n                                 t xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act\r\n                                 _window hwp_epp md_clear flush_l1d\r\n$\r\n<\/pre>\n<pre>$ cat \/etc\/os-release\r\nNAME=\"Ubuntu\"\r\nVERSION=\"20.04.3 LTS (Focal Fossa)\"\r\nID=ubuntu\r\nID_LIKE=debian\r\nPRETTY_NAME=\"Ubuntu 20.04.3 LTS\"\r\nVERSION_ID=\"20.04\"\r\nHOME_URL=\"https:\/\/www.ubuntu.com\/\"\r\nSUPPORT_URL=\"https:\/\/help.ubuntu.com\/\"\r\nBUG_REPORT_URL=\"https:\/\/bugs.launchpad.net\/ubuntu\/\"\r\nPRIVACY_POLICY_URL=\"https:\/\/www.ubuntu.com\/legal\/terms-and-policies\/privacy-policy\"\r\nVERSION_CODENAME=focal\r\nUBUNTU_CODENAME=focal\r\n$\r\n$ uname -a\r\nLinux svr-trex 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64 x86_64 x86_64 GNU\/Linux\r\n$\r\n<\/pre>\n<pre>$ lspci | grep Ethernet\r\n00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V\r\n06:00.0 Ethernet controller: Intel Corporation 82571EB\/82571GB Gigabit Ethernet Controller (Copper) (rev 06)\r\n06:00.1 Ethernet controller: Intel Corporation 82571EB\/82571GB Gigabit Ethernet Controller (Copper) (rev 06)\r\n07:00.0 Ethernet controller: Intel Corporation 82571EB\/82571GB Gigabit Ethernet Controller (Copper) (rev 06)\r\n07:00.1 Ethernet controller: Intel Corporation 82571EB\/82571GB Gigabit Ethernet Controller (Copper) (rev 06)\r\n$\r\n<\/pre>\n<h2>Installation<\/h2>\n<h3>TRex<\/h3>\n<pre>$ sudo su -\r\n# mkdir -p \/opt\/trex\r\n# cd \/opt\/trex\r\n# wget --no-cache --no-check-certificate https:\/\/trex-tgn.cisco.com\/trex\/release\/v2.92.tar.gz\r\n# tar -xzvf v2.92.tar.gz\r\n# rm v2.92.tar.gz\r\n<\/pre>\n<h3>Packages<\/h3>\n<pre># apt install linux-headers-`uname -r`\r\n# apt install build-essential\r\n<\/pre>\n<h2>dpdk_setup_ports.py<\/h2>\n<p>dkdk_setup_ports.py \u306f TRex \u3067\u5229\u7528\u3059\u308b Port \u3092\u8a2d\u5b9a\u3057 \/etc\/trex_cfg.yaml \u3092\u4f5c\u6210\u30fb\u66f4\u65b0\u3059\u308b\u30c4\u30fc\u30eb\u3067\u3042\u308b\u3002<\/p>\n<pre>root@svr-trex:\/opt\/trex\/v2.92# .\/dpdk_setup_ports.py -s\r\n\r\nNetwork devices using DPDK-compatible driver\r\n============================================\r\n\r\n\r\nNetwork devices using kernel driver\r\n===================================\r\n0000:00:1f.6 'Ethernet Connection (2) I219-V' if=eno1 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic *Active*\r\n0000:06:00.0 '82571EB\/82571GB Gigabit Ethernet Controller (Copper)' if=enp6s0f0 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic\r\n0000:06:00.1 '82571EB\/82571GB Gigabit Ethernet Controller (Copper)' if=enp6s0f1 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic\r\n0000:07:00.0 '82571EB\/82571GB Gigabit Ethernet Controller (Copper)' if=enp7s0f0 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic\r\n0000:07:00.1 '82571EB\/82571GB Gigabit Ethernet Controller (Copper)' if=enp7s0f1 drv=e1000e unused=igb_uio,vfio-pci,uio_pci_generic\r\n\r\nOther network devices\r\n=====================\r\n\r\nroot@svr-trex:\/opt\/trex\/v2.92#\r\nroot@svr-trex:\/opt\/trex\/v2.92# .\/dpdk_setup_ports.py -i\r\nBy default, IP based configuration file will be created. Do you want to use MAC based config? (y\/N)N\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\n| ID | NUMA |   PCI   |        MAC        |                         Name                         | Driver | Linux IF |  Active  |\r\n+====+======+=========+===================+======================================================+========+==========+==========+\r\n| 0  | -1   | 00:1f.6 | ac:1f:6b:16:1f:79 | Ethernet Connection (2) I219-V                       | e1000e | eno1     | *Active* |\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\n| 1  | -1   | 06:00.0 | 00:1b:21:59:1d:11 | 82571EB\/82571GB Gigabit Ethernet Controller (Copper) | e1000e | enp6s0f0 |          |\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\n| 2  | -1   | 06:00.1 | 00:1b:21:59:1d:10 | 82571EB\/82571GB Gigabit Ethernet Controller (Copper) | e1000e | enp6s0f1 |          |\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\n| 3  | -1   | 07:00.0 | 00:1b:21:59:1d:13 | 82571EB\/82571GB Gigabit Ethernet Controller (Copper) | e1000e | enp7s0f0 |          |\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\n| 4  | -1   | 07:00.1 | 00:1b:21:59:1d:12 | 82571EB\/82571GB Gigabit Ethernet Controller (Copper) | e1000e | enp7s0f1 |          |\r\n+----+------+---------+-------------------+------------------------------------------------------+--------+----------+----------+\r\nPlease choose an even number of interfaces from the list above, either by ID, PCI or Linux IF\r\nStateful will use order of interfaces: Client1 Server1 Client2 Server2 etc. for flows.\r\nStateless can be in any order.\r\nEnter list of interfaces separated by space (for example: 1 3) : 1 2 3 4\r\n\r\nFor interface 1, assuming loopback to its dual interface 2.\r\nPutting IP 1.1.1.1, default gw 2.2.2.2 Change it?(y\/N).N\r\nFor interface 2, assuming loopback to its dual interface 1.\r\nPutting IP 2.2.2.2, default gw 1.1.1.1 Change it?(y\/N).N\r\nFor interface 3, assuming loopback to its dual interface 4.\r\nPutting IP 3.3.3.3, default gw 4.4.4.4 Change it?(y\/N).N\r\nFor interface 4, assuming loopback to its dual interface 3.\r\nPutting IP 4.4.4.4, default gw 3.3.3.3 Change it?(y\/N).N\r\nPrint preview of generated config? (Y\/n)y\r\n### Config file generated by dpdk_setup_ports.py ###\r\n\r\n- version: 2\r\n  interfaces: ['06:00.0', '06:00.1', '07:00.0', '07:00.1']\r\n  port_info:\r\n      - ip: 1.1.1.1\r\n        default_gw: 2.2.2.2\r\n      - ip: 2.2.2.2\r\n        default_gw: 1.1.1.1\r\n\r\n      - ip: 3.3.3.3\r\n        default_gw: 4.4.4.4\r\n      - ip: 4.4.4.4\r\n        default_gw: 3.3.3.3\r\n\r\n  platform:\r\n      master_thread_id: 0\r\n      latency_thread_id: 1\r\n      dual_if:\r\n        - socket: 0\r\n          threads: [2]\r\n\r\n        - socket: 0\r\n          threads: [3]\r\n\r\n\r\nSave the config to file? (Y\/n)y\r\nDefault filename is \/etc\/trex_cfg.yaml\r\nPress ENTER to confirm or enter new file:\r\nSaved to \/etc\/trex_cfg.yaml.\r\n\r\nroot@svr-trex:\/opt\/trex\/v2.92#\r\n<\/pre>\n<h2>t-rex-64<\/h2>\n<p>help<\/p>\n<pre># .\/t-rex-64 --help\r\nStarting  TRex v2.92 please wait  ... \r\n Usage: t-rex-64 [mode]\r\n\r\n mode is one of:\r\n   -f  : YAML file with traffic template configuration (Will run TRex in 'stateful' mode)\r\n   -i        : Run TRex in 'stateless' mode\r\n\r\n Available options are:\r\n --astf                     : Enable advanced stateful mode. profile should be in py format and not YAML format \r\n --astf-server-only         : Only server  side ports (1,3..) are enabled with ASTF service. Traffic won't be transmitted on clients ports. \r\n --astf-client-mask         : Enable only specific client side ports with ASTF service. \r\n                              For example, with 4 ports setup. 0x1 means that only port 0 will be enabled. ports 2 won't be enabled. \r\n                              Can't be used with --astf-server-only. \r\n\r\n --stl                      : Starts in stateless mode. must be provided along with '-i' for interactive mode \r\n --active-flows             : An experimental switch to scale up or down the number of active flows.  \r\n                              It is not accurate due to the quantization of flow scheduler and in some case does not work. \r\n                              Example --active-flows 500000 wil set the ballpark of the active flow to be ~0.5M \r\n --allow-coredump           : Allow creation of core dump \r\n --arp-refresh-period       : Period in seconds between sending of gratuitous ARP for our addresses. Value of 0 means 'never send' \r\n --limit-arp-request        : The limit number of ARP requests for gw address resolution. Value of 0 means 'no limit.' \r\n -c &gt;                  : Number of hardware threads to allocate for each port pair. Overrides the 'c' argument from config file \r\n --cfg                : Use file as TRex config file instead of the default \/etc\/trex_cfg.yaml \r\n --checksum-offload         : Deprecated,enable by default. Enable IP, TCP and UDP tx checksum offloading, using DPDK. This requires all used interfaces to support this  \r\n --checksum-offload-disable : Disable IP, TCP and UDP tx checksum offloading, using DPDK. This requires all used interfaces to support this  \r\n --tso-disable              : disable TSO (advanced TCP mode) \r\n --lro-disable              : disable LRO (advanced TCP mode) \r\n --client-cfg         : YAML file describing clients configuration \r\n --close-at-end             : Call rte_eth_dev_stop and close at exit. Calling these functions caused link down issues in older versions, \r\n                               so we do not call them by default for now. Leaving this as option in case someone thinks it is helpful for him \r\n                               This it temporary option. Will be removed in the future \r\n -d                         : Duration of the test in sec (default is 3600). Look also at --nc \r\n -e                         : Like -p but src\/dst IP will be chosen according to the port (i.e. on client port send all packets with client src and server dest, and vice versa on server port \r\n --flip                     : Each flow will be sent both from client to server and server to client. This can achieve better port utilization when flow traffic is asymmetric \r\n --hdrh                     : Report latency using high dynamic range histograms (http:\/\/hdrhistogram.org)\r\n --hops               : If rx check is enabled, the hop number can be assigned. See manual for details \r\n --iom                : IO mode  for server output [0- silent, 1- normal , 2- short] \r\n --ipv6                     : Work in ipv6 mode \r\n -k                    : Run 'warm up' traffic for num seconds before starting the test.\r\n                               Works only with the latency test (-l option)\r\n -l                   : In parallel to the test, run latency check, sending packets at rate\/sec from each interface \r\n --l-pkt-mode &lt;0-3&gt;         : Set mode for sending latency packets \r\n      0 (default)    send SCTP packets  \r\n      1              Send ICMP request packets  \r\n      2              Send ICMP requests from client side, and response from server side (for working with firewall) \r\n      3              Send ICMP requests with sequence ID 0 from both sides \r\n    Rate of zero means no latency check \r\n --learn (deprecated). Replaced by --learn-mode. To get older behaviour, use --learn-mode 2 \r\n --learn-mode [1-3]         : Used for working in NAT environments. Dynamically learn the NAT translation done by the DUT \r\n      1    In case of TCP flow, use TCP ACK in first SYN to pass NAT translation information. Initial SYN packet must be first packet in the TCP flow \r\n           In case of UDP stream, NAT translation information will pass in IP ID field of first packet in flow. This means that this field is changed by TRex\r\n      2    Add special IP option to pass NAT translation information to first packet of each flow. Will not work on certain firewalls if they drop packets with IP options \r\n      3    Like 1, but without support for sequence number randomization in server-&gt;client direction. Performance (flow\/second) better than 1 \r\n --learn-verify             : Test the NAT translation mechanism. Should be used when there is no NAT in the setup \r\n --limit-ports              : Limit number of ports used. Must be even number (TRex always uses port pairs) \r\n --lm                       : Hex mask of cores that should send traffic \r\n                              For example: Value of 0x5 will cause only ports 0 and 2 to send traffic \r\n --lo                       : Only run latency test \r\n -m                    : Rate multiplier.  Multiply basic rate of templates by this number \r\n --mbuf-factor              : Factor for packet memory \r\n --nc                       : If set, will not wait for all flows to be closed, before terminating - see manual for more information \r\n --no-flow-control-change   : By default TRex disables flow-control. If this option is given, it does not touch it \r\n --no-hw-flow-stat          : Relevant only for Intel x710 stateless mode. Do not use HW counters for flow stats\r\n                            : Enabling this will support lower traffic rate, but will also report RX byte count statistics. See manual for more details\r\n --no-key                   : Daemon mode, don't get input from keyboard \r\n --no-ofed-check            : Disable the check of OFED version \r\n --no-scapy-server          : Disable Scapy server implicit start at stateless \r\n --scapy-server             : Enable Scapy server implicit start at ASTF \r\n --no-termio                : Do not use TERMIO. useful when using GDB and ctrl+c is needed. \r\n --no-watchdog              : Disable watchdog \r\n --rt                       : Run TRex DP\/RX cores in realtime priority \r\n -p                         : Send all flow packets from the same interface (choosed randomly between client ad server ports) without changing their src\/dst IP \r\n -pm                        : Platform factor. If you have splitter in the setup, you can multiply the total results by this factor \r\n                              e.g --pm 2.0 will multiply all the results bps in this factor \r\n --prefix              : For running multi TRex instances on the same machine. Each instance should have different name \r\n --prom                     : Enable promiscuous for ASTF\/STF mode  \r\n -pubd                      : Disable monitors publishers \r\n --queue-drop               : Do not retry to send packets on failure (queue full etc.)\r\n --rpc-log            : Save log of RPC conversation in logfile\r\n --rx-check           : Enable rx check. TRex will sample flows at 1\/rate and check order, latency and more \r\n -s                         : Single core. Run only one data path core. For debug \r\n --send-debug-pkt    : Do not run traffic generator. Just send debug packet and dump receive queues \r\n                              Supported protocols are 1 for icmp, 2 for UDP, 3 for TCP, 4 for ARP, 5 for 9K UDP \r\n --sleeps                   : Use sleeps instead of busy wait in scheduler (less accurate, more power saving)\r\n --software                 : Do not configure any hardware rules. In this mode we use 1 core, and one RX queue and one TX queue per port\r\n --unbind-unused-ports      : Automatically unbind all unused bound ports in same NIC instead of exiting with error (i40e only)\r\n --ignore-528-issue         : Do not exit with error nor unbind them when other ports in the same NIC are kernel driven (i40e only), \r\n                            : HW flow stats may be impaired and should not be used then [see https:\/\/trex-tgn.cisco.com\/youtrack\/issue\/trex-528]. \r\n -v        : The higher the value, print more debug information \r\n --vlan                     : Relevant only for stateless mode with Intel 82599 10G NIC \r\n                              When configuring flow stat and latency per stream rules, assume all streams uses VLAN \r\n -w                    : Wait num seconds between init of interfaces and sending traffic, default is 1 \r\n --emu                      : Load emu server \r\n --emu-zmq                  : For debug, just enable emu zmq channel. \r\n --emu-zmq-tcp              : Use TCP over ZMQ. Default is IPC. \r\n --bird-server              : Enable bird service \r\n --gtpu                     : Enable GTPU mode \r\n --disable-ieee-1588        : Enable Latency Measurement using HW timestamping and DPDK APIs. Currently works only for Stateless mode. \r\n                              Need to Enable COMPILE time DPDK config RTE_LIBRTE_IEEE1588 inorder to use this feature \r\n                              Uses PTP (IEEE 1588v2) Protocol to have the packets timestamped at NIC \r\n\r\n Examples:  basic trex run for 20 sec and multiplier of 10 \r\n  t-rex-64 -f cap2\/dns.yaml -m 10 -d 20 \r\n\r\n\r\n Copyright (c) 2015-2017 Cisco Systems, Inc.    \r\n                                                                  \r\n Licensed under the Apache License, Version 2.0 (the 'License') \r\n you may not use this file except in compliance with the License. \r\n You may obtain a copy of the License at                          \r\n                                                                  \r\n    http:\/\/www.apache.org\/licenses\/LICENSE-2.0                    \r\n                                                                  \r\n Unless required by applicable law or agreed to in writing, software \r\n distributed under the License is distributed on an \"AS IS\" BASIS,   \r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. \r\n See the License for the specific language governing permissions and      \r\n limitations under the License.                                           \r\n \r\n Open Source Components \/ Libraries \r\n DPDK       (BSD)       \r\n YAML-CPP   (BSD)       \r\n JSONCPP    (MIT)       \r\n BPF        (BSD)       \r\n HDR-HISTOGRAM-C (CC0)  \r\n \r\n Open Source Binaries \r\n ZMQ        (LGPL v3plus) \r\n \r\n Version : v2.92   \r\n DPDK version : DPDK 21.02.0-rc1   \r\n User    : hhaim   \r\n Date    : Sep 15 2021 , 08:52:57 \r\n Uuid    : d5a36f26-15e8-11ec-9af9-641225363740    \r\n Git SHA : e5521af766bbfad807eb8d185b6496eb25c65689    \r\n\r\nCompiled with GCC     :   6.2.0\r\nCompiled with glibc   :   2.16 (host: 2.31)\r\nSanitized image       :   no\r\n# \r\n<\/pre>\n<p>stateless mode<\/p>\n<pre># .\/t-rex-64 -i\r\nWARNING: tried to configure 2048 hugepages for socket 0, but result is: 1425\r\nKilling Scapy server... Scapy server is killed\r\nStarting Scapy server........ Scapy server is started\r\nTrying to bind to vfio-pci ...\r\nTrying to compile and bind to igb_uio ...\r\nERROR: We don't have precompiled igb_uio.ko module for your kernel version.\r\nWill try compiling automatically...\r\nSuccess.\r\n\r\n\/usr\/bin\/python3 dpdk_nic_bind.py --bind=igb_uio 0000:00:08.0 0000:00:09.0 \r\nThe ports are bound\/configured.\r\nStarting  TRex v2.92 please wait  ... \r\n set driver name net_e1000_em \r\n driver capability  : TCP_UDP_OFFLOAD \r\n set dpdk queues mode to ONE_QUE \r\n Number of ports found: 2\r\nzmq publisher at: tcp:\/\/*:4500\r\n wait 1 sec .\r\nport : 0 \r\n------------\r\nlink         :  link : Link Up - speed 1000 Mbps - full-duplex\r\npromiscuous  : 0 \r\nport : 1 \r\n------------\r\nlink         :  link : Link Up - speed 1000 Mbps - full-duplex\r\npromiscuous  : 0 \r\n number of ports         : 2 \r\n max cores for 2 ports   : 1 \r\n tx queues per port      : 3 \r\n -------------------------------\r\nRX core uses TX queue number 65535 on all ports\r\n core, c-port, c-queue, s-port, s-queue, lat-queue\r\n ------------------------------------------\r\n 1        0      0       1       0      0  \r\n -------------------------------\r\n\r\n\r\n\r\n-Per port stats table \r\n      ports |               0 |               1 \r\n -----------------------------------------------------------------------------------------\r\n   opackets |               0 |               0 \r\n     obytes |               0 |               0 \r\n   ipackets |               0 |               0 \r\n     ibytes |               0 |               0 \r\n    ierrors |               0 |               0 \r\n    oerrors |               0 |               0 \r\n      Tx Bw |       0.00  bps |       0.00  bps \r\n\r\n-Global stats enabled \r\n Cpu Utilization : 0.0  %\r\n Platform_factor : 1.0  \r\n Total-Tx        :       0.00  bps  \r\n Total-Rx        :       0.00  bps  \r\n Total-PPS       :       0.00  pps  \r\n Total-CPS       :       0.00  cps  \r\n\r\n Expected-PPS    :       0.00  pps  \r\n Expected-CPS    :       0.00  cps  \r\n Expected-BPS    :       0.00  bps  \r\n\r\n Active-flows    :        0  Clients :        0   Socket-util : 0.0000 %    \r\n Open-flows      :        0  Servers :        0   Socket :        0 Socket\/Clients :  -nan \r\n drop-rate       :       0.00  bps   \r\n current time    : 7.7 sec  \r\n test duration   : 0.0 sec  \r\n *** TRex is shutting down - cause: 'CTRL + C detected'\r\n All cores stopped !! \r\nKilling Scapy server... Scapy server is killed\r\n#\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Overview TRex Traffic Generator \u3092 Ubuntu 20.04 \u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002 Function Summary Stateless Mode &#8211; STL Stateful [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67,108],"tags":[],"class_list":["post-1263","post","type-post","status-publish","format-standard","hentry","category-linux","category-traffic-generator"],"_links":{"self":[{"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/posts\/1263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1263"}],"version-history":[{"count":8,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/posts\/1263\/revisions"}],"predecessor-version":[{"id":1408,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=\/wp\/v2\/posts\/1263\/revisions\/1408"}],"wp:attachment":[{"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rlab.cavtime.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}