TRex NUMA Error on Cisco GuestShell, CentOS 7

921 views
Skip to first unread message

viptelate...@gmail.com

unread,
May 22, 2018, 2:22:31 PM5/22/18
to TRex Traffic Generator
Trying to run this on Cisco's GuestShell - the Linux OS that IOS-XE sits on top of. The Linux OS was exposed starting in recent 16.X versions of code in IOS-XE. It is Cent-OS 7. I got TRex installed successfully.

Linux eth0 connects to a VirtualPortGroup0 interface on the Cisco router.

dpdk_setup_ports.py -s works, but anything else doesn't. i get "NUMA" errors, as per below.

Is there some compatibility issue here? Or is it just that my config file is wrong? i thought the "-s" command was meant to set up the config file?

Thanks very much!

[root@guestshell v2.41]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.30.2 netmask 255.255.255.248 broadcast 192.168.30.7
inet6 fe80::5054:ddff:fe83:1ff4 prefixlen 64 scopeid 0x20<link>
ether 52:54:dd:83:1f:f4 txqueuelen 1000 (Ethernet)
RX packets 141923 bytes 214561643 (204.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 70726 bytes 4719345 (4.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 17681 bytes 1876668 (1.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17681 bytes 1876668 (1.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@guestshell v2.41]# ./dpdk_setup_ports.py -s

Network devices using DPDK-compatible driver
============================================
<none>

Network devices using kernel driver
===================================
<none>

Other network devices
=====================
0000:04:00.0 'Device b321' unused=igb_uio,vfio-pci,uio_pci_generic
0000:64:00.1 'DH8900CC Series Gigabit Network Connection' unused=igb_uio,vfio-pci,uio_pci_generic
0000:64:00.2 'DH8900CC Series Gigabit Backplane Network Connection' unused=igb_uio,vfio-pci,uio_pci_generic
0000:64:00.3 'DH8900CC Series Gigabit Backplane Network Connection' unused=igb_uio,vfio-pci,uio_pci_generic
0000:64:00.4 'DH8900CC Series Gigabit Backplane Network Connection' unused=igb_uio,vfio-pci,uio_pci_generic


[root@guestshell v2.41]# sudo ./dpdk_setup_ports.py -i
By default, IP based configuration file will be created. Do you want to use MAC based config? (y/N)n
Traceback (most recent call last):
File "./dpdk_setup_ports.py", line 1348, in main
obj.do_interactive_create();
File "./dpdk_setup_ports.py", line 1081, in do_interactive_create
dpdk_nic_bind.show_table(get_macs = not ip_based)
File "/opt/trex/v2.41/dpdk_nic_bind.py", line 681, in show_table
table.add_row([id, d['NUMA'], d['Slot_str'], d.get('MAC', ''), d['Device_str'], d.get('Driver_str', ''), d['Interface'], d['Active']])
KeyError: 'NUMA'
[root@guestshell v2.41]# sudo ./dpdk_setup_ports.py -i
By default, IP based configuration file will be created. Do you want to use MAC based config? (y/N)y
Traceback (most recent call last):
File "./dpdk_setup_ports.py", line 1348, in main
obj.do_interactive_create();
File "./dpdk_setup_ports.py", line 1081, in do_interactive_create
dpdk_nic_bind.show_table(get_macs = not ip_based)
File "/opt/trex/v2.41/dpdk_nic_bind.py", line 681, in show_table
table.add_row([id, d['NUMA'], d['Slot_str'], d.get('MAC', ''), d['Device_str'], d.get('Driver_str', ''), d['Interface'], d['Active']])
KeyError: 'NUMA'
[root@guestshell v2.41]#

[root@guestshell v2.41]# sudo ./dpdk_setup_ports.py -t
Traceback (most recent call last):
File "./dpdk_setup_ports.py", line 1336, in main
dpdk_nic_bind.show_table()
File "/opt/trex/v2.41/dpdk_nic_bind.py", line 681, in show_table
table.add_row([id, d['NUMA'], d['Slot_str'], d.get('MAC', ''), d['Device_str'], d.get('Driver_str', ''), d['Interface'], d['Active']])
KeyError: 'NUMA'

hanoh haim

unread,
May 22, 2018, 2:48:29 PM5/22/18
to viptelate...@gmail.com, TRex Traffic Generator
You don’t need this script in that case, have a look how to setup Linux interfaces in the manual.

Hanoh

--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/faf6f26d-0b7e-43a9-aa99-17e1d4f5a14d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Hanoh
Sent from my iPhone

viptelate...@gmail.com

unread,
May 25, 2018, 11:05:23 AM5/25/18
to TRex Traffic Generator
Thank-you!

i think there are permissions issues with GuestShell - regarding creating any additional interfaces that "hook" back into IOS-XE. By defaut, there is a single one - eth0 in the example above. Even creating an additional loopback interface seems to have issues.

i have opened a case with Cisco TAC, who is checking with the BU about this.

However, do you know if it's possible to run TRex between two separate TRex instances, on two different devices - where each one has a single interface? Almost more like IPerf, except with much more "intelligent" traffic, if that makes sense.

i imagine there would need to be some sort of control channel so each device could know what to expect.

Hopefully i am explaining myself right.

Thanks!

hanoh haim

unread,
May 25, 2018, 11:32:56 AM5/25/18
to viptelate...@gmail.com, TRex Traffic Generator
Hi, 
You don't need to create a new interface. 
if you want to use "eth0" to tx/rx traffic you need to do this 

interfaces : ["eth0","dummy"]

you need to have PA_PACKET aceess to the interface. this require sudu inside the LXC

thanks,
Hanoh

--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+unsubscribe@googlegroups.com.

To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

hanoh haim

unread,
May 25, 2018, 11:34:52 AM5/25/18
to viptelate...@gmail.com, TRex Traffic Generator
Hi  
Regarding the second question. Yes it is possible to use it like Iperf.

thanks.
Hanoh

hanoh haim

unread,
May 29, 2018, 2:37:54 AM5/29/18
to viptelate...@gmail.com, TRex Traffic Generator
Hi,
You need to create this type of configuration file (/etc/trex_cfg.yaml):


- port_limit: 2
    version: 2
    interfaces: ['ethX', 'dummy']
low_end: true


1) "low_end" field will tell TRex to use less resources
2) replace ethX with the right Linux interface you want to send traffic on. it should just be up without IPv4 configuration  (ifconfig should show the interface)
3) You should not use the PCI address 



