From 535bde375299ac880166b89c06e47c7250b9970d Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Mon, 28 May 2018 16:38:46 +0200 Subject: [PATCH] Adds data in flight information on send packet updates. This prepares for making the BBR implementation more identical to the implementation in Quic, this is to ensure that results are comparable. Bug: webrtc:8415 Change-Id: I7b7e4769772d67cc5112969fefd4e56c6c72432e Reviewed-on: https://webrtc-review.googlesource.com/76600 Commit-Queue: Sebastian Jansson Reviewed-by: Stefan Holmer Cr-Commit-Position: refs/heads/master@{#23419} --- api/transport/network_types.h | 2 ++ api/transport/test/network_control_tester.cc | 3 +++ .../rtp/send_side_congestion_controller.cc | 2 ++ 3 files changed, 7 insertions(+) diff --git a/api/transport/network_types.h b/api/transport/network_types.h index 0693f69c7a..155d4ec11e 100644 --- a/api/transport/network_types.h +++ b/api/transport/network_types.h @@ -89,6 +89,8 @@ struct SentPacket { // sequence number that is unique over the whole call and increasing by 1 for // each packet. int64_t sequence_number; + // Data in flight when the packet was sent, including the packet. + DataSize data_in_flight = DataSize::Zero(); }; // Transport level feedback diff --git a/api/transport/test/network_control_tester.cc b/api/transport/test/network_control_tester.cc index 7ce75b17ed..0ba53028ef 100644 --- a/api/transport/test/network_control_tester.cc +++ b/api/transport/test/network_control_tester.cc @@ -95,6 +95,9 @@ void NetworkControllerTester::RunSimulation(TimeDelta duration, SentPacket sent_packet; sent_packet = next_packet(state_, current_time_, packet_interval); sent_packet.sequence_number = packet_sequence_number_++; + sent_packet.data_in_flight = sent_packet.size; + for (PacketResult& packet : outstanding_packets_) + sent_packet.data_in_flight += packet.sent_packet->size; Update(&state_, controller_->OnSentPacket(sent_packet)); accumulated_buffer_ += sent_packet.size; diff --git a/modules/congestion_controller/rtp/send_side_congestion_controller.cc b/modules/congestion_controller/rtp/send_side_congestion_controller.cc index 4ee5b7c4f8..de2fa9af59 100644 --- a/modules/congestion_controller/rtp/send_side_congestion_controller.cc +++ b/modules/congestion_controller/rtp/send_side_congestion_controller.cc @@ -594,6 +594,8 @@ void SendSideCongestionController::OnSentPacket( msg.size = DataSize::bytes(packet->payload_size); msg.send_time = Timestamp::ms(packet->send_time_ms); msg.sequence_number = packet->long_sequence_number; + msg.data_in_flight = + DataSize::bytes(transport_feedback_adapter_.GetOutstandingBytes()); task_queue_->PostTask([this, msg]() { RTC_DCHECK_RUN_ON(task_queue_); if (controller_)