F-Stack / f-stack

F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
http://www.f-stack.org
Other
3.87k stars 898 forks source link

Ubuntu 20.04: fstack_nginx on AWS EC2 unable to access http port - is uio not working? #648

Open zenmurugan opened 2 years ago

zenmurugan commented 2 years ago

Hi,

I have installed f-stack (tried both dev version and v1.21.1) on ubuntu 20.04 in AWS EC2 instance following the steps mentioned in quick start doc.

I did the insmod of igb_uio.ko and rte_kni.ko carrier=on and binded the NICs to DPDK driver (gib_uio)

$ sudo dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
0000:00:06.0 'Elastic Network Adapter (ENA) ec20' drv=igb_uio unused=ena,vfio-pci
0000:00:07.0 'Elastic Network Adapter (ENA) ec20' drv=igb_uio unused=ena,vfio-pci

Network devices using kernel driver
===================================
0000:00:05.0 'Elastic Network Adapter (ENA) ec20' if=ens5 drv=ena unused=igb_uio,vfio-pci *Active*

I also, have compiled nginx and configured f-stack.conf with IP address, netmask, broadcast and gw address. Also configured nginx.conf to listen in 8080 port.

Started nginx and I could see the below logs in the errors.log file

EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: 6 hugepages of size 1073741824 reserved, but no mounted hugetlbfs found for that size

fstack netstat shows the

$ sudo ./sbin/netstat -an
EAL:   Invalid NUMA socket, default to 0
EAL:   Invalid NUMA socket, default to 0
EAL:   Invalid NUMA socket, default to 0
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 *.8080                   *.*                    LISTEN
udp4       0      0 *.*                    *.*
udp4       0      0 *.*                    *.*

Now, when accessing the web url, it is not getting connected

$ curl -v  http://172.XX.XX.XX:8080
*   Trying 172.XX.XX.XX:8080...
* TCP_NODELAY set 

I tried other with Seastar which uses VFIO and I was able to access the web server. Wondering if I am missing something with f-stack.

Questions:

Your help would be greatly appreciated. Thanks !

jfb8856606 commented 2 years ago

Please show the f-stack.conf infomation.