diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-07-10 08:29:24 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-07-10 09:25:28 -0400 |
commit | c5db7667d6964344e87fb7ee71df3f2ebe8131e6 (patch) | |
tree | 62785a4997724bc8f252ac4d43129c5360dda8dd | |
parent | 11da5229d103fd13300b88a0efbc1da0b3970782 (diff) | |
download | tor-c5db7667d6964344e87fb7ee71df3f2ebe8131e6.tar.gz tor-c5db7667d6964344e87fb7ee71df3f2ebe8131e6.zip |
Add IPv6 read and write history to bwhist, state, and extrainfo.
These values are stored, persisted, and published. They are not yet
actually filled with anything.
-rw-r--r-- | src/app/config/or_state_st.h | 8 | ||||
-rw-r--r-- | src/app/config/statefile.c | 8 | ||||
-rw-r--r-- | src/feature/stats/bwhist.c | 21 |
3 files changed, 35 insertions, 2 deletions
diff --git a/src/app/config/or_state_st.h b/src/app/config/or_state_st.h index 8c4e9d5e61..31b7f8a983 100644 --- a/src/app/config/or_state_st.h +++ b/src/app/config/or_state_st.h @@ -65,6 +65,14 @@ struct or_state_t { int BWHistoryWriteInterval; struct smartlist_t *BWHistoryWriteValues; struct smartlist_t *BWHistoryWriteMaxima; + time_t BWHistoryIPv6ReadEnds; + int BWHistoryIPv6ReadInterval; + struct smartlist_t *BWHistoryIPv6ReadValues; + struct smartlist_t *BWHistoryIPv6ReadMaxima; + time_t BWHistoryIPv6WriteEnds; + int BWHistoryIPv6WriteInterval; + struct smartlist_t *BWHistoryIPv6WriteValues; + struct smartlist_t *BWHistoryIPv6WriteMaxima; time_t BWHistoryDirReadEnds; int BWHistoryDirReadInterval; struct smartlist_t *BWHistoryDirReadValues; diff --git a/src/app/config/statefile.c b/src/app/config/statefile.c index 4198c8a389..b25167d2ec 100644 --- a/src/app/config/statefile.c +++ b/src/app/config/statefile.c @@ -112,6 +112,14 @@ static const config_var_t state_vars_[] = { V(BWHistoryWriteInterval, POSINT, "900"), V(BWHistoryWriteValues, CSV, ""), V(BWHistoryWriteMaxima, CSV, ""), + V(BWHistoryIPv6ReadEnds, ISOTIME, NULL), + V(BWHistoryIPv6ReadInterval, POSINT, "900"), + V(BWHistoryIPv6ReadValues, CSV, ""), + V(BWHistoryIPv6ReadMaxima, CSV, ""), + V(BWHistoryIPv6WriteEnds, ISOTIME, NULL), + V(BWHistoryIPv6WriteInterval, POSINT, "900"), + V(BWHistoryIPv6WriteValues, CSV, ""), + V(BWHistoryIPv6WriteMaxima, CSV, ""), V(BWHistoryDirReadEnds, ISOTIME, NULL), V(BWHistoryDirReadInterval, POSINT, "900"), V(BWHistoryDirReadValues, CSV, ""), diff --git a/src/feature/stats/bwhist.c b/src/feature/stats/bwhist.c index fef8a3b2dd..44717f33ba 100644 --- a/src/feature/stats/bwhist.c +++ b/src/feature/stats/bwhist.c @@ -162,10 +162,14 @@ bw_array_free_(bw_array_t *b) tor_free(b); } -/** Recent history of bandwidth observations for read operations. */ +/** Recent history of bandwidth observations for (all) read operations. */ static bw_array_t *read_array = NULL; -/** Recent history of bandwidth observations for write operations. */ +/** Recent history of bandwidth observations for IPv6 read operations. */ +static bw_array_t *read_array_ipv6 = NULL; +/** Recent history of bandwidth observations for (all) write operations. */ STATIC bw_array_t *write_array = NULL; +/** Recent history of bandwidth observations for IPv6 write operations. */ +static bw_array_t *write_array_ipv6 = NULL; /** Recent history of bandwidth observations for read operations for the directory protocol. */ static bw_array_t *dir_read_array = NULL; @@ -179,12 +183,16 @@ void bwhist_init(void) { bw_array_free(read_array); + bw_array_free(read_array_ipv6); bw_array_free(write_array); + bw_array_free(write_array_ipv6); bw_array_free(dir_read_array); bw_array_free(dir_write_array); read_array = bw_array_new(); + read_array_ipv6 = bw_array_new(); write_array = bw_array_new(); + write_array_ipv6 = bw_array_new(); dir_read_array = bw_array_new(); dir_write_array = bw_array_new(); } @@ -358,6 +366,8 @@ bwhist_get_bandwidth_lines(void) bwhist_get_one_bandwidth_line(buf, "write-history", write_array); bwhist_get_one_bandwidth_line(buf, "read-history", read_array); + bwhist_get_one_bandwidth_line(buf, "ipv6-write-history", write_array_ipv6); + bwhist_get_one_bandwidth_line(buf, "ipv6-read-history", read_array_ipv6); bwhist_get_one_bandwidth_line(buf, "dirreq-write-history", dir_write_array); bwhist_get_one_bandwidth_line(buf, "dirreq-read-history", dir_read_array); @@ -441,6 +451,8 @@ bwhist_update_state(or_state_t *state) UPDATE(write_array, Write); UPDATE(read_array, Read); + UPDATE(write_array_ipv6, IPv6Write); + UPDATE(read_array_ipv6, IPv6Read); UPDATE(dir_write_array, DirWrite); UPDATE(dir_read_array, DirRead); @@ -535,6 +547,7 @@ bwhist_load_state(or_state_t *state, char **err) /* Assert they already have been malloced */ tor_assert(read_array && write_array); + tor_assert(read_array_ipv6 && write_array_ipv6); tor_assert(dir_read_array && dir_write_array); #define LOAD(arrname,st) \ @@ -548,6 +561,8 @@ bwhist_load_state(or_state_t *state, char **err) LOAD(write_array, Write); LOAD(read_array, Read); + LOAD(write_array_ipv6, IPv6Write); + LOAD(read_array_ipv6, IPv6Read); LOAD(dir_write_array, DirWrite); LOAD(dir_read_array, DirRead); @@ -565,7 +580,9 @@ void bwhist_free_all(void) { bw_array_free(read_array); + bw_array_free(read_array_ipv6); bw_array_free(write_array); + bw_array_free(write_array_ipv6); bw_array_free(dir_read_array); bw_array_free(dir_write_array); } |