summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/application_interface.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2017-04-04 23:08:23 -0700
committerFlorin Coras <fcoras@cisco.com>2017-04-13 18:35:50 -0700
commit6cf30adc2cd3aa818e5d97cf71ea8b2fc2aaefa7 (patch)
tree3c4afef26295500b243f3655d96071565c2d2464 /src/vnet/session/application_interface.h
parent0f7d2ff58a63fdc671c1c0954ffe7c6ff0501daa (diff)
Session layer refactoring
Major refactoring of the session layer api - Add attatch api for application binding to the the session layer - Simplify listen/connect calls - Update application CLI - Add transport endpoint to accept callback - Associate segment manager to application and allow for multiple binds/connects per app Additional: - svm fifo cleanup - add fifo free, format fns - add fifo offset enqueue unit test Change-Id: Id93a65047de61afc2bf3d58c9b544339c02065af Signed-off-by: Florin Coras <fcoras@cisco.com> Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'src/vnet/session/application_interface.h')
-rw-r--r--src/vnet/session/application_interface.h45
1 files changed, 33 insertions, 12 deletions
diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h
index a5f2b9a6a1a..2c497531533 100644
--- a/src/vnet/session/application_interface.h
+++ b/src/vnet/session/application_interface.h
@@ -28,6 +28,27 @@ typedef enum _session_api_proto
SESSION_PROTO_UDP
} session_api_proto_t;
+typedef struct _vnet_app_attach_args_t
+{
+ u32 api_client_index;
+ u64 *options;
+ session_cb_vft_t *session_cb_vft;
+
+ /*
+ * Results
+ */
+ u8 *segment_name;
+ u32 segment_name_length;
+ u32 segment_size;
+ u64 app_event_queue_address;
+ u32 app_index;
+} vnet_app_attach_args_t;
+
+typedef struct _vnet_app_detach_args_t
+{
+ u32 app_index;
+} vnet_app_detach_args_t;
+
typedef struct _vnet_bind_args_t
{
union
@@ -40,9 +61,7 @@ typedef struct _vnet_bind_args_t
};
};
- u32 api_client_index;
- u64 *options;
- session_cb_vft_t *session_cb_vft;
+ u32 app_index;
/*
* Results
@@ -60,7 +79,7 @@ typedef struct _vnet_unbind_args_t
char *uri;
u64 handle;
};
- u32 api_client_index;
+ u32 app_index;
} vnet_unbind_args_t;
typedef struct _vnet_connect_args
@@ -74,10 +93,8 @@ typedef struct _vnet_connect_args
session_api_proto_t proto;
};
};
- u32 api_client_index;
+ u32 app_index;
u32 api_context;
- u64 *options;
- session_cb_vft_t *session_cb_vft;
/* Used for redirects */
void *mp;
@@ -86,12 +103,13 @@ typedef struct _vnet_connect_args
typedef struct _vnet_disconnect_args_t
{
u64 handle;
- u32 api_client_index;
+ u32 app_index;
} vnet_disconnect_args_t;
-/* Bind / connect options */
+/* Application attach options */
typedef enum
{
+ APP_EVT_QUEUE_SIZE,
SESSION_OPTIONS_FLAGS,
SESSION_OPTIONS_SEGMENT_SIZE,
SESSION_OPTIONS_ADD_SEGMENT_SIZE,
@@ -99,7 +117,7 @@ typedef enum
SESSION_OPTIONS_TX_FIFO_SIZE,
SESSION_OPTIONS_ACCEPT_COOKIE,
SESSION_OPTIONS_N_OPTIONS
-} session_options_index_t;
+} app_attach_options_index_t;
/** Server can handle delegated connect requests from local clients */
#define SESSION_OPTIONS_FLAGS_USE_FIFO (1<<0)
@@ -109,10 +127,13 @@ typedef enum
#define VNET_CONNECT_REDIRECTED 123
+int vnet_application_attach (vnet_app_attach_args_t * a);
+int vnet_application_detach (vnet_app_detach_args_t * a);
+
int vnet_bind_uri (vnet_bind_args_t *);
-int vnet_unbind_uri (char *uri, u32 api_client_index);
+int vnet_unbind_uri (vnet_unbind_args_t * a);
int vnet_connect_uri (vnet_connect_args_t * a);
-int vnet_disconnect_session (u32 session_index, u32 thread_index);
+int vnet_disconnect_session (vnet_disconnect_args_t * a);
int vnet_bind (vnet_bind_args_t * a);
int vnet_connect (vnet_connect_args_t * a);