int picoquic_packet_loop_v2(picoquic_quic_t* quic,
picoquic_packet_loop_param_t* param,
picoquic_packet_loop_cb_fn loop_callback,
void* loop_callback_ctx)
void* picoquic_packet_loop_v3(void* v_ctx)
ret = picoquic_incoming_packet_ex(quic, s_ctx[socket_rank].recv_buffer + recv_bytes,
recv_length, (struct sockaddr*)&addr_from,
(struct sockaddr*)&addr_to,
s_ctx[socket_rank].dest_if,
s_ctx[socket_rank].received_ecn, &last_cnx, current_time);
ret = picoquic_incoming_segment(quic, bytes + consumed_index,
packet_length - consumed_index, packet_length,
&consumed, addr_from, addr_to, if_index_to, received_ecn, current_time, current_time,
&previous_destid, first_cnx);
ret = picoquic_incoming_1rtt(cnx, path_id, bytes, decrypted_data,
&ph, addr_from, addr_to, if_index_to, received_ecn,
path_is_not_allocated, current_time);
ret = picoquic_decode_frames(cnx, cnx->path[path_id],
bytes + ph->offset, ph->payload_length, received_data,
ph->epoch, addr_from, addr_to, ph->pn64,
path_is_not_allocated, current_time);
bytes = picoquic_decode_stream_frame(cnx, bytes, bytes_max, received_data, current_time);
if (picoquic_parse_stream_header(bytes, bytes_max - bytes, &stream_id, &offset, &data_length, &fin, &consumed) != 0)