Typedef ssize_t (*xqc_socket_write_pt)(const unsigned char *buf, size_t size,Ĭonst struct sockaddr *peer_addr, socklen_t peer_addrlen, void *conn_user_data) Engine Callback Functions xqc_timestamp_pt These callback functions will interact with Application-Layer-Protocols first, then Application-Layer-Protocols will define its interaction with application.Īs Transport-Callback-Functions are reusable, classification of these callback functions may help to reduce workload when implementing a new kind of Application-Layer-Protocol. No matter what ALPN is, these callback functions will directly interact with application.ĪLPN-Callback-Functions mainly involves the concepts of connection and stream data, and includes connection event callback functions and stream event callback functions. Transport-Callback-Functions is the abstraction of QUIC Transport protocol event aggregation, mainly includes the common attributes of QUIC Transport protocol between different Application-Layer-Protocols, like session ticket, write socket, stateless reset, etc. In consideration of ALPN implementations, xquic divides Connection-Callback-Functions into Transport-Callback-Functions and ALPN-Callback-Functions. Xquic divide its callback functions into 2 categories, Engine-Layer-Callback-Function and Connection-Layer-Callback-Function.Įngine-Layer-Callback-Function mainly handles the environmental events, like timer, log, timestamp, etc.Ĭonnection-Layer-Callback-Function mainly handles the connection events, like connection creation, Timestamp definition, as microsecond and millisecond. Xquic connection, stands for QUIC connection. When using xquic, engine MUST be the first object to be created, and the last to be destroyed. Instance of xqc_engine_t can be created by xqc_engine_create and be destroyed by xqc_engine_destroy.Īll xquic mechanisms depends on xqc_engint_t, including creating a QUIC connection. Xquic engine, manages connections, alpn registrations, generic environmental config and callback functions. XQC_0RTT_REJECT (0x02)Ġ-RTT packets were rejected. XQC_0RTT_ACCEPT (0x01)Ġ-RTT packets were accepted. Statistics flag of 0-RTT packets during the lifetime of QUIC connection. XQC_TLS_CERT_FLAG_ALLOW_SELF_SIGNED (0x01) xqc_cert_verify_flag_eĬertificate verify flag. Version not supported, and shall be negotiated. Type of engine, according to the C/S role of application. XQC_SOCKET_ERROR/XQC_SOCKET_EAGAINĮrror codes for write_socket and write_mmsg callback functions. Values for xqc_bool_t, stands for boolean values. XQC_TLS_GROUPSĭefault tls curves list, which will be used if application don't specify a curves list. Default Configurations XQC_TLS_CIPHERSĭefault tls cipher list, which will be used if application don't specify a cipher list. Max iovec count when sending data with xqc_send_mmsg_pt callback. Max length of stateless reset token supported by XQUIC.
![h3 closure h3 closure](https://www.staradvertiser.com/wp-content/uploads/2021/09/web1_CTY-H3-COVID-TESTING--1-1280x720.jpg)
actually XQUIC support draft-29 and QUIC version 1 right now. Max count of versions supported by XQUIC. QUIC Transport APIs Macros Memory Restrictions XQC_SUPPORT_VERSION_MAX