X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=tungre.cpp;h=5ee81cb131d8c087bcf3a07a48cb11271ed5f3cc;hb=3bcabb4fd4764b0804b8b44cb967edf7369cc714;hp=fb39982e9f8c216016b9ca2e4784718812497167;hpb=4c15e1ffd081f5e2f7840a6dea58b131c4358533;p=greproxy diff --git a/tungre.cpp b/tungre.cpp index fb39982..5ee81cb 100644 --- a/tungre.cpp +++ b/tungre.cpp @@ -10,6 +10,7 @@ #include "tunprotocol.h" #include "rsdecoder.h" #include "pacer.h" +#include "timeutil.h" using namespace std; @@ -34,6 +35,13 @@ int main(int argc, char **argv) Reorderer tun_reorderer(&tun_pacer); RSDecoder tun_decoder(&tun_reorderer); + int last_rcvd = 0, last_reorders = 0; + int last_fec_recovered = 0, last_lost = 0; + int last_output = 0; + int last_sent = 0; + timeval last_print; + gettimeofday(&last_print, NULL); + fd_set fds; FD_ZERO(&fds); for ( ;; ) { @@ -55,5 +63,28 @@ int main(int argc, char **argv) tun.read_packet(&gre_pacer); } tun_pacer.possibly_flush_packets(); + + timeval now; + gettimeofday(&now, NULL); + + if (tdiff(last_print, now) > 10.0) { + int rcvd = gre.get_received_packets(); + int fec_recovered = tun_decoder.get_recovered_packets(); + int reorders = tun_reorderer.get_reorders(); + int lost = tun_reorderer.get_lost_packets(); + int output = tun.get_sent_packets(); + int sent = gre.get_sent_packets(); + fprintf(stderr, "%5dp rcvd, %3dp FEC recovered, %4d reorders, %3dp lost, %5dp output. %5dp sent\n", + rcvd - last_rcvd, fec_recovered - last_fec_recovered, + reorders - last_reorders, lost - last_lost, + output - last_output, sent - last_sent); + last_rcvd = rcvd; + last_fec_recovered = fec_recovered; + last_reorders = reorders; + last_lost = lost; + last_output = output; + last_sent = sent; + last_print = now; + } } }