int quic_get_cid_tid(const unsigned char *cid, size_t cid_len,
const struct sockaddr_storage *cli_addr,
unsigned char *pos, size_t len);
-struct quic_cid quic_derive_cid(const struct quic_cid *orig,
- const struct sockaddr_storage *addr);
struct quic_conn *retrieve_qc_conn_from_cid(struct quic_rx_packet *pkt,
struct sockaddr_storage *saddr,
int *new_tid);
struct quic_cstream *quic_cstream_new(struct quic_conn *qc);
struct task *quic_conn_app_io_cb(struct task *t, void *context, unsigned int state);
-struct quic_connection_id *new_quic_cid(struct eb_root *root,
- struct quic_conn *qc,
- const struct quic_cid *orig,
- const struct sockaddr_storage *addr);
void quic_conn_closed_err_count_inc(struct quic_conn *qc, struct quic_frame *frm);
int qc_h3_request_reject(struct quic_conn *qc, uint64_t id);
struct quic_conn *qc_new_conn(const struct quic_version *qv, int ipv4,
void quic_set_tls_alert(struct quic_conn *qc, int alert);
int quic_set_app_ops(struct quic_conn *qc, const unsigned char *alpn, size_t alpn_len);
int qc_check_dcid(struct quic_conn *qc, unsigned char *dcid, size_t dcid_len);
-struct quic_cid quic_derive_cid(const struct quic_cid *orig,
- const struct sockaddr_storage *addr);
-int quic_get_cid_tid(const unsigned char *cid, size_t cid_len,
- const struct sockaddr_storage *cli_addr,
- unsigned char *buf, size_t buf_len);
int qc_send_mux(struct quic_conn *qc, struct list *frms);
void qc_notify_err(struct quic_conn *qc);
}
/* Generate a CID directly derived from <orig> CID and <addr> address.
+ *
+ * This function is used to calculate the first connection CID derived from
+ * client ODCID. This allows to optimize CID global tree by not inserting ODCID
+ * as client is expected to replace it early.
*
* Returns the derived CID.
*/
-struct quic_cid quic_derive_cid(const struct quic_cid *orig,
- const struct sockaddr_storage *addr)
+static struct quic_cid quic_derive_cid(const struct quic_cid *orig,
+ const struct sockaddr_storage *addr)
{
struct quic_cid cid;
const struct sockaddr_in *in;