mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Fix: calculate TLP timer correctly when only one packet is in flight
This commit is contained in:
parent
4c9d8eb069
commit
6f2daf28d8
4 changed files with 4 additions and 2 deletions
|
@ -62,6 +62,7 @@ struct lsquic_conn_public {
|
||||||
*/
|
*/
|
||||||
unsigned bytes_in; /* successfully processed */
|
unsigned bytes_in; /* successfully processed */
|
||||||
unsigned bytes_out;
|
unsigned bytes_out;
|
||||||
|
unsigned max_peer_ack_usec;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -617,6 +617,7 @@ new_conn_common (lsquic_cid_t cid, struct lsquic_engine_public *enpub,
|
||||||
conn->fc_pub.packet_out_malo =
|
conn->fc_pub.packet_out_malo =
|
||||||
lsquic_malo_create(sizeof(struct lsquic_packet_out));
|
lsquic_malo_create(sizeof(struct lsquic_packet_out));
|
||||||
conn->fc_pub.path = &conn->fc_path;
|
conn->fc_pub.path = &conn->fc_path;
|
||||||
|
conn->fc_pub.max_peer_ack_usec = ACK_TIMEOUT;
|
||||||
conn->fc_stream_ifs[STREAM_IF_STD].stream_if = enpub->enp_stream_if;
|
conn->fc_stream_ifs[STREAM_IF_STD].stream_if = enpub->enp_stream_if;
|
||||||
conn->fc_stream_ifs[STREAM_IF_STD].stream_if_ctx = enpub->enp_stream_if_ctx;
|
conn->fc_stream_ifs[STREAM_IF_STD].stream_if_ctx = enpub->enp_stream_if_ctx;
|
||||||
conn->fc_settings = &enpub->enp_settings;
|
conn->fc_settings = &enpub->enp_settings;
|
||||||
|
|
|
@ -3078,7 +3078,7 @@ handshake_ok (struct lsquic_conn *lconn)
|
||||||
conn->ifc_flags |= IFC_TIMESTAMPS;
|
conn->ifc_flags |= IFC_TIMESTAMPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
conn->ifc_max_peer_ack_usec = params->tp_max_ack_delay * 1000;
|
conn->ifc_pub.max_peer_ack_usec = params->tp_max_ack_delay * 1000;
|
||||||
|
|
||||||
if ((params->tp_set & (1 << TPI_MAX_PACKET_SIZE))
|
if ((params->tp_set & (1 << TPI_MAX_PACKET_SIZE))
|
||||||
&& params->tp_numerics[TPI_MAX_PACKET_SIZE]
|
&& params->tp_numerics[TPI_MAX_PACKET_SIZE]
|
||||||
|
|
|
@ -415,7 +415,7 @@ calculate_tlp_delay (lsquic_send_ctl_t *ctl)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
delay = srtt + srtt / 2 + MIN_RTO_DELAY;
|
delay = srtt + srtt / 2 + ctl->sc_conn_pub->max_peer_ack_usec;
|
||||||
if (delay < 2 * srtt)
|
if (delay < 2 * srtt)
|
||||||
delay = 2 * srtt;
|
delay = 2 * srtt;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue