pool_free(pool_head_quic_rx_packet, pkt);
}
-/* Add <pkt> RX packet to <list>, incrementing its reference counter. */
-static inline void quic_rx_packet_list_addq(struct mt_list *list,
- struct quic_rx_packet *pkt)
-{
- MT_LIST_APPEND(list, &pkt->list);
- quic_rx_packet_refinc(pkt);
-}
-
-/* Remove <pkt> RX packet from <list>, decrementing its reference counter. */
-static inline void quic_rx_packet_list_del(struct quic_rx_packet *pkt)
-{
- MT_LIST_DELETE(&pkt->list);
- quic_rx_packet_refdec(pkt);
-}
-
-/* Add <pkt> RX packet to <root> tree, incrementing its reference counter. */
-static inline void quic_rx_packet_eb64_insert(struct eb_root *root,
- struct eb64_node *node)
-{
- eb64_insert(root, node);
- quic_rx_packet_refinc(eb64_entry(node, struct quic_rx_packet, pn_node));
-}
-
-/* Delete <pkt> RX packet from <root> tree, decrementing its reference counter. */
-static inline void quic_rx_packet_eb64_delete(struct eb64_node *node)
-{
- eb64_delete(node);
- quic_rx_packet_refdec(eb64_entry(node, struct quic_rx_packet, pn_node));
-}
-
-/* Release the memory allocated for <pkt> RX packet. */
-static inline void free_quic_rx_packet(struct quic_rx_packet *pkt)
-{
- quic_rx_packet_refdec(pkt);
-}
-
/* Increment the reference counter of <pkt> */
static inline void quic_tx_packet_refinc(struct quic_tx_packet *pkt)
{
/* Store the packet into the tree of packets to decrypt. */
pqpkt->pn_node.key = pqpkt->pn;
HA_RWLOCK_WRLOCK(QUIC_LOCK, &el->rx.pkts_rwlock);
- quic_rx_packet_eb64_insert(&el->rx.pkts, &pqpkt->pn_node);
+ eb64_insert(&el->rx.pkts, &pqpkt->pn_node);
+ quic_rx_packet_refinc(pqpkt);
HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &el->rx.pkts_rwlock);
TRACE_PROTO("hp removed", QUIC_EV_CONN_ELRMHP, ctx->conn, pqpkt);
}
}
}
node = eb64_next(node);
- quic_rx_packet_eb64_delete(&pkt->pn_node);
+ eb64_delete(&pkt->pn_node);
+ quic_rx_packet_refdec(pkt);
}
HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &qel->rx.pkts_rwlock);
/* Store the packet */
pkt->pn_node.key = pkt->pn;
HA_RWLOCK_WRLOCK(QUIC_LOCK, &qel->rx.pkts_rwlock);
- quic_rx_packet_eb64_insert(&qel->rx.pkts, &pkt->pn_node);
+ eb64_insert(&qel->rx.pkts, &pkt->pn_node);
+ quic_rx_packet_refinc(pkt);
HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &qel->rx.pkts_rwlock);
}
else if (qel) {
TRACE_PROTO("hp not removed", QUIC_EV_CONN_TRMHP, ctx ? ctx->conn : NULL, pkt);
pkt->pn_offset = pn - beg;
- quic_rx_packet_list_addq(&qel->rx.pqpkts, pkt);
+ MT_LIST_APPEND(&qel->rx.pqpkts, &pkt->list);
+ quic_rx_packet_refinc(pkt);
}
memcpy(pkt->data, beg, pkt->len);
size_t pkt_len;
pkt_len = pkt->len;
- free_quic_rx_packet(pkt);
+ quic_rx_packet_refdec(pkt);
/* If the packet length could not be found, we cannot continue. */
if (!pkt_len)
break;