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 (#17997): https://lists.fd.io/g/vpp-dev/message/17997
Mute This Topic: https://lists.fd.io/mt/78189700/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