Hi, We really only support active opens from main thread so the asserts are not wrong. I’ve done a quick fix here [1]. Let me know if it works.
You second observation is valid so feel free to push a patch or let me know if you want me to push one. Thanks, Florin [1] https://gerrit.fd.io/r/#/c/12517/ <https://gerrit.fd.io/r/#/c/12517/> > On May 9, 2018, at 8:17 PM, duct...@viettel.com.vn wrote: > > Hi, > > I'm trying to use the proxy app (on vnet/session-apps). > The code works fine if I run vpp with 1 thread (just master). With more than > 1 thread, the code fails because of some assertions such as: > > - Function transport_alloc_local_port - vnet/session/transport.c > 237 /* Only support active opens from thread 0 */ > 238 ASSERT (vlib_get_thread_index () == 0); > - Function tcp_half_open_connection_new - vnet/tcp/tcp.c > 144 tcp_connection_t *tc = 0; > 145 ASSERT (vlib_get_thread_index () == 0); > 146 pool_get (tm->half_open_connections, tc); > - ... > Removing all those assertions make the code works. But I'm not sure this is a > good way to solve it. > > Is there any particular reason for only supporting active open on master > thread? > > Another things, on the proxy apps, I think those lines of code should be > (function delete_proxy_session - vnet/session-apps/proxy.c): > > 72 if (ps->vpp_active_open_handle != ~0) > 73 active_open_session = session_get_from_handle > 74 (ps->vpp_active_open_handle); > 75 else > 76 active_open_session = 0; > > instead of > > 72 if (ps->vpp_server_handle != ~0) > 73 active_open_session = session_get_from_handle > 74 (ps->vpp_server_handle); > 75 else > 76 active_open_session = 0; > Thanks, > DucTM > >