@@ -3980,6 +3980,7 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
39803980 if (frame_type == ALLOCATE_FRAME_TYPE_ACK_ELICITING && conn -> stash .now >= conn -> egress .ack_frequency .update_at &&
39813981 s -> dst_end - s -> dst >= max_size_ack_frequency_frame + min_space ) {
39823982 assert (conn -> super .remote .transport_params .min_ack_delay_usec != UINT64_MAX );
3983+ // Question: why do we only do this after QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE cw reductions?
39833984 if (conn -> egress .cc .num_loss_episodes >= QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE && conn -> initial == NULL &&
39843985 conn -> handshake == NULL ) {
39853986 uint32_t fraction_of_cwnd = (uint32_t )((uint64_t )conn -> egress .cc .cwnd * conn -> super .ctx -> ack_frequency / 1024 );
@@ -4001,6 +4002,9 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
40014002 reordering_threshold = QUICLY_LOSS_DEFAULT_PACKET_THRESHOLD ;
40024003 }
40034004
4005+ /* Question: Do we want to move scheduling/sending of ack frequency frames out of this function? */
4006+ /* TODO: register an ack callback for the ack frequency frame.
4007+ * We don't have a way to handle the ack of the ack_frequency frame */
40044008 /* TODO: Adjust the max_ack_delay we use for loss recovery to be consistent with this value */
40054009 s -> dst = quicly_encode_ack_frequency_frame (s -> dst , conn -> egress .ack_frequency .sequence ++ , packet_tolerance ,
40064010 max_ack_delay , reordering_threshold );
@@ -6813,6 +6817,10 @@ static quicly_error_t handle_ack_frequency_frame(quicly_conn_t *conn, struct st_
68136817 if (frame .max_ack_delay < QUICLY_LOCAL_MAX_ACK_DELAY * 1000 || frame .max_ack_delay >= (1 << 14 ) * 1000 )
68146818 return QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION ;
68156819
6820+ // TODO: use received frame.max_ack_delay. We currently use a constant (25 ms) and
6821+ // ignore the value set by our transport parameter (see max_ack_delay field comment).
6822+ // Is there a reason for this?
6823+
68166824 if (frame .sequence >= conn -> ingress .ack_frequency .next_sequence ) {
68176825 conn -> ingress .ack_frequency .next_sequence = frame .sequence + 1 ;
68186826 conn -> application -> super .packet_tolerance =
0 commit comments