FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
quic.c File Reference
+ Include dependency graph for quic.c:

Go to the source code of this file.

Data Structures

struct  quicly_ctx_data_
 

Typedefs

typedef struct quicly_ctx_data_ quicly_ctx_data_t
 

Functions

static void quic_update_timer (quic_ctx_t *ctx)
 
static u32 quic_ctx_alloc (u32 thread_index)
 
static void quic_ctx_free (quic_ctx_t *ctx)
 
static quic_ctx_tquic_ctx_get (u32 ctx_index, u32 thread_index)
 
static quic_ctx_tquic_ctx_get_if_valid (u32 ctx_index, u32 thread_index)
 
static quic_ctx_tquic_get_conn_ctx (quicly_conn_t *conn)
 
static void quic_store_conn_ctx (quicly_conn_t *conn, quic_ctx_t *ctx)
 
static int quic_ctx_is_stream (quic_ctx_t *ctx)
 
static int quic_ctx_is_listener (quic_ctx_t *ctx)
 
static session_tget_stream_session_from_stream (quicly_stream_t *stream)
 
static void quic_make_connection_key (clib_bihash_kv_16_8_t *kv, const quicly_cid_plaintext_t *id)
 
static int quic_sendable_packet_count (session_t *udp_session)
 
static quicly_context_t * quic_get_quicly_ctx_from_ctx (quic_ctx_t *ctx)
 
static quicly_context_t * quic_get_quicly_ctx_from_udp (u64 udp_session_handle)
 
static void quic_ack_rx_data (session_t *stream_session)
 
static void quic_disconnect_transport (quic_ctx_t *ctx)
 
static void quic_connection_delete (quic_ctx_t *ctx)
 
static void quic_connection_closed (quic_ctx_t *ctx)
 Called when quicly return an error This function interacts tightly with quic_proto_on_close. More...
 
static int quic_send_datagram (session_t *udp_session, quicly_datagram_t *packet)
 
static int quic_send_packets (quic_ctx_t *ctx)
 
static void quic_on_stream_destroy (quicly_stream_t *stream, int err)
 
static int quic_on_stop_sending (quicly_stream_t *stream, int err)
 
static int quic_on_receive_reset (quicly_stream_t *stream, int err)
 
static int quic_on_receive (quicly_stream_t *stream, size_t off, const void *src, size_t len)
 
void quic_fifo_egress_shift (quicly_stream_t *stream, size_t delta)
 
int quic_fifo_egress_emit (quicly_stream_t *stream, size_t off, void *dst, size_t *len, int *wrote_all)
 
static void quic_accept_stream (void *s)
 
static int quic_on_stream_open (quicly_stream_open_t *self, quicly_stream_t *stream)
 
static void quic_on_closed_by_peer (quicly_closed_by_peer_t *self, quicly_conn_t *conn, int code, uint64_t frame_type, const char *reason, size_t reason_len)
 
static int64_t quic_get_thread_time (u8 thread_index)
 
static int64_t quic_get_time (quicly_now_t *self)
 
static u32 quic_set_time_now (u32 thread_index)
 
static void quic_update_time (f64 now, u8 thread_index)
 
static void quic_timer_expired (u32 conn_index)
 
static void quic_expired_timers_dispatch (u32 *expired_timers)
 
static int quic_encrypt_ticket_cb (ptls_encrypt_ticket_t *_self, ptls_t *tls, int is_encrypt, ptls_buffer_t *dst, ptls_iovec_t src)
 
static void quic_store_quicly_ctx (application_t *app, u8 is_client)
 
static int quic_connect_new_stream (session_t *quic_session, u32 opaque)
 
static int quic_connect_new_connection (session_endpoint_cfg_t *sep)
 
static int quic_connect (transport_endpoint_cfg_t *tep)
 
static void quic_proto_on_close (u32 ctx_index, u32 thread_index)
 
static u32 quic_start_listen (u32 quic_listen_session_index, transport_endpoint_t *tep)
 
static u32 quic_stop_listen (u32 lctx_index)
 
static transport_connection_tquic_connection_get (u32 ctx_index, u32 thread_index)
 
