diff options
| -rw-r--r-- | host/lib/usrp/usrp2/io_impl.cpp | 10 | ||||
| -rw-r--r-- | host/lib/usrp/usrp2/mboard_impl.cpp | 5 | 
2 files changed, 11 insertions, 4 deletions
| diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp index aa6d15783..9e29edd82 100644 --- a/host/lib/usrp/usrp2/io_impl.cpp +++ b/host/lib/usrp/usrp2/io_impl.cpp @@ -144,11 +144,13 @@ void usrp2_impl::io_impl::recv_pirate_loop(   **********************************************************************/  void usrp2_impl::io_init(void){      //send a small data packet so the usrp2 knows the udp source port -    for(size_t i = 0; i < _data_transports.size(); i++){ -        managed_send_buffer::sptr send_buff = _data_transports[i]->get_send_buff(); -        boost::uint32_t data = htonl(USRP2_INVALID_VRT_HEADER); -        memcpy(send_buff->cast<void*>(), &data, sizeof(data)); +    BOOST_FOREACH(zero_copy_if::sptr data_transport, _data_transports){ +        managed_send_buffer::sptr send_buff = data_transport->get_send_buff(); +        static const boost::uint32_t data = htonl(USRP2_INVALID_VRT_HEADER); +        std::memcpy(send_buff->cast<void*>(), &data, sizeof(data));          send_buff->commit(sizeof(data)); +        //drain the recv buffers (may have junk) +        while (data_transport->get_recv_buff().get());      }      //the number of recv frames is the number for the first transport diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp index 0ac988361..3d103c940 100644 --- a/host/lib/usrp/usrp2/mboard_impl.cpp +++ b/host/lib/usrp/usrp2/mboard_impl.cpp @@ -98,6 +98,11 @@ usrp2_mboard_impl::usrp2_mboard_impl(      //init the tx and rx dboards (do last)      dboard_init(); + +    //Issue a stop streaming command (in case it was left running). +    //Since this command is issued before the networking is setup, +    //most if not all junk packets will never make it to the socket. +    this->issue_ddc_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS);  }  usrp2_mboard_impl::~usrp2_mboard_impl(void){ | 
