session: builtin app rx notifications regardless of state 53/22153/2
authorFlorin Coras <fcoras@cisco.com>
Thu, 19 Sep 2019 15:19:44 +0000 (08:19 -0700)
committerJohn Lo <loj@cisco.com>
Thu, 19 Sep 2019 17:49:33 +0000 (17:49 +0000)
Type: feature

Provide rx notifications to builtin apps even after disconnect.
Consequently tcp connections that are past FIN_WAIT_1 can still receive
rx notifications.

This is not currently supported for external applications.

Change-Id: I529da7f7120b0e7c62c5026ac71f86d6b5196cf4
Signed-off-by: Florin Coras <fcoras@cisco.com>
src/vnet/session/application_worker.c

index 2879368..30edf3c 100644 (file)
@@ -550,13 +550,15 @@ app_send_io_evt_rx (app_worker_t * app_wrk, session_t * s)
   svm_msg_q_msg_t msg;
   svm_msg_q_t *mq;
 
+  if (app_worker_application_is_builtin (app_wrk))
+    return app_worker_builtin_rx (app_wrk, s);
+
+  /* Make sure the session is in established state within external apps.
+   * Should be removed once we confirm closes to apps */
   if (PREDICT_FALSE (s->session_state != SESSION_STATE_READY
                     && s->session_state != SESSION_STATE_LISTENING))
     return 0;
 
-  if (app_worker_application_is_builtin (app_wrk))
-    return app_worker_builtin_rx (app_wrk, s);
-
   if (svm_fifo_has_event (s->rx_fifo))
     return 0;