Skip to content

quic: Improve loss detection with time threshold #5634

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions book/api/metrics-generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,10 @@
| <span class="metrics-name">quic_&#8203;pkt_&#8203;oversz</span> | counter | Number of QUIC packets dropped due to being too large. |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;verneg</span> | counter | Number of QUIC version negotiation packets received. |
| <span class="metrics-name">quic_&#8203;retry_&#8203;sent</span> | counter | Number of QUIC Retry packets sent. |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;retransmissions</span> | counter | Number of QUIC packets that retransmitted. |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">initial</span>"} | counter | Number of QUIC packets that retransmitted. (initial) |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">early</span>"} | counter | Number of QUIC packets that retransmitted. (early data) |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">handshake</span>"} | counter | Number of QUIC packets that retransmitted. (handshake) |
| <span class="metrics-name">quic_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">app</span>"} | counter | Number of QUIC packets that retransmitted. (app data) |

</div>

Expand Down Expand Up @@ -756,7 +759,10 @@
| <span class="metrics-name">send_&#8203;pkt_&#8203;undersz</span> | counter | Total count of undersized packets |
| <span class="metrics-name">send_&#8203;pkt_&#8203;oversz</span> | counter | Total count of oversized packets |
| <span class="metrics-name">send_&#8203;pkt_&#8203;verneg</span> | counter | Total count of version negotiation packets |
| <span class="metrics-name">send_&#8203;pkt_&#8203;retransmissions</span> | counter | Total count of packet retransmissions |
| <span class="metrics-name">send_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">initial</span>"} | counter | Total count of QUIC packet retransmissions. (initial) |
| <span class="metrics-name">send_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">early</span>"} | counter | Total count of QUIC packet retransmissions. (early data) |
| <span class="metrics-name">send_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">handshake</span>"} | counter | Total count of QUIC packet retransmissions. (handshake) |
| <span class="metrics-name">send_&#8203;pkt_&#8203;retransmissions</span><br/>{quic_&#8203;enc_&#8203;level="<span class="metrics-enum">app</span>"} | counter | Total count of QUIC packet retransmissions. (app data) |
| <span class="metrics-name">send_&#8203;handshakes_&#8203;created</span> | counter | Total count of QUIC handshakes created |
| <span class="metrics-name">send_&#8203;handshake_&#8203;error_&#8203;alloc_&#8203;fail</span> | counter | Total count of handshake allocation failures |
| <span class="metrics-name">send_&#8203;handshake_&#8203;evicted</span> | counter | Total count of handshakes evicted |
Expand Down
5 changes: 4 additions & 1 deletion src/disco/metrics/generated/fd_metrics_quic.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,5 +81,8 @@ const fd_metrics_meta_t FD_METRICS_QUIC[FD_METRICS_QUIC_TOTAL] = {
DECLARE_METRIC( QUIC_PKT_OVERSZ, COUNTER ),
DECLARE_METRIC( QUIC_PKT_VERNEG, COUNTER ),
DECLARE_METRIC( QUIC_RETRY_SENT, COUNTER ),
DECLARE_METRIC( QUIC_PKT_RETRANSMISSIONS, COUNTER ),
DECLARE_METRIC_ENUM( QUIC_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, INITIAL ),
DECLARE_METRIC_ENUM( QUIC_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, EARLY ),
DECLARE_METRIC_ENUM( QUIC_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, HANDSHAKE ),
DECLARE_METRIC_ENUM( QUIC_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, APP ),
};
8 changes: 7 additions & 1 deletion src/disco/metrics/generated/fd_metrics_quic.h
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,12 @@
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_DESC "Number of QUIC packets that retransmitted."
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_CVT (FD_METRICS_CONVERTER_NONE)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_CNT (4UL)

#define FD_METRICS_QUIC_TOTAL (80UL)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_INITIAL_OFF (127UL)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_EARLY_OFF (128UL)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_HANDSHAKE_OFF (129UL)
#define FD_METRICS_COUNTER_QUIC_PKT_RETRANSMISSIONS_APP_OFF (130UL)

