diff options
Diffstat (limited to 'host/lib/transport')
-rw-r--r-- | host/lib/transport/super_recv_packet_handler.hpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp index ea6143f89..28adff0d1 100644 --- a/host/lib/transport/super_recv_packet_handler.hpp +++ b/host/lib/transport/super_recv_packet_handler.hpp @@ -427,6 +427,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 |