Hi Bill, 

Welcome to the project and thanks for the report! Agreed, that is a bug in 
non-default scenarios like yours where custom fifo tuning is required. Would 
you be willing to push a patch or should I do it?

Regards,
Florin


> On Nov 11, 2020, at 10:33 AM, Bill Vaughan <[email protected]> wrote:
> 
> Hi all,
> 
> I am working on a custom VPP plugin and found what I think may be a bug in 
> application_worker.c. I don't really have a question, just wanted to point 
> this out in case it really is a bug. There is always a chance I am doing 
> something wrong, but everything seems to be working fine with the fix.   I am 
> running the latest 2009.
> 
> My plugin, among other things, accepts and initiates TCP connections (it has 
> client and server functionality).  I am using vnet directly via 
> vnet_application_attach() , vnet_connect(), etc. 
> 
> Development is going great so far but one of the things I wanted to do on the 
> client and server side is custom fifo handling (via the custom fifo 
> callback).  That works fine on the server side, but I was never getting the 
> callback on the client side.  I am registering both the client and server as 
> a builtin app (APP_OPTIONS_FLAGS_IS_BUILTIN), but not using the proxy flag.
> 
> To get the client side to call my custom fifo handler, I had to make the 
> following change. application_is_builtin_proxy() returns false so the fifo 
> callback flag was never getting set.
> 
> 
> >git diff -U7 ../../src/vnet/session/application_worker.c
> diff --git a/src/vnet/session/application_worker.c 
> b/src/vnet/session/application_worker.c
> index 17aeb57d4..ec4a97852 100644
> --- a/src/vnet/session/application_worker.c
> +++ b/src/vnet/session/application_worker.c
> @@ -383,24 +383,27 @@ app_worker_accept_notify (app_worker_t * app_wrk, 
> session_t * s)
> 
>  int
>  app_worker_init_connected (app_worker_t * app_wrk, session_t * s)
>  {
>    application_t *app = application_get (app_wrk->app_index);
>    segment_manager_t *sm;
> 
> +
> +  if ( app->cb_fns.fifo_tuning_callback )
> +    {
> +      s->flags |= SESSION_F_CUSTOM_FIFO_TUNING;
> +    }
> +
>    /* Allocate fifos for session, unless the app is a builtin proxy */
>    if (!application_is_builtin_proxy (app))
>      {
>        sm = app_worker_get_connect_segment_manager (app_wrk);
>        return app_worker_alloc_session_fifos (sm, s);
>      }
> 
> -  if (app->cb_fns.fifo_tuning_callback)
> -    s->flags |= SESSION_F_CUSTOM_FIFO_TUNING;
> -
>    return 0;
>  }
> 
> Thanks for maintaining a great project.
> 
> -Bill
> 
> 
> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#17998): https://lists.fd.io/g/vpp-dev/message/17998
Mute This Topic: https://lists.fd.io/mt/78189700/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to