summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
fe97da3)
Change-Id: I675f7090fa6b2ffdfb4ee748df858bfb7e39ce5a
Signed-off-by: Florin Coras <fcoras@cisco.com>
+static int
+ct_custom_tx (void *session)
+{
+ session_t *s = (session_t *) session;
+ if (session_has_transport (s))
+ return 0;
+ return ct_session_tx (s);
+}
+
static u8 *
format_ct_listener (u8 * s, va_list * args)
{
static u8 *
format_ct_listener (u8 * s, va_list * args)
{
.connect = ct_session_connect,
.close = ct_session_close,
.get_connection = ct_session_get,
.connect = ct_session_connect,
.close = ct_session_close,
.get_connection = ct_session_get,
+ .custom_tx = ct_custom_tx,
.tx_type = TRANSPORT_TX_INTERNAL,
.service_type = TRANSPORT_SERVICE_APP,
.format_listener = format_ct_listener,
.tx_type = TRANSPORT_TX_INTERNAL,
.service_type = TRANSPORT_SERVICE_APP,
.format_listener = format_ct_listener,
-static int
-mq_app_tx_callback (session_t * s)
-{
- if (session_has_transport (s))
- return 0;
- return ct_session_tx (s);
-}
-
static session_cb_vft_t session_mq_cb_vft = {
.session_accept_callback = mq_send_session_accepted_cb,
.session_disconnect_callback = mq_send_session_disconnected_cb,
.session_connected_callback = mq_send_session_connected_cb,
.session_reset_callback = mq_send_session_reset_cb,
static session_cb_vft_t session_mq_cb_vft = {
.session_accept_callback = mq_send_session_accepted_cb,
.session_disconnect_callback = mq_send_session_disconnected_cb,
.session_connected_callback = mq_send_session_connected_cb,
.session_reset_callback = mq_send_session_reset_cb,
- .builtin_app_tx_callback = mq_app_tx_callback,
.add_segment_callback = send_add_segment_callback,
.del_segment_callback = send_del_segment_callback,
};
.add_segment_callback = send_add_segment_callback,
.del_segment_callback = send_del_segment_callback,
};
session_event_t * e, int *n_tx_pkts)
{
session_t *s = wrk->ctx.s;
session_event_t * e, int *n_tx_pkts)
{
session_t *s = wrk->ctx.s;
if (PREDICT_FALSE (s->session_state >= SESSION_STATE_TRANSPORT_CLOSED))
return 0;
if (PREDICT_FALSE (s->session_state >= SESSION_STATE_TRANSPORT_CLOSED))
return 0;
- app = application_get (s->t_app_index);
svm_fifo_unset_event (s->tx_fifo);
svm_fifo_unset_event (s->tx_fifo);
- return app->cb_fns.builtin_app_tx_callback (s);
+ return transport_custom_tx (session_get_transport_proto (s), s);
}
always_inline session_t *
}
always_inline session_t *
u32 (*tx_fifo_offset) (transport_connection_t * tc);
void (*update_time) (f64 time_now, u8 thread_index);
void (*flush_data) (transport_connection_t *tconn);
u32 (*tx_fifo_offset) (transport_connection_t * tc);
void (*update_time) (f64 time_now, u8 thread_index);
void (*flush_data) (transport_connection_t *tconn);
+ int (*custom_tx) (void *session);
/*
* Connection retrieval
/*
* Connection retrieval
return tp_vfts[tp].get_half_open (conn_index);
}
return tp_vfts[tp].get_half_open (conn_index);
}
+static inline int
+transport_custom_tx (transport_proto_t tp, void *s)
+{
+ return tp_vfts[tp].custom_tx (s);
+}
+
void transport_register_protocol (transport_proto_t transport_proto,
const transport_proto_vft_t * vft,
fib_protocol_t fib_proto, u32 output_node);
void transport_register_protocol (transport_proto_t transport_proto,
const transport_proto_vft_t * vft,
fib_protocol_t fib_proto, u32 output_node);
return tls_ctx_init_server (ctx);
}
return tls_ctx_init_server (ctx);
}
-int
-tls_app_tx_callback (session_t * app_session)
-{
- tls_ctx_t *ctx;
- if (PREDICT_FALSE (app_session->session_state == SESSION_STATE_CLOSED))
- return 0;
- ctx = tls_ctx_get (app_session->connection_index);
- tls_ctx_write (ctx, app_session);
- return 0;
-}
-
int
tls_app_rx_callback (session_t * tls_session)
{
int
tls_app_rx_callback (session_t * tls_session)
{
.add_segment_callback = tls_add_segment_callback,
.del_segment_callback = tls_del_segment_callback,
.builtin_app_rx_callback = tls_app_rx_callback,
.add_segment_callback = tls_add_segment_callback,
.del_segment_callback = tls_del_segment_callback,
.builtin_app_rx_callback = tls_app_rx_callback,
- .builtin_app_tx_callback = tls_app_tx_callback,
return &ctx->connection;
}
return &ctx->connection;
}
+int
+tls_custom_tx_callback (void *session)
+{
+ session_t *app_session = (session_t *) session;
+ tls_ctx_t *ctx;
+ if (PREDICT_FALSE (app_session->session_state == SESSION_STATE_CLOSED))
+ return 0;
+ ctx = tls_ctx_get (app_session->connection_index);
+ tls_ctx_write (ctx, app_session);
+ return 0;
+}
+
u8 *
format_tls_ctx (u8 * s, va_list * args)
{
u8 *
format_tls_ctx (u8 * s, va_list * args)
{
.stop_listen = tls_stop_listen,
.get_connection = tls_connection_get,
.get_listener = tls_listener_get,
.stop_listen = tls_stop_listen,
.get_connection = tls_connection_get,
.get_listener = tls_listener_get,
+ .custom_tx = tls_custom_tx_callback,
.tx_type = TRANSPORT_TX_INTERNAL,
.service_type = TRANSPORT_SERVICE_APP,
.format_connection = format_tls_connection,
.tx_type = TRANSPORT_TX_INTERNAL,
.service_type = TRANSPORT_SERVICE_APP,
.format_connection = format_tls_connection,