static transport_connection_tquic_listener_get (u32 listener_index)
 
static u8format_quic_ctx (u8 *s, va_list *args)
 
static u8format_quic_connection (u8 *s, va_list *args)
 
static u8format_quic_half_open (u8 *s, va_list *args)
 
static u8format_quic_listener (u8 *s, va_list *args)
 
static void quic_build_sockaddr (struct sockaddr *sa, socklen_t *salen, ip46_address_t *addr, u16 port, u8 is_ip4)
 
static int quic_on_client_connected (quic_ctx_t *ctx)
 
static void quic_receive_connection (void *arg)
 
static void quic_transfer_connection (u32 ctx_index, u32 dest_thread)
 
static int quic_session_connected_callback (u32 quic_app_index, u32 ctx_index, session_t *udp_session, u8 is_fail)
 
static void quic_session_disconnect_callback (session_t *s)
 
static void quic_session_reset_callback (session_t *s)
 
static void quic_session_migrate_callback (session_t *s, session_handle_t new_sh)
 
int quic_session_accepted_callback (session_t *udp_session)
 
static int quic_add_segment_callback (u32 client_index, u64 seg_handle)
 
static int quic_del_segment_callback (u32 client_index, u64 seg_handle)
 
static int quic_custom_app_rx_callback (transport_connection_t *tc)
 
static int quic_custom_tx_callback (void *s, u32 max_burst_size)
 
static int quic_find_packet_ctx (u32 *ctx_thread, u32 *ctx_index, struct sockaddr *sa, socklen_t salen, quicly_decoded_packet_t *packet, u32 caller_thread_index)
 
static int quic_receive (quic_ctx_t *ctx, quicly_conn_t *conn, quicly_decoded_packet_t packet)
 
static int quic_create_quic_session (quic_ctx_t *ctx)
 
static int quic_create_connection (u32 ctx_index, struct sockaddr *sa, socklen_t salen, quicly_decoded_packet_t packet)
 
static int quic_reset_connection (u64 udp_session_handle, struct sockaddr *sa, socklen_t salen, quicly_decoded_packet_t packet)
 
static int quic_app_rx_callback (session_t *udp_session)
 
static void quic_common_get_transport_endpoint (quic_ctx_t *ctx, transport_endpoint_t *tep, u8 is_lcl)
 
static void quic_get_transport_listener_endpoint (u32 listener_index, transport_endpoint_t *tep, u8 is_lcl)
 
static void quic_get_transport_endpoint (u32 ctx_index, u32 thread_index, transport_endpoint_t *tep, u8 is_lcl)
 
static void quic_register_cipher_suite (quic_crypto_engine_t type, ptls_cipher_suite_t **ciphers)
 
static clib_error_tquic_init (vlib_main_t *vm)
 
static clib_error_tquic_plugin_crypto_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

static quic_main_t quic_main
 
static const quicly_stream_callbacks_t quic_stream_callbacks
 
static quicly_stream_open_t on_stream_open = { &quic_on_stream_open }
 
static quicly_closed_by_peer_t on_closed_by_peer
 
static quicly_now_t quicly_vpp_now_cb = { quic_get_time }
 
static session_cb_vft_t quic_app_cb_vft
 
static const transport_proto_vft_t quic_proto
 
static vlib_cli_command_t quic_plugin_crypto_command
 (constructor) VLIB_CLI_COMMAND (quic_plugin_crypto_command) More...
 

Typedef Documentation

Function Documentation

static u8* format_quic_connection ( u8 s,
va_list *  args 
)
static

Definition at line 1290 of file quic.c.

+ Here is the call graph for this function:

static u8* format_quic_ctx ( u8 s,
va_list *  args 
)
static

Definition at line 1259 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* format_quic_half_open ( u8 s,
va_list *  args 
)
static

Definition at line 1301 of file quic.c.

+ Here is the call graph for this function:

static u8* format_quic_listener ( u8 s,
va_list *  args 
)
static

Definition at line 1313 of file quic.c.

+ Here is the call graph for this function:

