summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/CMakeLists.txt26
-rw-r--r--src/vnet/session/application.c3
-rw-r--r--src/vnet/session/application_interface.c1
-rwxr-xr-xsrc/vnet/session/session_api.c1
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;