Wednesday, March 2, 2011

[Discuss-gnuradio] Is data communication between UHD_USRP_SOURCE and USRP2 "polling" or "pushing"

Josh,

Once I start uhd_benmark_rx.py, USRP2 continuously sends data to the
host. The data rate is the sample rate times 4 (bytes per sample). This
happens even when no transmitter is around. Therefore, I assume that the
ADC just converts noise into samples and USRP2 sends those samples at
the rate specified by the sample rate when uhd_usrp_source is initialized.

I have one question, is data communication between USRP2 and
uhd_usrp_source "polling" or "pushing"? I thought it is "polling"
because only UDP socket client exists in uhd_usrp_source. In this case,
data RECV is triggered by the scheduler's work function. Usually the
noutput_items varies from time to time. If so, how can USRP2 send
samples at a constant rate of the specified samp_rate (as I observed)?

If it is "pushing" (which means that USRP2's firmware initiates the data
sending to the host), it looks like that USRP2 even sends samples of
noise at a constant speed. But if so, would the such samples fill the
kernel socket buffer (whose size is determined by "sudo sysctl -w
net.core.rmem_max=<new value>")? Newer packets will get dropped.


On 03/01/2011 06:13 PM, Josh Blum wrote:
> Nothing gets buffered in the UHD in the usrp2/n210 implementation.
> However, there is a kernel socket buffer on receive that has enough
> buffering for a second of samples. Once this buffer fills, newer packets
> are dropped.
>
> I also believe that this is the same on the raw ethernet driver.
>
> -josh


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

No comments:

Post a Comment