BUG/MINOR: quic: Missing TX packet initializations

The most important one is the ->flags member which leads to an erratic xprt behavior.
For instance a non ack-eliciting packet could be seen as ack-eliciting leading the
xprt to try to retransmit a packet which are not ack-eliciting. In this case, the
xprt does nothing and remains indefinitively in a blocking state.
This commit is contained in:
Frédéric Lécaille 2022-03-21 10:43:53 +01:00 committed by Amaury Denoyelle
parent f27b66faee
commit 2899fe2460
2 changed files with 3 additions and 1 deletions

View File

@ -524,7 +524,7 @@ struct quic_tx_packet {
struct eb64_node pn_node;
/* The list of frames of this packet. */
struct list frms;
/* The time this packet was sent (usec). */
/* The time this packet was sent (ms). */
unsigned int time_sent;
/* Packet number spakce. */
struct quic_pktns *pktns;

View File

@ -5299,8 +5299,10 @@ static inline void quic_tx_packet_init(struct quic_tx_packet *pkt, int type)
pkt->in_flight_len = 0;
pkt->pn_node.key = (uint64_t)-1;
LIST_INIT(&pkt->frms);
pkt->time_sent = TICK_ETERNITY;
pkt->next = NULL;
pkt->largest_acked_pn = -1;
pkt->flags = 0;
pkt->refcnt = 0;
}