see here for more info 


thanks
Hanoh

On Fri, May 25, 2018 at 6:32 PM, hanoh haim <hhaim...@gmail.com> wrote:

viptelate...@gmail.com

unread,
May 30, 2018, 2:08:42 PM5/30/18
to TRex Traffic Generator
Thanks!

i thought i had tried that already, but i must not have done it exactly like you suggested. i was getting a different error before. i see the following error now though. i searched for that error in the forum, but didn't see it. Also included my yaml file for reference.

[root@guestshell v2.41]# cat /etc/trex_cfg.yaml


- port_limit : 2
version : 2

#List of interfaces. Change to suit your setup. Use ./dpdk_setup_ports.py -s to see available options
interfaces : ["eth0","dummy"]
low_end: true
port_info : # Port IPs. Change to suit your needs. In case of loopback, you can leave as is.
- ip : 1.1.1.1
default_gw : 2.2.2.2

[root@guestshell v2.41]#

[root@guestshell v2.41]# sudo ./t-rex-64 -f cap2/dns.yaml -c 4 -m 1 -d 10
The ports are bound/configured.
Starting TRex v2.41 please wait ...
EAL: Started without hugepages support, physical addresses not available
PMD: net_af_packet1000000: call to mmap failed on AF_PACKET socket for eth0
vdev_probe(): failed to initialize net_af_packet1000000 device
EAL: Bus (vdev) probe failed.
Could not find all interfaces (asked for: 2, found: 1).
[root@guestshell v2.41]#

