From 311ccee70f5206360f5f3ed6ae870f991e608bc4 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 16 Mar 2016 11:51:49 -0700 Subject: transport: Also send flow control ACKs on sequence errors --- host/lib/transport/super_recv_packet_handler.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp index 8742d1d16..8bfa1973a 100644 --- a/host/lib/transport/super_recv_packet_handler.hpp +++ b/host/lib/transport/super_recv_packet_handler.hpp @@ -421,6 +421,12 @@ private: const size_t expected_packet_count = _props[index].packet_count; _props[index].packet_count = (info.ifpi.packet_count + 1) & seq_mask; if (expected_packet_count != info.ifpi.packet_count){ + if (_props[index].handle_flowctrl) { + // Always update flow control in this case, because we don't + // know which packet was dropped and what state the upstream + // flow control is in. + _props[index].handle_flowctrl(info.ifpi.packet_count); + } return PACKET_SEQUENCE_ERROR; } #endif -- cgit v1.2.3