aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2019-03-20 00:22:12 +0100
committerJulius Bünger <buenger@mytum.de>2019-03-20 00:23:13 +0100
commitc631834fae2abb517c70d23c856c68114e79f96d (patch)
tree9b0d847f6e95dbd589e011a238dc1aa98cf9ca12
parentd4db1cde70b0791229ff2704262e53e94e7c0dad (diff)
downloadgnunet-c631834fae2abb517c70d23c856c68114e79f96d.tar.gz
gnunet-c631834fae2abb517c70d23c856c68114e79f96d.zip
RPS Profiler: Keep track of push to single vs. multi-hop peer
-rw-r--r--src/rps/gnunet-rps-profiler.c76
-rw-r--r--src/rps/gnunet-service-rps.c18
2 files changed, 67 insertions, 27 deletions
diff --git a/src/rps/gnunet-rps-profiler.c b/src/rps/gnunet-rps-profiler.c
index 9aa786334..af27546f2 100644
--- a/src/rps/gnunet-rps-profiler.c
+++ b/src/rps/gnunet-rps-profiler.c
@@ -84,29 +84,31 @@ enum STAT_TYPE
84 STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL, /* 5 */ 84 STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL, /* 5 */
85 STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL, /* 6 */ 85 STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL, /* 6 */
86 STAT_TYPE_ISSUED_PUSH_SEND, /* 7 */ 86 STAT_TYPE_ISSUED_PUSH_SEND, /* 7 */
87 STAT_TYPE_ISSUED_PULL_REQ, /* 8 */ 87 STAT_TYPE_ISSUED_PUSH_SEND_MH, /* 8 */
88 STAT_TYPE_ISSUED_PULL_REQ_MH, /* 9 */ 88 STAT_TYPE_ISSUED_PULL_REQ, /* 9 */
89 STAT_TYPE_ISSUED_PULL_REP, /* 10 */ 89 STAT_TYPE_ISSUED_PULL_REQ_MH, /* 10 */
90 STAT_TYPE_SENT_PUSH_SEND, /* 11 */ 90 STAT_TYPE_ISSUED_PULL_REP, /* 11 */
91 STAT_TYPE_SENT_PULL_REQ, /* 12 */ 91 STAT_TYPE_SENT_PUSH_SEND, /* 12 */
92 STAT_TYPE_SENT_PULL_REQ_MH, /* 13 */ 92 STAT_TYPE_SENT_PULL_REQ, /* 13 */
93 STAT_TYPE_SENT_PULL_REP, /* 14 */ 93 STAT_TYPE_SENT_PULL_REQ_MH, /* 14 */
94 STAT_TYPE_RECV_PUSH_SEND, /* 15 */ 94 STAT_TYPE_SENT_PULL_REP, /* 15 */
95 STAT_TYPE_RECV_PULL_REQ, /* 16 */ 95 STAT_TYPE_RECV_PUSH_SEND, /* 16 */
96 STAT_TYPE_RECV_PULL_REQ_MH, /* 17 */ 96 STAT_TYPE_RECV_PUSH_SEND_MH, /* 17 */
97 STAT_TYPE_RECV_PULL_REP, /* 18 */ 97 STAT_TYPE_RECV_PULL_REQ, /* 18 */
98 STAT_TYPE_RECV_PULL_REP_MH, /* 19 */ 98 STAT_TYPE_RECV_PULL_REQ_MH, /* 19 */
99 STAT_TYPE_VIEW_SIZE, /* 20 */ 99 STAT_TYPE_RECV_PULL_REP, /* 20 */
100 STAT_TYPE_KNOWN_PEERS, /* 21 */ 100 STAT_TYPE_RECV_PULL_REP_MH, /* 21 */
101 STAT_TYPE_VALID_PEERS, /* 22 */ 101 STAT_TYPE_VIEW_SIZE, /* 22 */
102 STAT_TYPE_LEARND_PEERS, /* 23 */ 102 STAT_TYPE_KNOWN_PEERS, /* 23 */
103 STAT_TYPE_PENDING_ONLINE_CHECKS, /* 24 */ 103 STAT_TYPE_VALID_PEERS, /* 24 */
104 STAT_TYPE_UNREQUESTED_PULL_REPLIES, /* 25 */ 104 STAT_TYPE_LEARND_PEERS, /* 25 */
105 STAT_TYPE_PEERS_IN_PUSH_MAP, /* 26 */ 105 STAT_TYPE_PENDING_ONLINE_CHECKS, /* 26 */
106 STAT_TYPE_PEERS_IN_PULL_MAP, /* 27 */ 106 STAT_TYPE_UNREQUESTED_PULL_REPLIES, /* 27 */
107 STAT_TYPE_PEERS_IN_VIEW, /* 28 */ 107 STAT_TYPE_PEERS_IN_PUSH_MAP, /* 28 */
108 STAT_TYPE_VIEW_SIZE_AIM, /* 29 */ 108 STAT_TYPE_PEERS_IN_PULL_MAP, /* 29 */
109 STAT_TYPE_MAX, /* 30 */ 109 STAT_TYPE_PEERS_IN_VIEW, /* 30 */
110 STAT_TYPE_VIEW_SIZE_AIM, /* 31 */
111 STAT_TYPE_MAX, /* 32 */
110}; 112};
111 113
112static char* stat_type_strings[] = { 114static char* stat_type_strings[] = {
@@ -118,6 +120,7 @@ static char* stat_type_strings[] = {
118 "# rounds blocked - too many pushes, no pull replies", 120 "# rounds blocked - too many pushes, no pull replies",
119 "# rounds blocked - no pushes, no pull replies", 121 "# rounds blocked - no pushes, no pull replies",
120 "# push send issued", 122 "# push send issued",
123 "# push send issued (multi-hop peer)",
121 "# pull request send issued", 124 "# pull request send issued",
122 "# pull request send issued (multi-hop peer)", 125 "# pull request send issued (multi-hop peer)",
123 "# pull reply send issued", 126 "# pull reply send issued",
@@ -126,6 +129,7 @@ static char* stat_type_strings[] = {
126 "# pull requests sent (multi-hop peer)", 129 "# pull requests sent (multi-hop peer)",
127 "# pull replys sent", 130 "# pull replys sent",
128 "# push message received", 131 "# push message received",
132 "# push message received (multi-hop peer)",
129 "# pull request message received", 133 "# pull request message received",
130 "# pull request message received (multi-hop peer)", 134 "# pull request message received (multi-hop peer)",
131 "# pull reply messages received", 135 "# pull reply messages received",
@@ -206,6 +210,12 @@ enum STAT_TYPE stat_str_2_type (const char *stat_str)
206 { 210 {
207 return STAT_TYPE_ISSUED_PUSH_SEND; 211 return STAT_TYPE_ISSUED_PUSH_SEND;
208 } 212 }
213 else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PUSH_SEND_MH],
214 stat_str,
215 strlen (stat_type_strings[STAT_TYPE_ISSUED_PUSH_SEND_MH])))
216 {
217 return STAT_TYPE_ISSUED_PUSH_SEND_MH;
218 }
209 else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ], 219 else if (0 == strncmp (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ],
210 stat_str, 220 stat_str,
211 strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ]))) 221 strlen (stat_type_strings[STAT_TYPE_ISSUED_PULL_REQ])))
@@ -254,6 +264,12 @@ enum STAT_TYPE stat_str_2_type (const char *stat_str)
254 { 264 {
255 return STAT_TYPE_RECV_PUSH_SEND; 265 return STAT_TYPE_RECV_PUSH_SEND;
256 } 266 }
267 else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PUSH_SEND_MH],
268 stat_str,
269 strlen (stat_type_strings[STAT_TYPE_RECV_PUSH_SEND_MH])))
270 {
271 return STAT_TYPE_RECV_PUSH_SEND_MH;
272 }
257 else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REQ], 273 else if (0 == strncmp (stat_type_strings[STAT_TYPE_RECV_PULL_REQ],
258 stat_str, 274 stat_str,
259 strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REQ]))) 275 strlen (stat_type_strings[STAT_TYPE_RECV_PULL_REQ])))
@@ -2461,9 +2477,9 @@ void write_final_stats (void){
2461 "%s, %" /* id */ 2477 "%s, %" /* id */
2462 PRIu64 ", %" /* rounds */ 2478 PRIu64 ", %" /* rounds */
2463 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* blocking */ 2479 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* blocking */
2464 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */ 2480 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */
2465 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */ 2481 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */
2466 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */ 2482 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */
2467 PRIu64 ", %" /* view size */ 2483 PRIu64 ", %" /* view size */
2468 PRIu64 ", %" /* known peers */ 2484 PRIu64 ", %" /* known peers */
2469 PRIu64 ", %" /* valid peers */ 2485 PRIu64 ", %" /* valid peers */
@@ -2484,6 +2500,7 @@ void write_final_stats (void){
2484 rps_peers[i].stats[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL], 2500 rps_peers[i].stats[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL],
2485 rps_peers[i].stats[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL], 2501 rps_peers[i].stats[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL],
2486 rps_peers[i].stats[STAT_TYPE_ISSUED_PUSH_SEND], 2502 rps_peers[i].stats[STAT_TYPE_ISSUED_PUSH_SEND],
2503 rps_peers[i].stats[STAT_TYPE_ISSUED_PUSH_SEND_MH],
2487 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ], 2504 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ],
2488 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ_MH], 2505 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REQ_MH],
2489 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REP], 2506 rps_peers[i].stats[STAT_TYPE_ISSUED_PULL_REP],
@@ -2492,6 +2509,7 @@ void write_final_stats (void){
2492 rps_peers[i].stats[STAT_TYPE_SENT_PULL_REQ_MH], 2509 rps_peers[i].stats[STAT_TYPE_SENT_PULL_REQ_MH],
2493 rps_peers[i].stats[STAT_TYPE_SENT_PULL_REP], 2510 rps_peers[i].stats[STAT_TYPE_SENT_PULL_REP],
2494 rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND], 2511 rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND],
2512 rps_peers[i].stats[STAT_TYPE_RECV_PUSH_SEND_MH],
2495 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ], 2513 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ],
2496 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ_MH], 2514 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REQ_MH],
2497 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP_MH], 2515 rps_peers[i].stats[STAT_TYPE_RECV_PULL_REP_MH],
@@ -2517,9 +2535,9 @@ void write_final_stats (void){
2517 "SUM %" 2535 "SUM %"
2518 PRIu64 " %" /* rounds */ 2536 PRIu64 " %" /* rounds */
2519 PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" /* blocking */ 2537 PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" /* blocking */
2520 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */ 2538 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* issued */
2521 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */ 2539 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* sent */
2522 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */ 2540 PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" PRIu64 ", %" /* recv */
2523 PRIu64 ", %" /* view size */ 2541 PRIu64 ", %" /* view size */
2524 PRIu64 ", %" /* known peers */ 2542 PRIu64 ", %" /* known peers */
2525 PRIu64 ", %" /* valid peers */ 2543 PRIu64 ", %" /* valid peers */
@@ -2538,6 +2556,7 @@ void write_final_stats (void){
2538 sums[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL], 2556 sums[STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL],
2539 sums[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL], 2557 sums[STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL],
2540 sums[STAT_TYPE_ISSUED_PUSH_SEND], 2558 sums[STAT_TYPE_ISSUED_PUSH_SEND],
2559 sums[STAT_TYPE_ISSUED_PUSH_SEND_MH],
2541 sums[STAT_TYPE_ISSUED_PULL_REQ], 2560 sums[STAT_TYPE_ISSUED_PULL_REQ],
2542 sums[STAT_TYPE_ISSUED_PULL_REQ_MH], 2561 sums[STAT_TYPE_ISSUED_PULL_REQ_MH],
2543 sums[STAT_TYPE_ISSUED_PULL_REP], 2562 sums[STAT_TYPE_ISSUED_PULL_REP],
@@ -2546,6 +2565,7 @@ void write_final_stats (void){
2546 sums[STAT_TYPE_SENT_PULL_REQ_MH], 2565 sums[STAT_TYPE_SENT_PULL_REQ_MH],
2547 sums[STAT_TYPE_SENT_PULL_REP], 2566 sums[STAT_TYPE_SENT_PULL_REP],
2548 sums[STAT_TYPE_RECV_PUSH_SEND], 2567 sums[STAT_TYPE_RECV_PUSH_SEND],
2568 sums[STAT_TYPE_RECV_PUSH_SEND_MH],
2549 sums[STAT_TYPE_RECV_PULL_REQ], 2569 sums[STAT_TYPE_RECV_PULL_REQ],
2550 sums[STAT_TYPE_RECV_PULL_REQ_MH], 2570 sums[STAT_TYPE_RECV_PULL_REQ_MH],
2551 sums[STAT_TYPE_RECV_PULL_REP], 2571 sums[STAT_TYPE_RECV_PULL_REP],
@@ -2855,6 +2875,7 @@ run (void *cls,
2855 BIT(STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL) | 2875 BIT(STAT_TYPE_BLOCKS_MANY_PUSH_NO_PULL) |
2856 BIT(STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL) | 2876 BIT(STAT_TYPE_BLOCKS_NO_PUSH_NO_PULL) |
2857 BIT(STAT_TYPE_ISSUED_PUSH_SEND) | 2877 BIT(STAT_TYPE_ISSUED_PUSH_SEND) |
2878 BIT(STAT_TYPE_ISSUED_PUSH_SEND_MH) |
2858 BIT(STAT_TYPE_ISSUED_PULL_REQ) | 2879 BIT(STAT_TYPE_ISSUED_PULL_REQ) |
2859 BIT(STAT_TYPE_ISSUED_PULL_REQ_MH) | 2880 BIT(STAT_TYPE_ISSUED_PULL_REQ_MH) |
2860 BIT(STAT_TYPE_ISSUED_PULL_REP) | 2881 BIT(STAT_TYPE_ISSUED_PULL_REP) |
@@ -2863,6 +2884,7 @@ run (void *cls,
2863 BIT(STAT_TYPE_SENT_PULL_REQ_MH) | 2884 BIT(STAT_TYPE_SENT_PULL_REQ_MH) |
2864 BIT(STAT_TYPE_SENT_PULL_REP) | 2885 BIT(STAT_TYPE_SENT_PULL_REP) |
2865 BIT(STAT_TYPE_RECV_PUSH_SEND) | 2886 BIT(STAT_TYPE_RECV_PUSH_SEND) |
2887 BIT(STAT_TYPE_RECV_PUSH_SEND_MH) |
2866 BIT(STAT_TYPE_RECV_PULL_REQ) | 2888 BIT(STAT_TYPE_RECV_PULL_REQ) |
2867 BIT(STAT_TYPE_RECV_PULL_REQ_MH) | 2889 BIT(STAT_TYPE_RECV_PULL_REQ_MH) |
2868 BIT(STAT_TYPE_RECV_PULL_REP) | 2890 BIT(STAT_TYPE_RECV_PULL_REP) |
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c
index 63d4c1865..1871ef006 100644
--- a/src/rps/gnunet-service-rps.c
+++ b/src/rps/gnunet-service-rps.c
@@ -3500,6 +3500,15 @@ handle_peer_push (void *cls,
3500 if (channel_ctx->peer_ctx->sub == msub) 3500 if (channel_ctx->peer_ctx->sub == msub)
3501 { 3501 {
3502 GNUNET_STATISTICS_update(stats, "# push message received", 1, GNUNET_NO); 3502 GNUNET_STATISTICS_update(stats, "# push message received", 1, GNUNET_NO);
3503 if (NULL != map_single_hop &&
3504 GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop,
3505 peer))
3506 {
3507 GNUNET_STATISTICS_update (stats,
3508 "# push message received (multi-hop peer)",
3509 1,
3510 GNUNET_NO);
3511 }
3503 } 3512 }
3504 3513
3505 #if ENABLE_MALICIOUS 3514 #if ENABLE_MALICIOUS
@@ -3881,6 +3890,15 @@ send_push (struct PeerContext *peer_ctx)
3881 "# push send issued", 3890 "# push send issued",
3882 1, 3891 1,
3883 GNUNET_NO); 3892 GNUNET_NO);
3893 if (NULL != map_single_hop &&
3894 GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop,
3895 &peer_ctx->peer_id))
3896 {
3897 GNUNET_STATISTICS_update (stats,
3898 "# push send issued (multi-hop peer)",
3899 1,
3900 GNUNET_NO);
3901 }
3884 } 3902 }
3885} 3903}
3886 3904