hanoh haim

unread,
May 30, 2018, 2:12:53 PM5/30/18
to viptelate...@gmail.com, TRex Traffic Generator
Could you send “ ifconfig -a” output


--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.

To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

viptelate...@gmail.com

unread,
May 30, 2018, 2:20:19 PM5/30/18
to TRex Traffic Generator
Thanks!

[root@guestshell v2.41]# ifconfig -a


eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet 192.168.30.5 netmask 255.255.255.248 broadcast 192.168.30.7
inet6 fe80::5054:ddff:fe15:26b9 prefixlen 64 scopeid 0x20<link>
ether 52:54:dd:15:26:b9 txqueuelen 1000 (Ethernet)
RX packets 142659 bytes 215695167 (205.7 MiB)


RX errors 0 dropped 0 overruns 0 frame 0

TX packets 56764 bytes 3770447 (3.5 MiB)


TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)

RX packets 8837 bytes 965836 (943.1 KiB)


RX errors 0 dropped 0 overruns 0 frame 0

TX packets 8837 bytes 965836 (943.1 KiB)

hanoh haim

unread,
May 30, 2018, 2:48:49 PM5/30/18
to viptelate...@gmail.com, TRex Traffic Generator
$sudo ./t-rex-64-debug -i -v 7

Could you send the output of this command?

Hanoh

--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

viptelate...@gmail.com

unread,
May 30, 2018, 3:05:15 PM5/30/18
to TRex Traffic Generator
Sure. Thank-you very much.

[root@guestshell v2.41]# sudo ./t-rex-64-debug -i -v 7
Starting Scapy server..... Scapy server is started


The ports are bound/configured.
Starting TRex v2.41 please wait ...

Using configuration file /etc/trex_cfg.yaml
port limit : 2
port_bandwidth_gb : 10
if_mask : None
is low-end : 1
thread_per_dual_if : 1
if : eth0, dummy,
enable_zmq_pub : 1
zmq_pub_port : 4500
m_zmq_rpc_port : 4501
src : 00:00:00:00:00:00
dest : 00:00:00:00:00:00
memory per 2x10G ports
MBUF_64 : 16380
MBUF_128 : 8190
MBUF_256 : 8190
MBUF_512 : 8190
MBUF_1024 : 8190
MBUF_2048 : 4095
MBUF_4096 : 128
MBUF_9K : 512
TRAFFIC_MBUF_64 : 65520
TRAFFIC_MBUF_128 : 32760
TRAFFIC_MBUF_256 : 8190
TRAFFIC_MBUF_512 : 8190
TRAFFIC_MBUF_1024 : 8190
TRAFFIC_MBUF_2048 : 8928
TRAFFIC_MBUF_4096 : 128
TRAFFIC_MBUF_9K : 512
MBUF_DP_FLOWS : 65536
MBUF_GLOBAL_FLOWS : 5120
no platform info
CTimerWheelYamlInfo does not exist
flags : 8010f00
write_file : 0
verbose : 7
realtime : 1
flip : 0
cores : 1
single core : 0
flow-flip : 0
no clean close : 0
zmq_publish : 1
vlan mode : 0
client_cfg : 0
mbuf_cache_disable : 0
cfg file :
mac file :
out file :
client cfg file :
duration : 0
factor : 1
mbuf_factor : 1
latency : 0 pkt/sec
zmq_port : 4500
telnet_port : 4501
expected_ports : 2
tw_bucket_usec : 20.000000 usec
tw_buckets : 1024 usec
tw_levels : 3 usec
port : 0 dst:00:00:00:00:00:00 src:00:00:00:00:00:00
port : 1 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 2 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 3 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 4 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 5 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 6 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 7 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 8 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 9 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 10 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 11 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 12 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 13 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 14 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
port : 15 dst:00:00:00:01:00:00 src:00:00:00:00:00:00
Total Memory :
MBUF_64 : 81900
MBUF_128 : 40950
MBUF_256 : 16380
MBUF_512 : 16380
MBUF_1024 : 16380
MBUF_2048 : 13023
MBUF_4096 : 1024
MBUF_DP_FLOWS : 65536
MBUF_GLOBAL_FLOWS : 5120
get_each_core_dp_flows : 65536
Total memory : 113.49 Mbytes
there is no configuration file given
DPDK args
xx --lcores (0,1,2)@0 -n 4 --log-level 8 --master-lcore 0 --vdev=net_af_packet1000000,iface=eth0,blocksz=593920,framesz=9280,framecnt=256 --no-pci --no-huge -m 250
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Detected lcore 2 as core 1 on socket 0
EAL: Detected lcore 3 as core 1 on socket 0
EAL: Detected lcore 4 as core 2 on socket 0
EAL: Detected lcore 5 as core 2 on socket 0
EAL: Detected lcore 6 as core 3 on socket 0
EAL: Detected lcore 7 as core 3 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 8 lcore(s)
EAL: Probing VFIO support...
EAL: Module /sys/module/vfio not found! error 2 (No such file or directory)
EAL: VFIO modules not loaded, skipping VFIO support...
EAL: Module /sys/module/vfio not found! error 2 (No such file or directory)
EAL: Setting up physically contiguous memory...


