MINOR: quic: store the lost packets counter in the quic_cc_event element

Upon loss detection, qc_release_lost_pkts() notifies congestion
controllers about the event and its final time. However it does not
pass the number of lost packets, that can provide useful hints for
some controllers. Let's just pass this option.
This commit is contained in:
Willy Tarreau 2024-07-25 14:32:20 +02:00
parent 2e6e159ac4
commit fab0e99aa1
2 changed files with 4 additions and 0 deletions

View File

@ -73,6 +73,7 @@ struct quic_cc_event {
} ack;
struct loss {
unsigned int time_sent;
unsigned int count; // #pkt lost for this event
} loss;
};
};

View File

@ -242,6 +242,7 @@ int qc_release_lost_pkts(struct quic_conn *qc, struct quic_pktns *pktns,
struct list *pkts, uint64_t now_us)
{
struct quic_tx_packet *pkt, *tmp, *oldest_lost, *newest_lost;
uint tot_lost = 0;
int close = 0;
TRACE_ENTER(QUIC_EV_CONN_PRSAFRM, qc);
@ -270,6 +271,7 @@ int qc_release_lost_pkts(struct quic_conn *qc, struct quic_pktns *pktns,
quic_tx_packet_refdec(newest_lost);
newest_lost = pkt;
}
tot_lost++;
}
if (!close) {
@ -279,6 +281,7 @@ int qc_release_lost_pkts(struct quic_conn *qc, struct quic_pktns *pktns,
ev.type = QUIC_CC_EVT_LOSS;
ev.loss.time_sent = newest_lost->time_sent;
ev.loss.count = tot_lost;
quic_cc_event(&qc->path->cc, &ev);
}