diff options
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/CMakeLists.txt | 26 | ||||
-rw-r--r-- | src/vnet/session/application.c | 3 | ||||
-rw-r--r-- | src/vnet/session/application_interface.c | 1 | ||||
-rwxr-xr-x | src/vnet/session/session_api.c | 1 |
4 files changed, 30 insertions, 1 deletions
diff --git a/src/vnet/CMakeLists.txt b/src/vnet/CMakeLists.txt index 549b3ac3c4a..9906a40fcc4 100644 --- a/src/vnet/CMakeLists.txt +++ b/src/vnet/CMakeLists.txt @@ -1341,6 +1341,10 @@ list(APPEND VNET_HEADERS list(APPEND VNET_API_FILES bier/bier.api) +############################################################################## +# VNET Library +############################################################################## + add_vpp_library(vnet SOURCES ${VNET_SOURCES} MULTIARCH_SOURCES ${VNET_MULTIARCH_SOURCES} @@ -1349,3 +1353,25 @@ add_vpp_library(vnet LINK_LIBRARIES vppinfra svm vlib ${OPENSSL_LIBRARIES} DEPENDS api_headers ) + +############################################################################## +# Session echo apps +############################################################################## + +option(VPP_BUILD_SESSION_ECHO_APPS "Build session echo apps." ON) +if(VPP_BUILD_SESSION_ECHO_APPS) + add_vpp_executable(tcp_echo + SOURCES ../tests/vnet/session/tcp_echo.c + LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt + DEPENDS api_headers + NO_INSTALL + ) + add_vpp_executable(udp_echo + SOURCES ../tests/vnet/session/udp_echo.c + LINK_LIBRARIES vlibmemoryclient svm vppinfra pthread m rt + DEPENDS api_headers + NO_INSTALL + ) +endif(VPP_BUILD_SESSION_ECHO_APPS) + +##############################################################################
\ No newline at end of file diff --git a/src/vnet/session/application.c b/src/vnet/session/application.c index b58e73eb4f8..7d0fd5567a3 100644 --- a/src/vnet/session/application.c +++ b/src/vnet/session/application.c @@ -1267,9 +1267,10 @@ app_send_io_evt_rx (app_worker_t * app_wrk, stream_session_t * s, u8 lock) evt->fifo = s->server_rx_fifo; evt->event_type = FIFO_EVENT_APP_RX; + (void) svm_fifo_set_event (s->server_rx_fifo); + if (app_enqueue_evt (mq, &msg, lock)) return -1; - (void) svm_fifo_set_event (s->server_rx_fifo); return 0; } diff --git a/src/vnet/session/application_interface.c b/src/vnet/session/application_interface.c index 6b012bb845d..1f094ef126b 100644 --- a/src/vnet/session/application_interface.c +++ b/src/vnet/session/application_interface.c @@ -546,6 +546,7 @@ vnet_bind_uri (vnet_bind_args_t * a) rv = parse_uri (a->uri, &sep); if (rv) return rv; + sep.app_wrk_index = 0; clib_memcpy (&a->sep_ext, &sep, sizeof (sep)); return vnet_bind_inline (a); } diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 05b3bb89f0c..b88438c267f 100755 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -964,6 +964,7 @@ vl_api_connect_uri_t_handler (vl_api_connect_uri_t * mp) app = application_lookup (mp->client_index); if (app) { + memset (a, 0, sizeof (*a)); a->uri = (char *) mp->uri; a->api_context = mp->context; a->app_index = app->app_index; |