static session_t* get_stream_session_from_stream ( quicly_stream_t *  stream)
static

Definition at line 104 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_accept_stream ( void *  s)
static

Definition at line 584 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_ack_rx_data ( session_t stream_session)
static

Definition at line 154 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_add_segment_callback ( u32  client_index,
u64  seg_handle 
)
static

Definition at line 1626 of file quic.c.

static int quic_app_rx_callback ( session_t udp_session)
static

Definition at line 1894 of file quic.c.

+ Here is the call graph for this function:

static void quic_build_sockaddr ( struct sockaddr *  sa,
socklen_t *  salen,
ip46_address_t *  addr,
u16  port,
u8  is_ip4 
)
inlinestatic

Definition at line 1331 of file quic.c.

+ Here is the caller graph for this function:

static void quic_common_get_transport_endpoint ( quic_ctx_t ctx,
transport_endpoint_t tep,
u8  is_lcl 
)
inlinestatic

Definition at line 2019 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_connect ( transport_endpoint_cfg_t tep)
static

Definition at line 1103 of file quic.c.

+ Here is the call graph for this function:

static int quic_connect_new_connection ( session_endpoint_cfg_t sep)
static

Definition at line 1052 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_connect_new_stream ( session_t quic_session,
u32  opaque 
)
static

Definition at line 949 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_connection_closed ( quic_ctx_t ctx)
static

Called when quicly return an error This function interacts tightly with quic_proto_on_close.

Definition at line 232 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_connection_delete ( quic_ctx_t ctx)
static

Definition at line 193 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static transport_connection_t* quic_connection_get ( u32  ctx_index,
u32  thread_index 
)
static

Definition at line 1242 of file quic.c.

+ Here is the call graph for this function:

static int quic_create_connection ( u32  ctx_index,
struct sockaddr *  sa,
socklen_t  salen,
quicly_decoded_packet_t  packet 
)
static

Definition at line 1820 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_create_quic_session ( quic_ctx_t ctx)
static

Definition at line 1781 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 quic_ctx_alloc ( u32  thread_index)
static

Definition at line 38 of file quic.c.

+ Here is the caller graph for this function:

static void quic_ctx_free ( quic_ctx_t ctx)
static

Definition at line 53 of file quic.c.

+ Here is the caller graph for this function:

static quic_ctx_t* quic_ctx_get ( u32  ctx_index,
u32  thread_index 
)
static

Definition at line 63 of file quic.c.

+ Here is the caller graph for this function:

static quic_ctx_t* quic_ctx_get_if_valid ( u32  ctx_index,
u32  thread_index 
)
static

Definition at line 69 of file quic.c.

+ Here is the caller graph for this function:

static int quic_ctx_is_listener ( quic_ctx_t ctx)
inlinestatic

Definition at line 98 of file quic.c.

+ Here is the caller graph for this function:

static int quic_ctx_is_stream ( quic_ctx_t ctx)
inlinestatic

Definition at line 92 of file quic.c.

+ Here is the caller graph for this function:

static int quic_custom_app_rx_callback ( transport_connection_t tc)
static

Definition at line 1644 of file quic.c.

+ Here is the call graph for this function:

static int quic_custom_tx_callback ( void *  s,
u32  max_burst_size 
)
static

Definition at line 1660 of file quic.c.

+ Here is the call graph for this function:

static int quic_del_segment_callback ( u32  client_index,
u64  seg_handle 
)
static

Definition at line 1635 of file quic.c.

static void quic_disconnect_transport ( quic_ctx_t ctx)
static

Definition at line 179 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_encrypt_ticket_cb ( ptls_encrypt_ticket_t *  _self,
ptls_t *  tls,
int  is_encrypt,
ptls_buffer_t *  dst,
ptls_iovec_t  src 
)
static

Definition at line 816 of file quic.c.

+ Here is the caller graph for this function:

static void quic_expired_timers_dispatch ( u32 expired_timers)
static

Definition at line 799 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int quic_fifo_egress_emit ( quicly_stream_t *  stream,
size_t  off,
void *  dst,
size_t *  len,
int *  wrote_all 
)

