vcl: allow vcl worker index to be set by applications 41/28441/1
authorIJsbrand Wijnands <ice@cisco.com>
Mon, 4 May 2020 15:57:33 +0000 (17:57 +0200)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Tue, 18 Aug 2020 09:54:33 +0000 (09:54 +0000)
When using vppcom_session* apis to setup TCP sessions in applications build outside of the VPP repository, it is necessary to set the worker_index explicitly when these apis are called from the none-VCL worker threads. An example is when data is to be sent to the TCP session that is originated from a different thread, like the main program thread or from the bin api thread. This change allows the application to set it.

Type: fix

Signed-off-by: IJsbrand Wijnands <ice@cisco.com>
Change-Id: I37f3654a49ea9a8cf3a0d3d0e672583018c12299
(cherry picked from commit 6017ff0dd7a27c062d0ad4687bfc70a69747ac55)

src/vcl/vppcom.c
src/vcl/vppcom.h

index a50d0ab..0b61c5e 100644 (file)
@@ -3635,6 +3635,12 @@ vppcom_worker_unregister (void)
   vcl_set_worker_index (~0);
 }
 
+void
+vppcom_worker_index_set (int index)
+{
+  vcl_set_worker_index (index);
+}
+
 int
 vppcom_worker_index (void)
 {
index 6261303..7714430 100644 (file)
@@ -333,6 +333,11 @@ extern void vppcom_worker_unregister (void);
  */
 extern int vppcom_worker_index (void);
 
+/**
+ * Set current worker index
+ */
+extern void vppcom_worker_index_set (int);
+
 /**
  * Returns the current worker's message queues epoll fd
  *