summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/application_interface.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-08-12 23:50:53 -0700
committerDamjan Marion <dmarion@me.com>2018-08-24 19:05:25 +0000
commit1553197f9a1a3258b6954adeb9536bbe0191683d (patch)
tree91f26e2e23da3971741238194474d5e5ab0ae792 /src/vnet/session/application_interface.h
parentf8b8586b699bae9e786726f2697c3e642d904c61 (diff)
session: add support for multiple app workers
Refactor session layer to support multiple workers per application. Change-Id: Ie67354688d396449d14bbbb8c56050206e307cd8 Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/application_interface.h')
-rw-r--r--src/vnet/session/application_interface.h37
1 files changed, 13 insertions, 24 deletions
diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h
index ba6d2660d7f..13ec73adf0f 100644
--- a/src/vnet/session/application_interface.h
+++ b/src/vnet/session/application_interface.h
@@ -23,27 +23,11 @@
typedef struct _vnet_app_attach_args_t
{
- /** Binary API client index */
- u32 api_client_index;
-
- /** Application name. Used by builtin apps */
- u8 *name;
-
- /** Application and segment manager options */
- u64 *options;
-
- /** ID of the namespace the app has access to */
- u8 *namespace_id;
-
- /** Session to application callback functions */
- session_cb_vft_t *session_cb_vft;
-
- /*
- * Results
- */
- ssvm_private_t *segment;
+#define _(_type, _name) _type _name;
+ foreach_app_init_args
+#undef _
+ ssvm_private_t * segment;
svm_msg_q_t *app_evt_q;
- u32 app_index;
} vnet_app_attach_args_t;
typedef struct _vnet_app_detach_args_t
@@ -55,11 +39,13 @@ typedef struct _vnet_bind_args_t
{
union
{
- char *uri;
+ session_endpoint_extended_t sep_ext;
session_endpoint_t sep;
+ char *uri;
};
u32 app_index;
+ u32 wrk_map_index;
/*
* Results
@@ -75,19 +61,22 @@ typedef struct _vnet_unbind_args_t
union
{
char *uri;
- u64 handle;
+ u64 handle; /**< Session handle */
};
- u32 app_index;
+ u32 app_index; /**< Owning application index */
+ u32 app_wrk_index; /**< App's local pool worker index */
} vnet_unbind_args_t;
typedef struct _vnet_connect_args
{
union
{
+ session_endpoint_extended_t sep_ext;
+ session_endpoint_t sep;
char *uri;
- session_endpoint_extended_t sep;
};
u32 app_index;
+ u32 wrk_map_index;
u32 api_context;
session_handle_t session_handle;