Definition at line 529 of file quic.c.

+ Here is the call graph for this function:

void quic_fifo_egress_shift ( quicly_stream_t *  stream,
size_t  delta 
)

Definition at line 514 of file quic.c.

+ Here is the call graph for this function:

static int quic_find_packet_ctx ( u32 ctx_thread,
u32 ctx_index,
struct sockaddr *  sa,
socklen_t  salen,
quicly_decoded_packet_t *  packet,
u32  caller_thread_index 
)
inlinestatic

Definition at line 1706 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static quic_ctx_t* quic_get_conn_ctx ( quicly_conn_t *  conn)
static

Definition at line 77 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static quicly_context_t* quic_get_quicly_ctx_from_ctx ( quic_ctx_t ctx)
static

Definition at line 132 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static quicly_context_t* quic_get_quicly_ctx_from_udp ( u64  udp_session_handle)
static

Definition at line 144 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int64_t quic_get_thread_time ( u8  thread_index)
static

Definition at line 695 of file quic.c.

+ Here is the caller graph for this function:

static int64_t quic_get_time ( quicly_now_t *  self)
static

Definition at line 701 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_get_transport_endpoint ( u32  ctx_index,
u32  thread_index,
transport_endpoint_t tep,
u8  is_lcl 
)
static

Definition at line 2048 of file quic.c.

+ Here is the call graph for this function:

static void quic_get_transport_listener_endpoint ( u32  listener_index,
transport_endpoint_t tep,
u8  is_lcl 
)
static

Definition at line 2031 of file quic.c.

+ Here is the call graph for this function:

static clib_error_t* quic_init ( vlib_main_t vm)
static

Definition at line 2104 of file quic.c.

+ Here is the call graph for this function:

static transport_connection_t* quic_listener_get ( u32  listener_index)
static

Definition at line 1250 of file quic.c.

+ Here is the call graph for this function:

static void quic_make_connection_key ( clib_bihash_kv_16_8_t kv,
const quicly_cid_plaintext_t *  id 
)
inlinestatic

Definition at line 115 of file quic.c.

+ Here is the caller graph for this function:

static int quic_on_client_connected ( quic_ctx_t ctx)
static

Definition at line 1353 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_on_closed_by_peer ( quicly_closed_by_peer_t *  self,
quicly_conn_t *  conn,
int  code,
uint64_t  frame_type,
const char *  reason,
size_t  reason_len 
)
static

Definition at line 662 of file quic.c.

+ Here is the call graph for this function:

static int quic_on_receive ( quicly_stream_t *  stream,
size_t  off,
const void *  src,
size_t  len 
)
static

Definition at line 467 of file quic.c.

+ Here is the call graph for this function:

static int quic_on_receive_reset ( quicly_stream_t *  stream,
int  err 
)
static

Definition at line 451 of file quic.c.

+ Here is the call graph for this function:

static int quic_on_stop_sending ( quicly_stream_t *  stream,
int  err 
)
static

Definition at line 435 of file quic.c.

+ Here is the call graph for this function:

static void quic_on_stream_destroy ( quicly_stream_t *  stream,
int  err 
)
static

Definition at line 417 of file quic.c.

+ Here is the call graph for this function:

static int quic_on_stream_open ( quicly_stream_open_t *  self,
quicly_stream_t *  stream 
)
static

Definition at line 647 of file quic.c.

+ Here is the call graph for this function:

static clib_error_t* quic_plugin_crypto_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2174 of file quic.c.

+ Here is the call graph for this function:

static void quic_proto_on_close ( u32  ctx_index,
u32  thread_index 
)
static

Definition at line 1118 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_receive ( quic_ctx_t ctx,
quicly_conn_t *  conn,
quicly_decoded_packet_t  packet 
)
static

Definition at line 1749 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_receive_connection ( void *  arg)
static

Definition at line 1402 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_register_cipher_suite ( quic_crypto_engine_t  type,
ptls_cipher_suite_t **  ciphers 
)
static

Definition at line 2095 of file quic.c.

+ Here is the caller graph for this function:

