mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
parent
83fdaff7c0
commit
2f7e05d89d
@ -94,6 +94,9 @@ void congestion_control_set_cc_enabled(void);
|
||||
/* Number of times the RTT value was reset. For MetricsPort. */
|
||||
static uint64_t num_rtt_reset;
|
||||
|
||||
/* Number of times the clock was stalled. For MetricsPort. */
|
||||
static uint64_t num_clock_stalls;
|
||||
|
||||
/* Consensus parameters cached. The non static ones are extern. */
|
||||
static uint32_t cwnd_max = CWND_MAX_DFLT;
|
||||
int32_t cell_queue_high = CELL_QUEUE_HIGH_DFLT;
|
||||
@ -136,6 +139,13 @@ congestion_control_get_num_rtt_reset(void)
|
||||
return num_rtt_reset;
|
||||
}
|
||||
|
||||
/** Return the number of clock stalls that have been done. */
|
||||
uint64_t
|
||||
congestion_control_get_num_clock_stalls(void)
|
||||
{
|
||||
return num_clock_stalls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update global congestion control related consensus parameter values,
|
||||
* every consensus update.
|
||||
@ -872,6 +882,7 @@ congestion_control_update_circuit_rtt(congestion_control_t *cc,
|
||||
|
||||
/* Do not update RTT at all if it looks fishy */
|
||||
if (time_delta_stalled_or_jumped(cc, cc->ewma_rtt_usec, rtt)) {
|
||||
num_clock_stalls++; /* Accounting */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -83,6 +83,7 @@ bool congestion_control_validate_sendme_increment(uint8_t sendme_inc);
|
||||
char *congestion_control_get_control_port_fields(const origin_circuit_t *);
|
||||
|
||||
uint64_t congestion_control_get_num_rtt_reset(void);
|
||||
uint64_t congestion_control_get_num_clock_stalls(void);
|
||||
|
||||
/* Ugh, C.. these are private. Use the getter instead, when
|
||||
* external to the congestion control code. */
|
||||
|
@ -373,6 +373,15 @@ fill_cc_values(void)
|
||||
metrics_format_label("action", "rtt_reset"));
|
||||
metrics_store_entry_update(sentry, congestion_control_get_num_rtt_reset());
|
||||
|
||||
sentry = metrics_store_add(the_store, rentry->type, rentry->name,
|
||||
rentry->help);
|
||||
metrics_store_entry_add_label(sentry,
|
||||
metrics_format_label("state", "clock_stalls"));
|
||||
metrics_store_entry_add_label(sentry,
|
||||
metrics_format_label("action", "rtt_skipped"));
|
||||
metrics_store_entry_update(sentry,
|
||||
congestion_control_get_num_clock_stalls());
|
||||
|
||||
sentry = metrics_store_add(the_store, rentry->type, rentry->name,
|
||||
rentry->help);
|
||||
metrics_store_entry_add_label(sentry,
|
||||
|
Loading…
Reference in New Issue
Block a user