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
> 
> 

Reply via email to