summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-03-13 18:08:17 -0700
committerJosh Blum <josh@joshknows.com>2011-03-13 18:08:17 -0700
commite5b625a59b047481e648a3d9f8871e226d6ab7aa (patch)
tree001640997bfc0b652d475e0afca79e13523c5521
parent663af458b155a434fa45de8bc3f8de63cfaffcdb (diff)
downloaduhd-e5b625a59b047481e648a3d9f8871e226d6ab7aa.tar.gz
uhd-e5b625a59b047481e648a3d9f8871e226d6ab7aa.tar.bz2
uhd-e5b625a59b047481e648a3d9f8871e226d6ab7aa.zip
usrp2: clip the mtu discovery if its within default MTU + a few
-rw-r--r--host/lib/usrp/usrp2/usrp2_impl.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
index cb4d793ab..505df662a 100644
--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
+++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
@@ -208,6 +208,12 @@ static mtu_result_t determine_mtu(const std::string &addr){
else max_send_mtu = mtu.send_mtu - 4;
}
+ //don't trust the discovery if it lands slightly above default MTU
+ if (mtu.recv_mtu > udp_simple::mtu and mtu.recv_mtu <= udp_simple::mtu + 16)
+ mtu.recv_mtu = udp_simple::mtu;
+ if (mtu.send_mtu > udp_simple::mtu and mtu.send_mtu <= udp_simple::mtu + 16)
+ mtu.send_mtu = udp_simple::mtu;
+
return mtu;
}