Loading prrt/proto/processes/dataTransmitter.c +11 −12 Original line number Diff line number Diff line Loading @@ -82,29 +82,28 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { if (sock_ptr->pacingEnabled && sock_ptr->nextSendTime != 0) { debug(DEBUG_DATATRANSMITTER, "About to check for pacing."); prrtTimeDifference_t diff = 0; int64_t space; do { prrtTimeDifference_t now = (prrtTimeDifference_t) PrrtClock_get_current_time_us(); diff = ((prrtTimeDifference_t) sock_ptr->nextSendTime) - now; int64_t cwnd = (int64_t) PrrtReceiver_getBBRCwnd(sock_ptr->receiver); int64_t pipe = (int64_t) PrrtReceiver_get_pipe(sock_ptr->receiver); space = cwnd - pipe; debug(DEBUG_DATATRANSMITTER, "C: %u, P: %u, S: %d", cwnd, pipe, space); if(space < 0) { space = 0; diff = 10; } if (diff > 0 || payloadLength > space) { if (diff > 0) { debug(DEBUG_DATATRANSMITTER, "S: %u, Pacing for %d (%u).", packet->sequenceNumber, diff, now); debug(DEBUG_DATATRANSMITTER, "P: %u, S: %d, N: %d, %u", payloadLength, space, diff, sock_ptr->nextSendTime); usleep_nano((uint32_t) diff); } //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); } while (diff > 0 || payloadLength > space); } while (diff > 0); } else { usleep_nano(1); } int64_t space, cwnd, pipe; do { cwnd = (int64_t) PrrtReceiver_getBBRCwnd(sock_ptr->receiver); pipe = (int64_t) PrrtReceiver_get_pipe(sock_ptr->receiver); space = cwnd - pipe; usleep_nano(100); //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); } while(space < sock_ptr->mtu); prrtTimestamp_t now = PrrtClock_get_current_time_us(); if (sock_ptr->pacingEnabled) { double pacing_rate = PrrtReceiver_getBBRPacingRate(sock_ptr->receiver); Loading Loading
prrt/proto/processes/dataTransmitter.c +11 −12 Original line number Diff line number Diff line Loading @@ -82,29 +82,28 @@ static bool send_packet(PrrtSocket *sock_ptr, PrrtPacket *packet) { if (sock_ptr->pacingEnabled && sock_ptr->nextSendTime != 0) { debug(DEBUG_DATATRANSMITTER, "About to check for pacing."); prrtTimeDifference_t diff = 0; int64_t space; do { prrtTimeDifference_t now = (prrtTimeDifference_t) PrrtClock_get_current_time_us(); diff = ((prrtTimeDifference_t) sock_ptr->nextSendTime) - now; int64_t cwnd = (int64_t) PrrtReceiver_getBBRCwnd(sock_ptr->receiver); int64_t pipe = (int64_t) PrrtReceiver_get_pipe(sock_ptr->receiver); space = cwnd - pipe; debug(DEBUG_DATATRANSMITTER, "C: %u, P: %u, S: %d", cwnd, pipe, space); if(space < 0) { space = 0; diff = 10; } if (diff > 0 || payloadLength > space) { if (diff > 0) { debug(DEBUG_DATATRANSMITTER, "S: %u, Pacing for %d (%u).", packet->sequenceNumber, diff, now); debug(DEBUG_DATATRANSMITTER, "P: %u, S: %d, N: %d, %u", payloadLength, space, diff, sock_ptr->nextSendTime); usleep_nano((uint32_t) diff); } //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); } while (diff > 0 || payloadLength > space); } while (diff > 0); } else { usleep_nano(1); } int64_t space, cwnd, pipe; do { cwnd = (int64_t) PrrtReceiver_getBBRCwnd(sock_ptr->receiver); pipe = (int64_t) PrrtReceiver_get_pipe(sock_ptr->receiver); space = cwnd - pipe; usleep_nano(100); //PrrtReceiver_check_rto(sock_ptr->receiver, packet->sequenceNumber, PrrtPacket_type(packet)); } while(space < sock_ptr->mtu); prrtTimestamp_t now = PrrtClock_get_current_time_us(); if (sock_ptr->pacingEnabled) { double pacing_rate = PrrtReceiver_getBBRPacingRate(sock_ptr->receiver); Loading