Skip to content

Commit 205f7be

Browse files
committed
TODOs
1 parent 002ac78 commit 205f7be

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
@@ -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

Comments
 (0)