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_)