EAL: Started without hugepages support, physical addresses not available

EAL: TSC frequency is ~1800007 KHz
EAL: Master lcore 0 is ready (tid=69694900;cpuset=[0])
EAL: lcore 2 is ready (tid=57146700;cpuset=[0])
EAL: lcore 1 is ready (tid=57947700;cpuset=[0])
PMD: Initializing pmd_af_packet for net_af_packet1000000
PMD: net_af_packet1000000: AF_PACKET MMAP parameters:
PMD: net_af_packet1000000: block size 593920
PMD: net_af_packet1000000: block count 4
PMD: net_af_packet1000000: frame size 9280
PMD: net_af_packet1000000: frame count 256
PMD: net_af_packet1000000: creating AF_PACKET-backed ethdev on numa socket 0

hanoh haim

unread,
May 30, 2018, 5:26:40 PM5/30/18
to viptelate...@gmail.com, TRex Traffic Generator

Try Replacing “eth0” with 

--vdev=net_af_packet1,iface=eth0,blocksz=4096,framesz=2048,framecnt=32,qpairs=4”


or show


$ulimit 


There is no enough memory for lock memory.


Hanoh

 xx  --lcores  (0,1,2)@0  -n  4  --log-level  8  --master-lcore  vdev=net_af_packet1000000,iface=eth0,blocksz=593920,framesz=9280,framecnt=256  --no-pci  --no-huge  -m  250 
--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

hanoh haim

unread,
Jun 3, 2018, 6:28:53 AM6/3/18
to viptelate...@gmail.com, TRex Traffic Generator
Hi, 

I've installed TRex on ISR4K with 16GB memory without a problem,(it can run with 0.5-1 too).
there is on interface ("eth1") that is associated with data-path port 
see here:


-Per port stats table
      ports |               0
-----------------------------------------------------------------------------------------
   opackets |        39085954
     obytes |     14142602542
   ipackets |           13848
     ibytes |         1321948
    ierrors |               0
    oerrors |               0
      Tx Bw |       5.90 Mbps

