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.88k stars 901 forks source link

Multi Process Support #277

Open iyerravi opened 6 years ago

iyerravi commented 6 years ago

Hello,

I am looking for multi process support in fstack where in i want to run say 2 Fstack processes and have an ipc (user space) going through them.

So Process A (primary) will rx all packets from nic using fstack and freebsd ip stack and then have an ipc channel(say a pipe) with another fstack process B and give the same packet buffer to the process B. Idea is to avoid copies. I am looking for an infrastructure around this. I know DPDK supports multiple processes and one can have rings between two processes to exchanges buffers. Any pointers around this will be of great help.

Thanks

jfb8856606 commented 6 years ago

We are modifying it, but not yet completed, and its performance will be reduced.

iyerravi commented 6 years ago

Thanks for the update.

WoolenWang commented 5 years ago

infrastructure around this is good , make one process running freebsd ip stack is act like the linux kernel (we call that user space kernel [usk])

other process can use the socket api just as normal api but it communicate with the [usk] process with share memory and rte_ring and no memcpy.

that will be very great if having an infrastructure like this

@jfb8856606

jfb8856606 commented 5 years ago

@naturlich
No completion date.

Now, it can still only be implemented using ff_regist_packet_dispatcher() registration callback function.