diff --git a/scripts/Makefile b/scripts/Makefile index ad6d843..466fc7a 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -1,5 +1,13 @@ SHELL := /bin/bash +simple_test: + ./run-3 \ + 1,simple_test . \ + orig-client 600 100 100 . \ + orig-server . \ + tor3 -f /etc/torrc_simple . \ + tor3 -f /etc/torrc_simple + tor_bw_small: ./run-3 \ 1,tor_bw_small . \ diff --git a/scripts/thunder-client b/scripts/thunder-client new file mode 100755 index 0000000..601ec5d --- /dev/null +++ b/scripts/thunder-client @@ -0,0 +1,14 @@ +#!/bin/bash +mkdir -p $5/{log,shared,res} +donar \ + -a thunder \ + -c \ + -o $5/shared/onion_services.pub \ + -l $4 \ + -b \ + -r 9000 \ +> $5/log/client-donar-stdout.log 2> $5/log/client-donar-stderr.log & +sleep 2 + +measlat -h 127.13.3.7 -p 9000 > /dev/null 2>&1 # Used to wait for connections +measlat -h 127.13.3.7 -p 9000 -c $1 -i $2 -s $3 > $5/res/thunder.csv 2> $5/log/client-measlat-stderr.log diff --git a/scripts/thunder-server b/scripts/thunder-server new file mode 100755 index 0000000..0ec570f --- /dev/null +++ b/scripts/thunder-server @@ -0,0 +1,13 @@ +#!/bin/bash +mkdir -p $2/{log,shared} +cd $2/shared + +donar \ + -a thunder \ + -s \ + -l $1 \ + -b \ + -e 9000 \ +> ../log/server-donar-stdout.log 2> ../log/server-donar-stderr.log & + +udpecho -p 9000 > ../log/server-udpecho-stdout.log 2> ../log/server-udpecho-stderr.log diff --git a/src/proxy.c b/src/proxy.c index f0d5aad..b93d93e 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -53,6 +53,7 @@ int main_on_tcp_read(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) { if (read_res == FDS_AGAIN) return 1; } + app_ctx->cell_rcv++; if (ctx->verbose > 1) fprintf(stderr, " [proxy] Call logic on packet\n"); return app_ctx->desc->on_stream(ctx, fdinfo, bp); @@ -77,6 +78,7 @@ int main_on_udp_read(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) { if (read_res == FDS_AGAIN) return 1; // 3. Notify helpers + app_ctx->udp_rcv++; traffic_capture_notify (&app_ctx->cap, bp, "in"); // 4. Apply logic @@ -111,6 +113,7 @@ int main_on_tcp_write(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) if (write_res == FDS_ERR) goto co_error; if (write_res == FDS_AGAIN) return 1; } + app_ctx->cell_sent++; free_buffer: // 3. A whole packet has been written @@ -142,6 +145,7 @@ int main_on_udp_write (struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) // 3. Notify helpers if (ctx->verbose > 1) fprintf(stderr, " [proxy] Notify traffic capture\n"); + app_ctx->udp_sent++; traffic_capture_notify (&app_ctx->cap, bp, "out"); // 4. A whole packet has been written @@ -176,9 +180,11 @@ int main_on_err(struct evt_core_ctx* ctx, struct evt_core_fdinfo* fdinfo) { void algo_main_destroy(void* app_ctx) { struct algo_ctx* ctx = (struct algo_ctx*) app_ctx; + ctx->ref_count--; if (ctx->ref_count > 0) return; + printf("udp_sent: %ld, udp_rcv: %ld, cells_sent: %ld, cells_rcv: %ld\n", ctx->udp_sent, ctx->udp_rcv, ctx->cell_sent, ctx->cell_rcv); traffic_capture_stop(&ctx->cap); destroy_buffer_management(&ctx->br); if (ctx->free_misc) ctx->free_misc(ctx->misc); diff --git a/src/proxy.h b/src/proxy.h index aee276e..7fbbaba 100644 --- a/src/proxy.h +++ b/src/proxy.h @@ -39,6 +39,7 @@ struct algo_ctx { uint8_t is_rdy; struct algo_params ap; int ref_count; + uint64_t udp_rcv, udp_sent, cell_rcv, cell_sent; struct capture_ctx cap; struct buffer_resources br; void* misc; // Additional structures