@@ -3988,6 +3988,7 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
39883988 if (frame_type == ALLOCATE_FRAME_TYPE_ACK_ELICITING && conn -> stash .now >= conn -> egress .ack_frequency .update_at &&
39893989 s -> dst_end - s -> dst >= max_size_ack_frequency_frame + min_space ) {
39903990 assert (conn -> super .remote .transport_params .min_ack_delay_usec != UINT64_MAX );
3991+ // Question: why do we only do this after QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE cw reductions?
39913992 if (conn -> egress .cc .num_loss_episodes >= QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE && conn -> initial == NULL &&
39923993 conn -> handshake == NULL ) {
39933994 uint32_t fraction_of_cwnd = (uint32_t )((uint64_t )conn -> egress .cc .cwnd * conn -> super .ctx -> ack_frequency / 1024 );
@@ -4009,6 +4010,9 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
40094010 reordering_threshold = QUICLY_LOSS_DEFAULT_PACKET_THRESHOLD ;
40104011 }
40114012
4013+ /* Question: Do we want to move scheduling/sending of ack frequency frames out of this function? */
4014+ /* TODO: register an ack callback for the ack frequency frame.
4015+ * We don't have a way to handle the ack of the ack_frequency frame */
40124016 /* TODO: Adjust the max_ack_delay we use for loss recovery to be consistent with this value */
40134017 s -> dst = quicly_encode_ack_frequency_frame (s -> dst , conn -> egress .ack_frequency .sequence ++ , packet_tolerance ,
40144018 max_ack_delay , reordering_threshold );
@@ -6821,6 +6825,10 @@ static quicly_error_t handle_ack_frequency_frame(quicly_conn_t *conn, struct st_
68216825 if (frame .max_ack_delay < QUICLY_LOCAL_MAX_ACK_DELAY * 1000 || frame .max_ack_delay >= (1 << 14 ) * 1000 )
68226826 return QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION ;
68236827
6828+ // TODO: use received frame.max_ack_delay. We currently use a constant (25 ms) and
6829+ // ignore the value set by our transport parameter (see max_ack_delay field comment).
6830+ // Is there a reason for this?
6831+
68246832 if (frame .sequence >= conn -> ingress .ack_frequency .next_sequence ) {
68256833 conn -> ingress .ack_frequency .next_sequence = frame .sequence + 1 ;
68266834 conn -> application -> super .packet_tolerance =
0 commit comments