Hi all,

I have a need to call vnet_connect() from worker threads but the stack
requires it to be called from the main thread.  For some context, the
project I am working on includes a TCP PEP (Performance Enhancing Proxy). A
PEP can speed up TCP connections over high latency paths, such as
satellites.  The PEP terminates the connection near the client, transports
the data over the high latency path using a proprietary protocol, then
reestablishes the TCP connection to the server on the other end. This
greatly increases TCP ramp-up over high RTTs.  My VPP application runs on
both sides of the high latency path (ie: client and server model).

The PEP is designed to process tens of thousands of simultaneous TCP
connections at a rate of many 100 per second.  So to achieve this I wanted
to distribute the TCP flows across several workers but keep each individual
flow on the same worker.  Currently I have to context switch to the main
thread to perform the connect, but all other operations can be
performed within the worker context (accept(), svm fifo read/write).

I went down the path to try to enable vnet_connect() on workers but there
are asserts() at several places in this path.

Any insight or work-around for this would be appreciated.  I am using VPP
2009.

Thanks,
-Bill
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#18678): https://lists.fd.io/g/vpp-dev/message/18678
Mute This Topic: https://lists.fd.io/mt/80406012/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to