Hi Dario,

On Sun, Jul 22, 2018 at 1:57 PM Dario Pennisi <da...@iptronix.com> wrote:

> Hi Brian,
> I think I understand where you're going but I still think you may have
> more trouble than solutions. One for all is bandwidth. 10g Ethernet is just
> able to support one channel at 200 msps. Unless you're downsampling
> somewhere you won't be able to pass all that bandwidth across the network
> for more than one stream. Also, linux tends to drop udp packets if traffic
> is too high so even if your sockets are handled locally you may experience
> trouble passing all that data around. Of course what you say is really nice
> and is sort of an extension to the concept of gnuradio blocks however I
> think that in the end, since the code between rfnic and sw implementation
> is going to be different anyway it's better to just write an oot sw block
> which is functionally equivalent to the rfnic one and you just drop it in.
> Note that in any case you can't just randomly swap rfnoc blocks with SW
> emulated ones as in each transition from host to rfnoc and vice versa you
> need streamers and bandwidth so for example if the block you want to
> substitute is in the middle of a rfnoc chain probably you won't have
> bandwidth as you're going to have data go back and forth too many times.
>

Noted, but nothing of concern for me here.  I don't care about anything
you've brought up here.  I am not interested in being convinced the
silliness of my idea, or the lack of bandwidth I can support.  Not
everything needs to run at 200Msps.  Not everything needs to run in real
time.  Not everything needs to fit in the current RFNoC development
environment.

I am looking for a response regarding the feasibility of having software
emulated RFNoC blocks, and guidance on where to look and how to implement
it with the context that I want it to be out-of-tree.  There are already
hooks, somewhere, for sending CHDR packets for both data and control, as
well as flow control, but from what I can figure out it isn't necessarily
exposed externally?  Would just deriving from device3 do mostly what I
want, and the only extension is that there needs to be a hook for register
writes/read?


>
> Regarding the one input 8 outputs this is something we stumbled upon as
> well. It's not a rfnoc limitation but rather just uhd as basically you have
> to have equal number of inputs and outputs or streamers won't be enabled
> correctly. You can hack it and enable them manually in your driver but it's
> easier to just add dummy inputs or outputs... You just have to remember
> once again that a single rfnoc block with multiple inputs and or outputs
> will share bandwidth across them so for example on x310 you can't pump in
> or out of ports more than a total of around 300msps...
>

Sounds like it's a bug in UHD that should be fixed.  Who knows how many
other bugs are out there because the blocks tested are a very tiny subset
of what blocks can be exercising.  My intent is that something like this
can create every possible combination of input and output ports and types.

There are bugs within UHD and I want this to help find them and make RFNoC
better.

Brian

>
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to