X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fapplication_interface.h;h=1eefb0c38600db6e58b3010cdaa02b6a690abaf9;hb=ab2f6dbf9f7b7164a9810f4c80c8abf8463e42ad;hp=ba6d2660d7f9d933faea1c4bed4472082cd66bad;hpb=993683150202254c6ba8dd43e087a7229edd5d4c;p=vpp.git diff --git a/src/vnet/session/application_interface.h b/src/vnet/session/application_interface.h index ba6d2660d7f..1eefb0c3860 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 wrk_map_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; @@ -220,6 +209,22 @@ typedef struct #undef _ } app_session_t; +typedef struct session_bound_msg_ +{ + u32 context; + u64 handle; + i32 retval; + u8 lcl_is_ip4; + u8 lcl_ip[16]; + u16 lcl_port; + u64 rx_fifo; + u64 tx_fifo; + u64 vpp_evt_q; + u32 segment_size; + u8 segment_name_length; + u8 segment_name[128]; +} __clib_packed session_bound_msg_t; + typedef struct session_accepted_msg_ { u32 context;