Skip to content

Commit d54d3dc

Browse files
committed
TODOs
1 parent 2b092da commit d54d3dc

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
@@ -3966,6 +3966,7 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
39663966
if (frame_type == ALLOCATE_FRAME_TYPE_ACK_ELICITING && conn->stash.now >= conn->egress.ack_frequency.update_at &&
39673967
s->dst_end - s->dst >= max_size_ack_frequency_frame + min_space) {
39683968
assert(conn->super.remote.transport_params.min_ack_delay_usec != UINT64_MAX);
3969+
// Question: why do we only do this after QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE cw reductions?
39693970
if (conn->egress.cc.num_loss_episodes >= QUICLY_FIRST_ACK_FREQUENCY_LOSS_EPISODE && conn->initial == NULL &&
39703971
conn->handshake == NULL) {
39713972
uint32_t fraction_of_cwnd = (uint32_t)((uint64_t)conn->egress.cc.cwnd * conn->super.ctx->ack_frequency / 1024);
@@ -3981,6 +3982,9 @@ static quicly_error_t do_allocate_frame(quicly_conn_t *conn, quicly_send_context
39813982
reordering_threshold = QUICLY_LOSS_DEFAULT_PACKET_THRESHOLD;
39823983
}
39833984

3985+
/* Question: Do we want to move scheduling/sending of ack frequency frames out of this function? */
3986+
/* TODO: register an ack callback for the ack frequency frame.
3987+
* We don't have a way to handle the ack of the ack_frequency frame */
39843988
/* TODO: Adjust the max_ack_delay we use for loss recovery to be consistent with this value */
39853989
s->dst = quicly_encode_ack_frequency_frame(s->dst, conn->egress.ack_frequency.sequence++, packet_tolerance,
39863990
max_ack_delay,
@@ -6794,6 +6798,10 @@ static quicly_error_t handle_ack_frequency_frame(quicly_conn_t *conn, struct st_
67946798
if (frame.max_ack_delay < QUICLY_LOCAL_MAX_ACK_DELAY * 1000 || frame.max_ack_delay >= (1 << 14) * 1000)
67956799
return QUICLY_TRANSPORT_ERROR_PROTOCOL_VIOLATION;
67966800

6801+
// TODO: use received frame.max_ack_delay. We currently use a constant (25 ms) and
6802+
// ignore the value set by our transport parameter (see max_ack_delay field comment).
6803+
// Is there a reason for this?
6804+
67976805
if (frame.sequence >= conn->ingress.ack_frequency.next_sequence) {
67986806
conn->ingress.ack_frequency.next_sequence = frame.sequence + 1;
67996807
conn->application->super.packet_tolerance =

0 commit comments

Comments
 (0)