From a64708821815a5420ff988f08548cc47defc7bcf Mon Sep 17 00:00:00 2001 From: Green Sky Date: Tue, 6 Jan 2026 15:36:48 +0100 Subject: [PATCH] fix out of order oscilation causing constant congestion events --- solanaceae/ngc_ft1/flow_only.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/solanaceae/ngc_ft1/flow_only.cpp b/solanaceae/ngc_ft1/flow_only.cpp index e7f0ceb..98a790f 100644 --- a/solanaceae/ngc_ft1/flow_only.cpp +++ b/solanaceae/ngc_ft1/flow_only.cpp @@ -168,13 +168,15 @@ void FlowOnly::onAck(std::vector seqs) { }); if (it != _in_flight.end() && !it->ignore) { // find first non ignore, it should be the expected - auto first_it = std::find_if_not(_in_flight.cbegin(), _in_flight.cend(), [](const auto& v) -> bool { return v.ignore; }); + auto first_it = std::find_if_not(_in_flight.begin(), _in_flight.end(), [](const auto& v) -> bool { return v.ignore; }); - if (first_it != _in_flight.cend() && it != first_it && !it->ignore) { + if (first_it != _in_flight.cend() && it != first_it && !first_it->ignore) { // not next expected seq -> skip detected _consecutive_events++; - it->ignore = true; // only handle once + // only handle once + it->ignore = true; + first_it->ignore = true; updateCongestion(); } else {