Skip to content

Commit

Permalink
Start sending ACK_ECN frames only after we've seen marked packets
Browse files Browse the repository at this point in the history
Summary: As title.

Reviewed By: mjoras

Differential Revision: D68642269

fbshipit-source-id: 40ad3a683a8efbbdf69e145be55aca7861081e0d
  • Loading branch information
jbeshay authored and facebook-github-bot committed Jan 28, 2025
1 parent 4667db4 commit ce3e9b0
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions quic/api/QuicPacketScheduler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -606,10 +606,14 @@ Optional<PacketNum> AckScheduler::writeNextAcks(
.maxReceiveTimestampsPerAck
: 0;

if (conn_.transportSettings.readEcnOnIngress) {
// If ECN is enabled and we can use it, this will currently take
// priority over sending receive timestamps. There is currently no provision
// for a frame time that includes both ECN counts and receive timestamps.
if (conn_.transportSettings.readEcnOnIngress &&
(meta.ackState.ecnECT0CountReceived ||
meta.ackState.ecnECT1CountReceived ||
meta.ackState.ecnCECountReceived)) {
// If echoing ECN is enabled and we have seen marked packets, this will
// currently take priority over sending receive timestamps. There is
// currently no provision for a frame time that includes both ECN counts and
// receive timestamps.
// TODO: explore design changes for an ACK frame that supports both ECN and
// receive timestamps
ackWriteResult = writeAckFrame(meta, builder, FrameType::ACK_ECN);
Expand Down

0 comments on commit ce3e9b0

Please sign in to comment.