#define FD_METRICS_QUIC_TOTAL (83UL)
extern const fd_metrics_meta_t FD_METRICS_QUIC[FD_METRICS_QUIC_TOTAL];
5 changes: 4 additions & 1 deletion src/disco/metrics/generated/fd_metrics_send.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,10 @@ const fd_metrics_meta_t FD_METRICS_SEND[FD_METRICS_SEND_TOTAL] = {
DECLARE_METRIC( SEND_PKT_UNDERSZ, COUNTER ),
DECLARE_METRIC( SEND_PKT_OVERSZ, COUNTER ),
DECLARE_METRIC( SEND_PKT_VERNEG, COUNTER ),
DECLARE_METRIC( SEND_PKT_RETRANSMISSIONS, COUNTER ),
DECLARE_METRIC_ENUM( SEND_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, INITIAL ),
DECLARE_METRIC_ENUM( SEND_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, EARLY ),
DECLARE_METRIC_ENUM( SEND_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, HANDSHAKE ),
DECLARE_METRIC_ENUM( SEND_PKT_RETRANSMISSIONS, COUNTER, QUIC_ENC_LEVEL, APP ),
DECLARE_METRIC( SEND_HANDSHAKES_CREATED, COUNTER ),
DECLARE_METRIC( SEND_HANDSHAKE_ERROR_ALLOC_FAIL, COUNTER ),
DECLARE_METRIC( SEND_HANDSHAKE_EVICTED, COUNTER ),
Expand Down
96 changes: 51 additions & 45 deletions src/disco/metrics/generated/fd_metrics_send.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,122 +192,128 @@
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_OFF (55UL)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_NAME "send_pkt_retransmissions"
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_DESC "Total count of packet retransmissions"
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_DESC "Total count of QUIC packet retransmissions."
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_CVT (FD_METRICS_CONVERTER_NONE)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_CNT (4UL)

#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_OFF (56UL)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_INITIAL_OFF (55UL)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_EARLY_OFF (56UL)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_HANDSHAKE_OFF (57UL)
#define FD_METRICS_COUNTER_SEND_PKT_RETRANSMISSIONS_APP_OFF (58UL)

#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_OFF (59UL)
#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_NAME "send_handshakes_created"
#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_DESC "Total count of QUIC handshakes created"
#define FD_METRICS_COUNTER_SEND_HANDSHAKES_CREATED_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_OFF (57UL)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_OFF (60UL)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_NAME "send_handshake_error_alloc_fail"
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_DESC "Total count of handshake allocation failures"
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_ERROR_ALLOC_FAIL_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_OFF (58UL)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_OFF (61UL)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_NAME "send_handshake_evicted"
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_DESC "Total count of handshakes evicted"
#define FD_METRICS_COUNTER_SEND_HANDSHAKE_EVICTED_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_OFF (59UL)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_OFF (62UL)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_NAME "send_stream_received_events"
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_DESC "Total count of stream events received"
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_EVENTS_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_OFF (60UL)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_OFF (63UL)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_NAME "send_stream_received_bytes"
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_DESC "Total bytes received via streams"
#define FD_METRICS_COUNTER_SEND_STREAM_RECEIVED_BYTES_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_OFF (61UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_OFF (64UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_NAME "send_received_frames"
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_DESC "Total count of QUIC frames received"
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CVT (FD_METRICS_CONVERTER_NONE)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CNT (22UL)

#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_UNKNOWN_OFF (61UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_ACK_OFF (62UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_RESET_STREAM_OFF (63UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STOP_SENDING_OFF (64UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CRYPTO_OFF (65UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_NEW_TOKEN_OFF (66UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAM_OFF (67UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_DATA_OFF (68UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_STREAM_DATA_OFF (69UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_STREAMS_OFF (70UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_DATA_BLOCKED_OFF (71UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAM_DATA_BLOCKED_OFF (72UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAMS_BLOCKED_OFF (73UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_NEW_CONN_ID_OFF (74UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_RETIRE_CONN_ID_OFF (75UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PATH_CHALLENGE_OFF (76UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PATH_RESPONSE_OFF (77UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CONN_CLOSE_QUIC_OFF (78UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CONN_CLOSE_APP_OFF (79UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_HANDSHAKE_DONE_OFF (80UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PING_OFF (81UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PADDING_OFF (82UL)

#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_OFF (83UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_UNKNOWN_OFF (64UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_ACK_OFF (65UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_RESET_STREAM_OFF (66UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STOP_SENDING_OFF (67UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CRYPTO_OFF (68UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_NEW_TOKEN_OFF (69UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAM_OFF (70UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_DATA_OFF (71UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_STREAM_DATA_OFF (72UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_MAX_STREAMS_OFF (73UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_DATA_BLOCKED_OFF (74UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAM_DATA_BLOCKED_OFF (75UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_STREAMS_BLOCKED_OFF (76UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_NEW_CONN_ID_OFF (77UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_RETIRE_CONN_ID_OFF (78UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PATH_CHALLENGE_OFF (79UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PATH_RESPONSE_OFF (80UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CONN_CLOSE_QUIC_OFF (81UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_CONN_CLOSE_APP_OFF (82UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_HANDSHAKE_DONE_OFF (83UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PING_OFF (84UL)
#define FD_METRICS_COUNTER_SEND_RECEIVED_FRAMES_PADDING_OFF (85UL)

#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_OFF (86UL)
#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_NAME "send_frame_fail_parse"
#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_DESC "Total count of frame parse failures"
#define FD_METRICS_COUNTER_SEND_FRAME_FAIL_PARSE_CVT (FD_METRICS_CONVERTER_NONE)

#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_OFF (84UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_OFF (87UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_NAME "send_frame_tx_alloc"
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_DESC "Results of attempts to acquire QUIC frame metadata."
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_CVT (FD_METRICS_CONVERTER_NONE)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_CNT (3UL)

#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_SUCCESS_OFF (84UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_FAIL_EMPTY_POOL_OFF (85UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_FAIL_CONN_MAX_OFF (86UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_SUCCESS_OFF (87UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_FAIL_EMPTY_POOL_OFF (88UL)
#define FD_METRICS_COUNTER_SEND_FRAME_TX_ALLOC_FAIL_CONN_MAX_OFF (89UL)

#define FD_METRICS_COUNTER_SEND_ACK_TX_OFF (87UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_OFF (90UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_NAME "send_ack_tx"
#define FD_METRICS_COUNTER_SEND_ACK_TX_TYPE (FD_METRICS_TYPE_COUNTER)
#define FD_METRICS_COUNTER_SEND_ACK_TX_DESC "Total count of ACK frames transmitted"
#define FD_METRICS_COUNTER_SEND_ACK_TX_CVT (FD_METRICS_CONVERTER_NONE)
#define FD_METRICS_COUNTER_SEND_ACK_TX_CNT (5UL)

#define FD_METRICS_COUNTER_SEND_ACK_TX_NOOP_OFF (87UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_NEW_OFF (88UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_MERGED_OFF (89UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_DROP_OFF (90UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_CANCEL_OFF (91UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_NOOP_OFF (90UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_NEW_OFF (91UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_MERGED_OFF (92UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_DROP_OFF (93UL)
#define FD_METRICS_COUNTER_SEND_ACK_TX_CANCEL_OFF (94UL)

#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_OFF (92UL)
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_OFF (95UL)
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_NAME "send_service_duration_seconds"
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_TYPE (FD_METRICS_TYPE_HISTOGRAM)
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_DESC "Duration spent in service"
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_CVT (FD_METRICS_CONVERTER_SECONDS)
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_MIN (1e-08)
#define FD_METRICS_HISTOGRAM_SEND_SERVICE_DURATION_SECONDS_MAX (0.1)

#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_OFF (109UL)
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_OFF (112UL)
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_NAME "send_receive_duration_seconds"
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_TYPE (FD_METRICS_TYPE_HISTOGRAM)
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_DESC "Duration spent processing packets"
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_CVT (FD_METRICS_CONVERTER_SECONDS)
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_MIN (1e-08)
#define FD_METRICS_HISTOGRAM_SEND_RECEIVE_DURATION_SECONDS_MAX (0.1)

#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_OFF (126UL)
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_OFF (129UL)
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_NAME "send_sign_duration_seconds"
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_TYPE (FD_METRICS_TYPE_HISTOGRAM)
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_DESC "Duration spent waiting for tls_cv signatures"
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_CVT (FD_METRICS_CONVERTER_SECONDS)
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_MIN (1e-06)
#define FD_METRICS_HISTOGRAM_SEND_SIGN_DURATION_SECONDS_MAX (0.1)

#define FD_METRICS_SEND_TOTAL (79UL)
#define FD_METRICS_SEND_TOTAL (82UL)
extern const fd_metrics_meta_t FD_METRICS_SEND[FD_METRICS_SEND_TOTAL];
4 changes: 2 additions & 2 deletions src/disco/metrics/metrics.xml
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ metric introduced.
<counter name="PktOversz" summary="Number of QUIC packets dropped due to being too large." />
<counter name="PktVerneg" summary="Number of QUIC version negotiation packets received." />
<counter name="RetrySent" summary="Number of QUIC Retry packets sent." />
<counter name="PktRetransmissions" summary="Number of QUIC packets that retransmitted." />
<counter name="PktRetransmissions" enum="QuicEncLevel" summary="Number of QUIC packets that retransmitted." />
</tile>


Expand Down Expand Up @@ -283,7 +283,7 @@ metric introduced.
<counter name="PktUndersz" summary="Total count of undersized packets" />
<counter name="PktOversz" summary="Total count of oversized packets" />
<counter name="PktVerneg" summary="Total count of version negotiation packets" />
<counter name="PktRetransmissions" summary="Total count of packet retransmissions" />
<counter name="PktRetransmissions" enum="QuicEncLevel" summary="Total count of QUIC packet retransmissions." />

<!-- QUIC handshake metrics -->
<counter name="HandshakesCreated" summary="Total count of QUIC handshakes created" />
Expand Down
2 changes: 1 addition & 1 deletion src/disco/quic/fd_quic_tile.c
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ metrics_write( fd_quic_ctx_t * ctx ) {
FD_MCNT_SET( QUIC, PKT_UNDERSZ, ctx->quic->metrics.pkt_undersz_cnt );
FD_MCNT_SET( QUIC, PKT_OVERSZ, ctx->quic->metrics.pkt_oversz_cnt );
FD_MCNT_SET( QUIC, PKT_VERNEG, ctx->quic->metrics.pkt_verneg_cnt );
FD_MCNT_SET( QUIC, PKT_RETRANSMISSIONS, ctx->quic->metrics.pkt_retransmissions_cnt );
FD_MCNT_ENUM_COPY( QUIC, PKT_RETRANSMISSIONS, ctx->quic->metrics.pkt_retx_cnt );

FD_MCNT_SET( QUIC, HANDSHAKES_CREATED, ctx->quic->metrics.hs_created_cnt );
FD_MCNT_SET( QUIC, HANDSHAKE_ERROR_ALLOC_FAIL, ctx->quic->metrics.hs_err_alloc_fail_cnt );
Expand Down
2 changes: 1 addition & 1 deletion src/discof/send/fd_send_tile.c
Original file line number Diff line number Diff line change
Expand Up @@ -638,7 +638,7 @@ metrics_write( fd_send_tile_ctx_t * ctx ) {
FD_MCNT_SET( SEND, PKT_UNDERSZ, ctx->quic->metrics.pkt_undersz_cnt );
FD_MCNT_SET( SEND, PKT_OVERSZ, ctx->quic->metrics.pkt_oversz_cnt );
FD_MCNT_SET( SEND, PKT_VERNEG, ctx->quic->metrics.pkt_verneg_cnt );
FD_MCNT_SET( SEND, PKT_RETRANSMISSIONS, ctx->quic->metrics.pkt_retransmissions_cnt );
FD_MCNT_ENUM_COPY( SEND, PKT_RETRANSMISSIONS, ctx->quic->metrics.pkt_retx_cnt );

FD_MCNT_SET( SEND, HANDSHAKES_CREATED, ctx->quic->metrics.hs_created_cnt );
FD_MCNT_SET( SEND, HANDSHAKE_ERROR_ALLOC_FAIL, ctx->quic->metrics.hs_err_alloc_fail_cnt );
Expand Down
4 changes: 2 additions & 2 deletions src/waltz/fd_rtt_est.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ fd_rtt_sample( fd_rtt_estimate_t * est,
/* min_rtt is estimated from rtt_ticks without adjusting for ack_delay */
est->min_rtt = fminf( prev_min_rtt, latest_rtt );

est->latest_rtt = latest_rtt;

/* smoothed_rtt is calculated from adjusted rtt_ticks
except: ack_delay must not be subtracted if the result would be less than minrtt */
float adj_rtt = fmaxf( est->min_rtt, latest_rtt - ack_delay );

est->latest_rtt = adj_rtt;

/* Taken directly from RFC 9002 Section 5.3 */
if( FD_UNLIKELY( !est->is_rtt_valid ) ) {
est->smoothed_rtt = adj_rtt;
Expand Down
Loading
Loading