vcl: allow vcl worker index to be set by applications 64/26864/3
authorPivo <iwijnand@cisco.com>
Mon, 4 May 2020 15:57:33 +0000 (17:57 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 4 May 2020 19:03:25 +0000 (19:03 +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

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

index 38b85be..6b690e5 100644 (file)
@@ -3830,6 +3830,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 d2a5a10..902e9ea 100644 (file)
@@ -329,6 +329,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
  *