From: Hugo Landau Date: Fri, 8 Sep 2023 13:10:06 +0000 (+0100) Subject: QLOG: Events: Implement transport:packet_received X-Git-Tag: openssl-3.3.0-alpha1~212 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5849dbe52e6657db0b653b93d1eb5bab34f43351;p=thirdparty%2Fopenssl.git QLOG: Events: Implement transport:packet_received Reviewed-by: Matt Caswell Reviewed-by: Neil Horman (Merged from https://github.com/openssl/openssl/pull/22037) --- diff --git a/include/internal/qlog_event_helpers.h b/include/internal/qlog_event_helpers.h index e1a9bcf534f..83defe043b5 100644 --- a/include/internal/qlog_event_helpers.h +++ b/include/internal/qlog_event_helpers.h @@ -45,4 +45,12 @@ void ossl_qlog_event_transport_packet_sent(QLOG *qlog, size_t numn_iovec, uint64_t datagram_id); +/* transport:packet_received */ +void ossl_qlog_event_transport_packet_received(QLOG *qlog, + const QUIC_PKT_HDR *hdr, + QUIC_PN pn, + const OSSL_QTX_IOVEC *iovec, + size_t numn_iovec, + uint64_t datagram_id); + #endif diff --git a/include/internal/qlog_events.h b/include/internal/qlog_events.h index 06706b5952b..e79b9524616 100644 --- a/include/internal/qlog_events.h +++ b/include/internal/qlog_events.h @@ -11,4 +11,5 @@ QLOG_EVENT(connectivity, connection_state_updated) QLOG_EVENT(connectivity, connection_closed) QLOG_EVENT(transport, parameters_set) QLOG_EVENT(transport, packet_sent) +QLOG_EVENT(transport, packet_received) QLOG_EVENT(recovery, packet_lost) diff --git a/ssl/quic/qlog_event_helpers.c b/ssl/quic/qlog_event_helpers.c index ad2e87ff3db..16fd8ae74ef 100644 --- a/ssl/quic/qlog_event_helpers.c +++ b/ssl/quic/qlog_event_helpers.c @@ -611,3 +611,17 @@ void ossl_qlog_event_transport_packet_sent(QLOG *qlog, QLOG_EVENT_END() #endif } + +void ossl_qlog_event_transport_packet_received(QLOG *qlog, + const QUIC_PKT_HDR *hdr, + QUIC_PN pn, + const OSSL_QTX_IOVEC *iovec, + size_t num_iovec, + uint64_t datagram_id) +{ +#ifndef OPENSSL_NO_QLOG + QLOG_EVENT_BEGIN(qlog, transport, packet_received) + log_packet(qlog, hdr, pn, iovec, num_iovec, datagram_id); + QLOG_EVENT_END() +#endif +} diff --git a/ssl/quic/quic_channel.c b/ssl/quic/quic_channel.c index 274765b731c..b76f825d0e7 100644 --- a/ssl/quic/quic_channel.c +++ b/ssl/quic/quic_channel.c @@ -2098,6 +2098,7 @@ static void ch_rx_handle_packet(QUIC_CHANNEL *ch, int channel_only) { uint32_t enc_level; int old_have_processed_any_pkt = ch->have_processed_any_pkt; + OSSL_QTX_IOVEC iovec; assert(ch->qrx_pkt != NULL); @@ -2184,6 +2185,12 @@ static void ch_rx_handle_packet(QUIC_CHANNEL *ch, int channel_only) return; } + iovec.buf = ch->qrx_pkt->hdr->data; + iovec.buf_len = ch->qrx_pkt->hdr->len; + ossl_qlog_event_transport_packet_received(ch_get_qlog(ch), ch->qrx_pkt->hdr, + ch->qrx_pkt->pn, &iovec, 1, + ch->qrx_pkt->datagram_id); + /* Handle incoming packet. */ switch (ch->qrx_pkt->hdr->type) { case QUIC_PKT_TYPE_RETRY: