hs: Remove v2 stats

We still keep v2 rendezvous stats since we will allow them until the network
has entirely phased out.

Related to #40266

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2021-02-16 10:36:13 -05:00
parent 9f2e74cac7
commit 897ec8a34c
6 changed files with 6 additions and 62 deletions

View File

@ -105,10 +105,9 @@ log_onion_service_stats(void)
}
log_notice(LD_HEARTBEAT,
"Our onion service%s received %u v2 and %u v3 INTRODUCE2 cells "
"Our onion service%s received %u v3 INTRODUCE2 cells "
"and attempted to launch %d rendezvous circuits.",
num_services == 1 ? "" : "s",
hs_stats_get_n_introduce2_v2_cells(),
hs_stats_get_n_introduce2_v3_cells(),
hs_stats_get_n_rendezvous_launches());
}

View File

@ -4075,7 +4075,7 @@ hs_service_receive_introduce2(origin_circuit_t *circ, const uint8_t *payload,
if (circ->hs_ident) {
ret = service_handle_introduce2(circ, payload, payload_len);
hs_stats_note_introduce2_cell(1);
hs_stats_note_introduce2_cell();
}
done:

View File

@ -12,20 +12,14 @@
/** Number of v3 INTRODUCE2 cells received */
static uint32_t n_introduce2_v3 = 0;
/** Number of v2 INTRODUCE2 cells received */
static uint32_t n_introduce2_v2 = 0;
/** Number of attempts to make a circuit to a rendezvous point */
static uint32_t n_rendezvous_launches = 0;
/** Note that we received another INTRODUCE2 cell. */
void
hs_stats_note_introduce2_cell(int is_hsv3)
hs_stats_note_introduce2_cell(void)
{
if (is_hsv3) {
n_introduce2_v3++;
} else {
n_introduce2_v2++;
}
n_introduce2_v3++;
}
/** Return the number of v3 INTRODUCE2 cells we have received. */
@ -35,13 +29,6 @@ hs_stats_get_n_introduce2_v3_cells(void)
return n_introduce2_v3;
}
/** Return the number of v2 INTRODUCE2 cells we have received. */
uint32_t
hs_stats_get_n_introduce2_v2_cells(void)
{
return n_introduce2_v2;
}
/** Note that we attempted to launch another circuit to a rendezvous point. */
void
hs_stats_note_service_rendezvous_launch(void)

View File

@ -9,9 +9,8 @@
#ifndef TOR_HS_STATS_H
#define TOR_HS_STATS_H
void hs_stats_note_introduce2_cell(int is_hsv3);
void hs_stats_note_introduce2_cell(void);
uint32_t hs_stats_get_n_introduce2_v3_cells(void);
uint32_t hs_stats_get_n_introduce2_v2_cells(void);
void hs_stats_note_service_rendezvous_launch(void);
uint32_t hs_stats_get_n_rendezvous_launches(void);

View File

@ -1722,7 +1722,6 @@ static hs_v2_stats_t *
hs_v2_stats_new(void)
{
hs_v2_stats_t *new_hs_v2_stats = tor_malloc_zero(sizeof(hs_v2_stats_t));
new_hs_v2_stats->v2_onions_seen_this_period = digestmap_new();
return new_hs_v2_stats;
}
@ -1737,8 +1736,6 @@ hs_v2_stats_free_(hs_v2_stats_t *victim_hs_v2_stats)
if (!victim_hs_v2_stats) {
return;
}
digestmap_free(victim_hs_v2_stats->v2_onions_seen_this_period, NULL);
tor_free(victim_hs_v2_stats);
}
@ -1753,40 +1750,9 @@ rep_hist_reset_hs_v2_stats(time_t now)
hs_v2_stats->rp_v2_relay_cells_seen = 0;
digestmap_free(hs_v2_stats->v2_onions_seen_this_period, NULL);
hs_v2_stats->v2_onions_seen_this_period = digestmap_new();
start_of_hs_v2_stats_interval = now;
}
/** As HSDirs, we saw another v2 onion with public key <b>pubkey</b>. Check
* whether we have counted it before, if not count it now! */
void
rep_hist_hsdir_stored_maybe_new_v2_onion(const crypto_pk_t *pubkey)
{
char pubkey_hash[DIGEST_LEN];
if (!hs_v2_stats) {
return; // We're not collecting stats
}
/* Get the digest of the pubkey which will be used to detect whether
we've seen this hidden service before or not. */
if (crypto_pk_get_digest(pubkey, pubkey_hash) < 0) {
/* This fail should not happen; key has been validated by
descriptor parsing code first. */
return;
}
/* Check if this is the first time we've seen this hidden
service. If it is, count it as new. */
if (!digestmap_get(hs_v2_stats->v2_onions_seen_this_period,
pubkey_hash)) {
digestmap_set(hs_v2_stats->v2_onions_seen_this_period,
pubkey_hash, (void*)(uintptr_t)1);
}
}
/*** HSv3 stats ******/
/** Start of the current hidden service stats interval or 0 if we're not
@ -1989,8 +1955,7 @@ rep_hist_format_hs_stats(time_t now, bool is_v3)
uint64_t rp_cells_seen = is_v3 ?
hs_v3_stats->rp_v3_relay_cells_seen : hs_v2_stats->rp_v2_relay_cells_seen;
size_t onions_seen = is_v3 ?
digest256map_size(hs_v3_stats->v3_onions_seen_this_period) :
digestmap_size(hs_v2_stats->v2_onions_seen_this_period);
digest256map_size(hs_v3_stats->v3_onions_seen_this_period) : 0;
time_t start_of_hs_stats_interval = is_v3 ?
start_of_hs_v3_stats_interval : start_of_hs_v2_stats_interval;

View File

@ -67,9 +67,7 @@ void rep_hist_hs_stats_init(time_t now);
void rep_hist_hs_stats_term(void);
time_t rep_hist_hs_stats_write(time_t now, bool is_v3);
char *rep_hist_get_hs_v2_stats_string(void);
void rep_hist_seen_new_rp_cell(bool is_v2);
void rep_hist_hsdir_stored_maybe_new_v2_onion(const crypto_pk_t *pubkey);
char *rep_hist_get_hs_v3_stats_string(void);
void rep_hist_hsdir_stored_maybe_new_v3_onion(const uint8_t *blinded_key);
@ -93,10 +91,6 @@ extern int onion_handshakes_assigned[MAX_ONION_HANDSHAKE_TYPE+1];
typedef struct hs_v2_stats_t {
/** How many v2 relay cells have we seen as rendezvous points? */
uint64_t rp_v2_relay_cells_seen;
/** Set of unique public key digests we've seen this stat period
* (could also be implemented as sorted smartlist). */
digestmap_t *v2_onions_seen_this_period;
} hs_v2_stats_t;
/** Structure that contains the various statistics we keep about v3