static int quic_reset_connection ( u64  udp_session_handle,
struct sockaddr *  sa,
socklen_t  salen,
quicly_decoded_packet_t  packet 
)
static

Definition at line 1864 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_send_datagram ( session_t udp_session,
quicly_datagram_t *  packet 
)
static

Definition at line 274 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_send_packets ( quic_ctx_t ctx)
static

Definition at line 332 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int quic_sendable_packet_count ( session_t udp_session)
static

Definition at line 123 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int quic_session_accepted_callback ( session_t udp_session)

Definition at line 1585 of file quic.c.

+ Here is the call graph for this function:

static int quic_session_connected_callback ( u32  quic_app_index,
u32  ctx_index,
session_t udp_session,
u8  is_fail 
)
static

Definition at line 1470 of file quic.c.

+ Here is the call graph for this function:

static void quic_session_disconnect_callback ( session_t s)
static

Definition at line 1543 of file quic.c.

static void quic_session_migrate_callback ( session_t s,
session_handle_t  new_sh 
)
static

Definition at line 1555 of file quic.c.

+ Here is the call graph for this function:

static void quic_session_reset_callback ( session_t s)
static

Definition at line 1549 of file quic.c.

static u32 quic_set_time_now ( u32  thread_index)
static

Definition at line 710 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 quic_start_listen ( u32  quic_listen_session_index,
transport_endpoint_t tep 
)
static

Definition at line 1162 of file quic.c.

+ Here is the call graph for this function:

static u32 quic_stop_listen ( u32  lctx_index)
static

Definition at line 1221 of file quic.c.

+ Here is the call graph for this function:

static void quic_store_conn_ctx ( quicly_conn_t *  conn,
quic_ctx_t ctx 
)
static

Definition at line 85 of file quic.c.

+ Here is the caller graph for this function:

static void quic_store_quicly_ctx ( application_t app,
u8  is_client 
)
static

Definition at line 868 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_timer_expired ( u32  conn_index)
static

Definition at line 730 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_transfer_connection ( u32  ctx_index,
u32  dest_thread 
)
static

Definition at line 1442 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void quic_update_time ( f64  now,
u8  thread_index 
)
static

Definition at line 720 of file quic.c.

+ Here is the call graph for this function:

static void quic_update_timer ( quic_ctx_t ctx)
static

Definition at line 741 of file quic.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VLIB_PLUGIN_REGISTER ( )

Variable Documentation

quicly_closed_by_peer_t on_closed_by_peer
static
Initial value:
=
static void quic_on_closed_by_peer(quicly_closed_by_peer_t *self, quicly_conn_t *conn, int code, uint64_t frame_type, const char *reason, size_t reason_len)
Definition: quic.c:662

Definition at line 678 of file quic.c.

quicly_stream_open_t on_stream_open = { &quic_on_stream_open }
static

Definition at line 677 of file quic.c.

session_cb_vft_t quic_app_cb_vft
static
Initial value:
= {
.session_accept_callback = quic_session_accepted_callback,
.session_disconnect_callback = quic_session_disconnect_callback,
.session_connected_callback = quic_session_connected_callback,
.session_reset_callback = quic_session_reset_callback,
.session_migrate_callback = quic_session_migrate_callback,
.add_segment_callback = quic_add_segment_callback,
.del_segment_callback = quic_del_segment_callback,
.builtin_app_rx_callback = quic_app_rx_callback,
}
static void quic_session_migrate_callback(session_t *s, session_handle_t new_sh)
Definition: quic.c:1555
static int quic_app_rx_callback(session_t *udp_session)
Definition: quic.c:1894
static int quic_add_segment_callback(u32 client_index, u64 seg_handle)
Definition: quic.c:1626
static void quic_session_disconnect_callback(session_t *s)
Definition: quic.c:1543
static int quic_del_segment_callback(u32 client_index, u64 seg_handle)
Definition: quic.c:1635
static int quic_session_connected_callback(u32 quic_app_index, u32 ctx_index, session_t *udp_session, u8 is_fail)
Definition: quic.c:1470
int quic_session_accepted_callback(session_t *udp_session)
Definition: quic.c:1585
static void quic_session_reset_callback(session_t *s)
Definition: quic.c:1549

