Skip to content

Commit 288cc27

Browse files
committed
TODOs
1 parent 708f702 commit 288cc27

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lib/quicly.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)