aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/udp_zero_copy_asio.cpp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-07-09 17:56:19 +0000
committerJosh Blum <josh@joshknows.com>2010-07-09 17:56:19 +0000
commit8dd01e451e9102db06daed171c18d9fbb848df97 (patch)
tree2965e6ca706cd140b637d7a44617f55c0e3b5649 /host/lib/transport/udp_zero_copy_asio.cpp
parentad511bd81d726918a11ab1218a4bc48f8eaf6efe (diff)
parentecd7308793ad639880faf2a44f3b8b603d87c7fd (diff)
downloaduhd-8dd01e451e9102db06daed171c18d9fbb848df97.tar.gz
uhd-8dd01e451e9102db06daed171c18d9fbb848df97.tar.bz2
uhd-8dd01e451e9102db06daed171c18d9fbb848df97.zip
Merge branch 'error_handling' of ettus.sourcerepo.com:ettus/uhdpriv into usrp_e
Diffstat (limited to 'host/lib/transport/udp_zero_copy_asio.cpp')
-rw-r--r--host/lib/transport/udp_zero_copy_asio.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/host/lib/transport/udp_zero_copy_asio.cpp b/host/lib/transport/udp_zero_copy_asio.cpp
index 7f9292d24..e3f3ef5bf 100644
--- a/host/lib/transport/udp_zero_copy_asio.cpp
+++ b/host/lib/transport/udp_zero_copy_asio.cpp
@@ -16,6 +16,7 @@
//
#include <uhd/transport/udp_zero_copy.hpp>
+#include <uhd/transport/udp_simple.hpp> //mtu
#include <uhd/utils/assert.hpp>
#include <boost/cstdint.hpp>
#include <boost/asio.hpp>
@@ -29,7 +30,6 @@ using namespace uhd::transport;
**********************************************************************/
//enough buffering for half a second of samples at full rate on usrp2
static const size_t MIN_SOCK_BUFF_SIZE = size_t(sizeof(boost::uint32_t) * 25e6 * 0.5);
-static const size_t MAX_DGRAM_SIZE = 1500; //assume max size on send and recv
static const double RECV_TIMEOUT = 0.1; //100 ms
/***********************************************************************
@@ -51,8 +51,8 @@ public:
const std::string &addr,
const std::string &port
):
- phony_zero_copy_recv_if(MAX_DGRAM_SIZE),
- phony_zero_copy_send_if(MAX_DGRAM_SIZE)
+ phony_zero_copy_recv_if(udp_simple::mtu),
+ phony_zero_copy_send_if(udp_simple::mtu)
{
//std::cout << boost::format("Creating udp transport for %s %s") % addr % port << std::endl;
@@ -93,11 +93,11 @@ public:
//This way, the transport caller will have an idea about how much buffering to create.
size_t get_num_recv_frames(void) const{
- return this->get_buff_size<boost::asio::socket_base::receive_buffer_size>()/MAX_DGRAM_SIZE;
+ return this->get_buff_size<boost::asio::socket_base::receive_buffer_size>()/udp_simple::mtu;
}
size_t get_num_send_frames(void) const{
- return this->get_buff_size<boost::asio::socket_base::send_buffer_size>()/MAX_DGRAM_SIZE;
+ return this->get_buff_size<boost::asio::socket_base::send_buffer_size>()/udp_simple::mtu;
}
private:
@@ -155,17 +155,17 @@ template<typename Opt> static void resize_buff_helper(
else std::cout << boost::format(
"Current %s sock buff size: %d bytes"
) % name % actual_size << std::endl;
+ if (actual_size < target_size) std::cerr << boost::format(
+ "Warning:\n"
+ " The %s buffer is smaller than the requested size.\n"
+ " The minimum recommended buffer size is %d bytes.\n"
+ " See the USRP2 application notes on buffer resizing.\n"
+ ) % name % MIN_SOCK_BUFF_SIZE << std::endl;
}
//otherwise, ensure that the buffer is at least the minimum size
else if (udp_trans->get_buff_size<Opt>() < MIN_SOCK_BUFF_SIZE){
resize_buff_helper<Opt>(udp_trans, MIN_SOCK_BUFF_SIZE, name);
- if (udp_trans->get_buff_size<Opt>() < MIN_SOCK_BUFF_SIZE){
- std::cerr << boost::format(
- "Warning: the %s buffer size is smaller than the recommended size of %d bytes.\n"
- " See the USRP2 application notes on buffer resizing."
- ) % name % MIN_SOCK_BUFF_SIZE << std::endl;
- }
}
}