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'
--
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.
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!
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/4e2bf724-51c5-40a4-a967-0c3c595cb08d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
- port_limit: 2 version: 2 interfaces: ['ethX', 'dummy']
low_end: true
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]#
--
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/fb6ebfc9-14c7-4d47-8ad3-bf703f76902a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
[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)
--
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/c743938a-b247-43ad-9664-7a21f57c8388%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
[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
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.
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.
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.
--HanohSent from my iPhone
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
--
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/35da9c71-4ea8-4d0e-bb5a-518a2f902ecc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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]#
--
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/a1e405d6-b588-4888-8275-f80f61223608%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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.
--
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/7f02ad73-a5b3-4017-95bb-ed695fa3bb7e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.