mtcp-stack / mtcp

mTCP: A Highly Scalable User-level TCP Stack for Multicore Systems
Other
2k stars 436 forks source link

No route to x.x.x.x when running `perf` example #333

Open Djsouls opened 1 year ago

Djsouls commented 1 year ago

I'm trying to run the perf example inside mtcp/apps/perf, however I can't figure it out on how to properly send the requests, all I get is a error "No route to x.x.x.x". My setup are two computer nodes running at Emulab testbed. Bellow are the outputs for ifconfig on both machines and the arp.conf and route.conf files.

Execution of python script in Node 0

xxx@node0:/tmp/mtcp/apps/perf$ python recv.py wait 10.10.1.1 8080
Server ready...         

Execution of ./client binary in Node 1

xxx@node1:/tmp/mtcp/apps/perf$ sudo ./client send 10.10.1.1 8080 10                                                      [DEBUG] Send mode                                                                                                             Configuration updated by mtcp_setconf().
[DEBUG] Initializing mtcp...
---------------------------------------------------------------------------------
Loading mtcp configuration from : client.conf
Loading interface setting
EAL: Detected 32 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0000:04:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
Total number of attached devices: 1
Interface name: dpdk0
EAL: Auto-detected process type: PRIMARY
Configurations:
Number of CPU cores available: 1
Number of CPU cores to use: 1
Maximum number of concurrency per core: 10000
Maximum number of preallocated buffers per core: 10000
Receive buffer size: 16384
Send buffer size: 2048
TCP timeout seconds: 30
TCP timewait seconds: 0
NICs to print statistics:
---------------------------------------------------------------------------------                                             Interfaces:
name: dpdk0, ifindex: 0, hwaddr: A0:36:9F:6B:FD:85, ipaddr: 10.0.0.44, netmask: 255.255.255.0
Number of NIC queues: 1
---------------------------------------------------------------------------------                                             Loading routing configurations from : config/route.conf
Routes:
Destination: 10.0.0.0/24, Mask: 255.255.255.0, Masked: 10.0.0.0, Route: ifdx-0
Destination: 10.0.0.44/24, Mask: 255.255.255.0, Masked: 10.0.0.0, Route: ifdx-0
Destination: 10.10.1.2/24, Mask: 255.255.255.0, Masked: 10.10.1.0, Route: ifdx--1
---------------------------------------------------------------------------------
Loading ARP table from : config/arp.conf
ARP Table:
IP addr: 10.10.1.1, dst_hwaddr: A0:36:9F:5F:56:10
---------------------------------------------------------------------------------                                             Initializing port 0... done:

Checking link status.....................................done
Port 0 Link Up - speed 1000 Mbps - full-duplex
Configuration updated by mtcp_setconf().
[DEBUG] Creating thread context...
CPU 0: initialization finished.
[mtcp_create_context:1359] CPU 0 is now the master thread.
[DEBUG] Creating pool of TCP source ports...
[GetOutputInterface:  33] [WARNING] No route to 10.10.1.1
[DEBUG] Creating epoller...
[DEBUG] Creating socket...
[DEBUG] Connecting socket...
[GetOutputInterface:  33] [WARNING] No route to 10.10.1.1
mtcp_connect failed.
mtcp_connect: Invalid argument
xxx@node1:/tmp/mtcp/apps/perf$ 

Node0 ifconfig

dpdk0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.43  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::a236:9fff:fe5f:5611  prefixlen 64  scopeid 0x20<link>
        ether a0:36:9f:5f:56:11  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
           inet 10.10.1.1  netmask 255.255.255.0  broadcast 10.10.1.255
           inet6 fe80::a236:9fff:fe5f:5610  prefixlen 64  scopeid 0x20<link>
           ether a0:36:9f:5f:56:10  txqueuelen 1000  (Ethernet)
           RX packets 92  bytes 8756 (8.7 KB)
           RX errors 0  dropped 0  overruns 0  frame 0
           TX packets 195  bytes 15012 (15.0 KB)
           TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
           device memory 0x96e00000-96efffff                                                           

Node1 ifconfig

dpdk0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.44  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::a236:9fff:fe6b:fd85  prefixlen 64  scopeid 0x20<link>
        ether a0:36:9f:6b:fd:85  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19  bytes 1596 (1.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp4s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
           inet 10.10.1.2  netmask 255.255.255.0  broadcast 10.10.1.255
           inet6 fe80::a236:9fff:fe6b:fd84  prefixlen 64  scopeid 0x20<link>
           ether a0:36:9f:6b:fd:84  txqueuelen 1000  (Ethernet)
           RX packets 180  bytes 13524 (13.5 KB)
           RX errors 0  dropped 0  overruns 0  frame 0
           TX packets 108  bytes 9992 (9.9 KB)
           TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
           device memory 0x96d00000-96dfffff

My arp.conf file

ARP_ENTRY 1
10.10.1.1/24 a0:36:9f:5f:56:10 

My route.conf file

ROUTES 2
10.0.0.44/24 dpdk0
10.10.1.2/24 enp4s0f0   
Djsouls commented 1 year ago

@eunyoung14 @ajamshed Maybe some of you could help me out here