aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
authorJohannes Walter <johannes.walter@ettus.com>2015-07-17 12:05:37 -0700
committerMartin Braun <martin.braun@ettus.com>2015-08-13 14:35:09 -0700
commit57fe541c9644e7488498d2c0311e38cf4564ec69 (patch)
tree5810565df90f7c05a0c0c38470b4dc41b6605073 /host/lib/transport
parent9353d16391a1923be32f861e9810d1f271608721 (diff)
downloaduhd-57fe541c9644e7488498d2c0311e38cf4564ec69.tar.gz
uhd-57fe541c9644e7488498d2c0311e38cf4564ec69.tar.bz2
uhd-57fe541c9644e7488498d2c0311e38cf4564ec69.zip
Transport: Update flow control on overruns
X300 stops sending packets when too many overruns occur. This presumably happens due to a lock up in the source flow control. In this patch we force a flow control update every time an overrun occurs.
Diffstat (limited to 'host/lib/transport')
-rw-r--r--host/lib/transport/super_recv_packet_handler.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/host/lib/transport/super_recv_packet_handler.hpp b/host/lib/transport/super_recv_packet_handler.hpp
index c3c2b8e97..0f1f7ff3a 100644
--- a/host/lib/transport/super_recv_packet_handler.hpp
+++ b/host/lib/transport/super_recv_packet_handler.hpp
@@ -560,6 +560,11 @@ private:
_props[index].handle_overflow();
curr_info.metadata = metadata;
UHD_MSG(fastpath) << "O";
+
+ // Not sending flow control would cause timeouts due to source flow control locking up
+ if(_props[index].handle_flowctrl) {
+ _props[index].handle_flowctrl(next_info[index].ifpi.packet_count);
+ }
}
return;