-Global stats enabled
Cpu Utilization : 16.4  %  0.1 Gb/core
Platform_factor : 1.0
Total-Tx        :       5.90 Mbps
Total-Rx        :      17.68 Kbps
Total-PPS       :       2.04 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
drop-rate       :       5.88 Mbps
current time    : 676.1 sec
test duration   : 0.0 sec
*** TRex is shutting down - cause: 'CTRL + C detected'
All cores stopped !!
root@sdavc:/scratch/trex/v2.41# ulimit
unlimited
root@sdavc:/scratch/trex/v2.41# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 61431
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 61431
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
root@sdavc:/scratch/trex/v2.41# more /etc/trex_cfg.yaml
- port_limit : 2
  version    : 2
  interfaces : ["eth1","dummy"]
  low_end    : true


root@sdavc:/scratch/trex/v2.41# ifconfig
eth0      Link encap:Ethernet  HWaddr 54:0e:00:0b:0c:02
          inet6 addr: fe80::560e:ff:fe0b:c02/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:389106 errors:0 dropped:0 overruns:0 frame:0
          TX packets:385542 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:27318008 (27.3 MB)  TX bytes:26998317 (26.9 MB)

eth1      Link encap:Ethernet  HWaddr 00:06:f6:6c:0f:ff
          inet addr:10.56.196.136  Bcast:10.56.196.255  Mask:255.255.255.0
          inet6 addr: fe80::206:f6ff:fe6c:fff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12463843 errors:0 dropped:0 overruns:0 frame:0
          TX packets:39419268 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15215991655 (15.2 GB)  TX bytes:14554225024 (14.5 GB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:2805294 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2805294 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:4197400265 (4.1 GB)  TX bytes:4197400265 (4.1 GB)


For more details see free(1).
root@:/scratch/trex/v2.41# free -h
             total       used       free     shared    buffers     cached
Mem:           15G        12G       3.4G       138M       5.6G       4.4G
-/+ buffers/cache:       2.2G        13G
Swap:           0B         0B         0B
root@:/scratch/trex/v2.41# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Stepping:              7
CPU MHz:               1999.943
BogoMIPS:              3999.88
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K

root@:/scratch/trex/v2.41# more /etc/trex_cfg.yaml
- port_limit : 2
  version    : 2
  interfaces : ["eth1","dummy"]
  low_end    : true


root@:/scratch/trex/v2.41#


To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+unsubscribe@googlegroups.com.

To post to this group, send email to trex...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/97310478-840f-45f2-8918-a06e279833e3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Hanoh
Sent from my iPhone

viptelate...@gmail.com

unread,
Jun 5, 2018, 11:49:57 AM6/5/18
to TRex Traffic Generator
Thank-you! Apologies for the delay.

So I tried modifying the trex_cfg.yaml file as suggested. I am still failing, as follows. I added "--no-scapy-server" after trying to run it without that flag, and it was telling me I needed to add.

I notice you say you have 16GB of memory. I only have 8GB - meaning 4GB goes to IOS-XE and 4GB to GuestShell. I am not sure if that could be the cause? I included the outputs of free -h and lscpu for reference also.

Finally, I don't know where your eth1 interface is coming from. I only have a single eth0 interface - that hooks back into the VirtualPortGroup0 of IOS-XE.

Anyways, thank-you again!

RTR-4#show ip int br | include Virtual
VirtualPortGroup0 192.168.30.1 YES NVRAM up up
RTR-4#

[root@guestshell v2.41]# ifconfig


eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.30.5 netmask 255.255.255.248 broadcast 192.168.30.7
inet6 fe80::5054:ddff:fe15:26b9 prefixlen 64 scopeid 0x20<link>
ether 52:54:dd:15:26:b9 txqueuelen 1000 (Ethernet)

RX packets 142695 bytes 215697428 (205.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56800 bytes 3772114 (3.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)

RX packets 12557 bytes 1331580 (1.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12557 bytes 1331580 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@guestshell v2.41]#
[root@guestshell v2.41]# cat /etc/trex_cfg.yaml


- port_limit : 2
version : 2

#List of interfaces. Change to suit your setup. Use ./dpdk_setup_ports.py -s to see available options

interfaces : ["--vdev=net_af_packet1,iface=eth0,blocksz=4096,framesz=2048,framecnt=32,qpairs=4","dummy"]


low_end: true
port_info : # Port IPs. Change to suit your needs. In case of loopback, you can leave as is.

- ip : 10.10.10.10
default_gw : 192.168.30.1

[root@guestshell v2.41]#
[root@guestshell v2.41]# lscpu


Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6

Model: 58
Model name: Intel(R) Xeon(R) CPU @ 1.80GHz
Stepping: 9
CPU MHz: 1799.909
BogoMIPS: 3599.81


Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K

[root@guestshell v2.41]# free -h
total used free shared buff/cache available
Mem: 3.7G 1.5G 224M 141M 2.0G 2.0G
Swap: 0B 0B 0B
[root@guestshell v2.41]#


[root@guestshell v2.41]# sudo ./t-rex-64-debug -i -v 7

Traceback (most recent call last):

File "scapy_daemon_server", line 204, in <module>
action_funcs[args.action]()
File "scapy_daemon_server", line 156, in restart_daemon
kill_daemon()
File "scapy_daemon_server", line 162, in kill_daemon
pid = get_daemon_pid()
File "scapy_daemon_server", line 97, in get_daemon_pid
raise Exception('Found the connection, but could not determine pid: %s' % conn)
Exception: Found the connection, but could not determine pid: ['1:', 'Unknown', '0.0.0.0', 4507, '0.0.0.0', 0, 'LISTEN', None, None]
Could not start scapy_daemon_server, which is needed by GUI to create packets.
If you don't need it, use --no-scapy-server flag.
ERROR encountered while configuring trex system
[root@guestshell v2.41]#
[root@guestshell v2.41]# sudo ./t-rex-64-debug -i -v 7 --no-scapy-server flag


The ports are bound/configured.
Starting TRex v2.41 please wait ...
Using configuration file /etc/trex_cfg.yaml
port limit : 2
port_bandwidth_gb : 10
if_mask : None
is low-end : 1
thread_per_dual_if : 1

if : --vdev=net_af_packet1,iface=eth0,blocksz=4096,framesz=2048,framecnt=32,qpairs=4, dummy,

xx --lcores (0,1,2)@0 -n 4 --log-level 8 --master-lcore 0 --vdev=net_af_packet1,iface=eth0,blocksz=4096,framesz=2048,framecnt=32,qpairs=4 --no-pci --no-huge -m 250

EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Detected lcore 2 as core 1 on socket 0
EAL: Detected lcore 3 as core 1 on socket 0
EAL: Detected lcore 4 as core 2 on socket 0
EAL: Detected lcore 5 as core 2 on socket 0
EAL: Detected lcore 6 as core 3 on socket 0
EAL: Detected lcore 7 as core 3 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 8 lcore(s)
EAL: Probing VFIO support...
EAL: Module /sys/module/vfio not found! error 2 (No such file or directory)
EAL: VFIO modules not loaded, skipping VFIO support...
EAL: Module /sys/module/vfio not found! error 2 (No such file or directory)
EAL: Setting up physically contiguous memory...
EAL: Started without hugepages support, physical addresses not available

EAL: TSC frequency is ~1800009 KHz
EAL: Master lcore 0 is ready (tid=aa270900;cpuset=[0])
EAL: lcore 2 is ready (tid=97d22700;cpuset=[0])
EAL: lcore 1 is ready (tid=98523700;cpuset=[0])


PMD: Initializing pmd_af_packet for net_af_packet1

PMD: net_af_packet1: AF_PACKET MMAP parameters:
PMD: net_af_packet1: block size 4096
PMD: net_af_packet1: block count 16
PMD: net_af_packet1: frame size 2048
PMD: net_af_packet1: frame count 32
PMD: net_af_packet1: creating AF_PACKET-backed ethdev on numa socket 0
PMD: net_af_packet1: call to mmap failed on AF_PACKET socket for eth0
vdev_probe(): failed to initialize net_af_packet1 device

hanoh haim

unread,
Jun 5, 2018, 12:03:35 PM6/5/18
to viptelate...@gmail.com, TRex Traffic Generator
Hi,
1. TRex requires in this mode about 500MB so your 4GB is not the issue.

2. ”eth1” in my case is another interface that we created that has an IPv4 address and associated with DP physical interface.
I’ve used a running VM with this interface. Have a look into ISR doc for how to create it.
The packets are punted from DP to the VM in case of a match.

3. This might be the reason you can’t work with eth0

Thanks,
Hanoh


--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.

To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

viptelate...@gmail.com

unread,
Jun 5, 2018, 12:55:31 PM6/5/18
to TRex Traffic Generator
Thank-you.

So I can see in the output below that I have 225MB Free. You say there has to be 500MB Free, in order for this to work?

Also, To confirm, were you using GuestShell? Or did you install your own VM? It looks like you might have installed your own VM on the box as a service container, rather than using the CentOS Distribution That Comes (No Installation Required) With Any IOS-XE router that supports GuestShell.
Thanks!

[root@guestshell guestshell]# free -h


total used free shared buff/cache available

Mem: 3.7G 1.5G 225M 141M 2.0G 2.0G
Swap: 0B 0B 0B
[root@guestshell guestshell]#

hanoh haim

unread,
Jun 5, 2018, 2:15:27 PM6/5/18
to viptelate...@gmail.com, TRex Traffic Generator
I’ve used SD-AVC container for my experiment.
I didn’t know there is a default one.
225MB free is not enough.

Thanks,
Hanoh


--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

viptelate...@gmail.com

unread,
Jun 7, 2018, 2:13:07 PM6/7/18
to TRex Traffic Generator
Thank-you!

Is iosxe-sd-avc.2.0.1.ova what you used for SD-AVC inside the ISR-4k?

Do you know if there is any TRex operating mode where that amount of free memory (~225MB) would be sufficient? Or what exactly is the minimum amount of free memory? I can reach out to TAC to see what the options might be for potentially increasing it.

hanoh haim

unread,
Jun 7, 2018, 3:39:06 PM6/7/18
to viptelate...@gmail.com, TRex Traffic Generator
Yes, I’ve used as-avc because it was easier for me as all networking configuration was working  inside the lxc. (I’ve just get inside as root, kill the process and run TRex instead).
It should work with GS with ~500MB free memory and the right VG interface (eth2 in my example).

I’ve tried GS on the same system and I was able to get to bash but I couldn’t add the DP veth interface.

I would look why with your GA with 2GB of total memory you have only ~200MB free for apps. 
Try ‘top’ to figure this out.

I saw in this mailer another question about GS and it seems that TRex works for this guy too.

Thanks,
Hanoh

--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

viptelate...@gmail.com

unread,
Jun 19, 2018, 5:48:43 PM6/19/18
to TRex Traffic Generator
Sorry for the delay. i had been out of office and working with TAC. Did you say there was a thread where someone got TRex working in GuestShell? Can you send that link? i didn't see it earlier.

viptelate...@gmail.com

unread,
Jun 26, 2018, 12:48:57 PM6/26/18
to TRex Traffic Generator
Just wanted to check once more to see if you could share the link where GuestShell was working? Cisco TAC is saying they think it may not be possible, so if you did have an example of it working, would really like to see those details. Thanks!

hanoh haim

unread,
Jun 27, 2018, 5:13:45 AM6/27/18
to viptelate...@gmail.com, TRex Traffic Generator
We created a KVM image with more free memory. 
Again TRex just need "veth" interfaces and 500MB of free memory to work 

thanks,
Hanoh

Reply all
Reply to author
Forward
0 new messages