Definition at line 2061 of file quic.c.

quic_main_t quic_main
static

Definition at line 34 of file quic.c.

vlib_cli_command_t quic_plugin_crypto_command
static
Initial value:
=
{
.path = "quic set crypto api",
.short_help = "quic set crypto api [picotls, vpp]",
}
static clib_error_t * quic_plugin_crypto_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: quic.c:2174

(constructor) VLIB_CLI_COMMAND (quic_plugin_crypto_command)

Definition at line 2193 of file quic.c.

const transport_proto_vft_t quic_proto
static
Initial value:
= {
.connect = quic_connect,
.start_listen = quic_start_listen,
.stop_listen = quic_stop_listen,
.get_connection = quic_connection_get,
.get_listener = quic_listener_get,
.update_time = quic_update_time,
.format_connection = format_quic_connection,
.format_half_open = format_quic_half_open,
.format_listener = format_quic_listener,
.get_transport_endpoint = quic_get_transport_endpoint,
.get_transport_listener_endpoint = quic_get_transport_listener_endpoint,
.transport_options = {
.service_type = TRANSPORT_SERVICE_APP,
},
}
static u32 quic_stop_listen(u32 lctx_index)
Definition: quic.c:1221
static int quic_custom_app_rx_callback(transport_connection_t *tc)
Definition: quic.c:1644
static int quic_connect(transport_endpoint_cfg_t *tep)
Definition: quic.c:1103
static void quic_proto_on_close(u32 ctx_index, u32 thread_index)
Definition: quic.c:1118
static transport_connection_t * quic_connection_get(u32 ctx_index, u32 thread_index)
Definition: quic.c:1242
static u32 quic_start_listen(u32 quic_listen_session_index, transport_endpoint_t *tep)
Definition: quic.c:1162
static u8 * format_quic_connection(u8 *s, va_list *args)
Definition: quic.c:1290
app transport service
static void quic_get_transport_listener_endpoint(u32 listener_index, transport_endpoint_t *tep, u8 is_lcl)
Definition: quic.c:2031
static void quic_update_time(f64 now, u8 thread_index)
Definition: quic.c:720
static int quic_custom_tx_callback(void *s, u32 max_burst_size)
Definition: quic.c:1660
static transport_connection_t * quic_listener_get(u32 listener_index)
Definition: quic.c:1250
apps acting as transports
static u8 * format_quic_listener(u8 *s, va_list *args)
Definition: quic.c:1313
static void quic_get_transport_endpoint(u32 ctx_index, u32 thread_index, transport_endpoint_t *tep, u8 is_lcl)
Definition: quic.c:2048
static u8 * format_quic_half_open(u8 *s, va_list *args)
Definition: quic.c:1301

Definition at line 2072 of file quic.c.

const quicly_stream_callbacks_t quic_stream_callbacks
static
Initial value:
= {
.on_destroy = quic_on_stream_destroy,
.on_send_shift = quic_fifo_egress_shift,
.on_send_emit = quic_fifo_egress_emit,
.on_send_stop = quic_on_stop_sending,
.on_receive = quic_on_receive,
.on_receive_reset = quic_on_receive_reset
}
static int quic_on_receive(quicly_stream_t *stream, size_t off, const void *src, size_t len)
Definition: quic.c:467
int quic_fifo_egress_emit(quicly_stream_t *stream, size_t off, void *dst, size_t *len, int *wrote_all)
Definition: quic.c:529
static int quic_on_receive_reset(quicly_stream_t *stream, int err)
Definition: quic.c:451
void quic_fifo_egress_shift(quicly_stream_t *stream, size_t delta)
Definition: quic.c:514
static int quic_on_stop_sending(quicly_stream_t *stream, int err)
Definition: quic.c:435
static void quic_on_stream_destroy(quicly_stream_t *stream, int err)
Definition: quic.c:417

Definition at line 574 of file quic.c.

quicly_now_t quicly_vpp_now_cb = { quic_get_time }
static

Definition at line 707 of file quic.c.