[tor-commits] [tor] 01/06: rephist: Track number of streams seen per type
gitolite role
git at cupani.torproject.org
Thu Oct 27 14:47:17 UTC 2022
This is an automated email from the git hooks/post-receive script.
dgoulet pushed a commit to branch main
in repository tor.
commit 98b98fd3ce767d9fd303908337fdae0a4d558d67
Author: David Goulet <dgoulet at torproject.org>
AuthorDate: Thu Oct 13 10:32:16 2022 -0400
rephist: Track number of streams seen per type
Related to #40194
Signed-off-by: David Goulet <dgoulet at torproject.org>
---
src/core/or/connection_edge.c | 10 ++++++++++
src/feature/stats/rephist.c | 44 +++++++++++++++++++++++++++++++++++++++++++
src/feature/stats/rephist.h | 3 +++
3 files changed, 57 insertions(+)
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index 7ba7ecc4c5..2a79d0cf58 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -4119,6 +4119,9 @@ connection_exit_begin_resolve(cell_t *cell, or_circuit_t *circ)
if (rh.length > RELAY_PAYLOAD_SIZE)
return -1;
+ /* Note the RESOLVE stream as seen. */
+ rep_hist_note_stream(RELAY_COMMAND_RESOLVE);
+
/* This 'dummy_conn' only exists to remember the stream ID
* associated with the resolve request; and to make the
* implementation of dns.c more uniform. (We really only need to
@@ -4241,6 +4244,10 @@ connection_exit_connect(edge_connection_t *edge_conn)
return;
}
+ /* Note the BEGIN stream as seen. We do this after the Exit policy check in
+ * order to only account for valid streams. */
+ rep_hist_note_stream(RELAY_COMMAND_BEGIN);
+
#ifdef HAVE_SYS_UN_H
if (conn->socket_family != AF_UNIX) {
#else
@@ -4336,6 +4343,9 @@ connection_exit_connect_dir(edge_connection_t *exitconn)
log_info(LD_EXIT, "Opening local connection for anonymized directory exit");
+ /* Note the BEGIN_DIR stream as seen. */
+ rep_hist_note_stream(RELAY_COMMAND_BEGIN_DIR);
+
exitconn->base_.state = EXIT_CONN_STATE_OPEN;
dirconn = dir_connection_new(tor_addr_family(&exitconn->base_.addr));
diff --git a/src/feature/stats/rephist.c b/src/feature/stats/rephist.c
index f12b1e8a70..962450e72b 100644
--- a/src/feature/stats/rephist.c
+++ b/src/feature/stats/rephist.c
@@ -1639,6 +1639,50 @@ rep_hist_note_exit_stream_opened(uint16_t port)
log_debug(LD_HIST, "Opened exit stream to port %d", port);
}
+/*** Streams statistics ***/
+
+/** Number of BEGIN streams seen. */
+static uint64_t streams_begin_seen;
+/** Number of BEGIN_DIR streams seen. */
+static uint64_t streams_begindir_seen;
+/** Number of RESOLVE streams seen. */
+static uint64_t streams_resolve_seen;
+
+/** Note a stream as seen for the given relay command. */
+void
+rep_hist_note_stream(unsigned int cmd)
+{
+ switch (cmd) {
+ case RELAY_COMMAND_BEGIN:
+ streams_begin_seen++;
+ break;
+ case RELAY_COMMAND_BEGIN_DIR:
+ streams_begindir_seen++;
+ break;
+ case RELAY_COMMAND_RESOLVE:
+ streams_resolve_seen++;
+ break;
+ default:
+ break;
+ }
+}
+
+/** Return number of stream seen for the given command. */
+uint64_t
+rep_hist_get_stream_seen(unsigned int cmd)
+{
+ switch (cmd) {
+ case RELAY_COMMAND_BEGIN:
+ return streams_begin_seen;
+ case RELAY_COMMAND_BEGIN_DIR:
+ return streams_begindir_seen;
+ case RELAY_COMMAND_RESOLVE:
+ return streams_resolve_seen;
+ default:
+ return 0;
+ }
+}
+
/******* Connections statistics *******/
#define CONN_DIRECTION_INITIATED 0
diff --git a/src/feature/stats/rephist.h b/src/feature/stats/rephist.h
index 2a83dd185e..c1352ae7f8 100644
--- a/src/feature/stats/rephist.h
+++ b/src/feature/stats/rephist.h
@@ -48,6 +48,9 @@ uint64_t rep_hist_get_conn_created(bool initiated, unsigned int type);
uint64_t rep_hist_get_conn_opened(bool initiated, unsigned int type);
uint64_t rep_hist_get_conn_rejected(unsigned int type);
+void rep_hist_note_stream(unsigned int cmd);
+uint64_t rep_hist_get_stream_seen(unsigned int cmd);
+
void rep_hist_buffer_stats_init(time_t now);
void rep_hist_buffer_stats_add_circ(circuit_t *circ,
time_t end_of_interval);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tor-commits
mailing list