On Thu, Dec 19, 2013 at 8:05 PM, Sylvain Munaut <246...@gmail.com> wrote:

> Now of course when starting a new task (after having demodulated /
> processed the IQ data), it's sometime important to know where in the
> IQ stream that command originated and it's important that the TDMA
> slicer didn't take too much advance because if it did, we might miss
> some of the TCH frames of the newly assigned channel. In the current
> code, everything is done in a single thread so I'm sure that the
> slicer didn't avance at all while I was processing the current packet.
>
> So, how would you implement this (architecture wise I mean) with PDUs
> / tagged stream / ...
>


I've been trying to come up with a perfect answer to this, but it depends
on just too many things.
I think it'll be a mix of all those techniques.

I think GNU Radio apps should look a bit like this:
At the top (think "MAC") blocks pass data as PDUs. The further down you go
("PHY"), you'll eventually need regular blocks. Here, tagged streams will
do what you want.
I guess gr-easymac was an early demo of this principle, although its
functionality can now be reproduced with pure GNU Radio. At CEL, we've
developed a FHSS network using pure GNU Radio, which works quite well
(someone still needs to release some code, and I hope they're reading this
:). There will be a presentation on this at FOSDEM, btw.

Also, I've been working on a way to do TDMA using the OFDM blocks (on one
of my lower-priority branches, though, so don't get too excited right now).
In principle, the idea is:
* At MAC level, create a package with a tx time stamp as a PDU
* Pass this to the OFDM mod. The time stamp will propagate along with the
length tag, and stay at the front of the streamed packet (this feature was
merged into GNU Radio a while back and is available in the latest release).
* The hardware driver should take the streamed packet and the metadata in
the tags (the tx time, though it could also be the centre frequency for FH)
and tx accordingly.
* At the receive side, all we need to do is remember the rx time of samples
when we do a packet modulation.

There's a couple of things that are hard here: On the TX side, we just hope
that the packet will reach the hardware in time. What if it doesn't? Well,
bad luck.

Bottom line: GNU Radio has only recently become capable of doing these
things. This means we are still in the process of figuring out of how
exactly to write TDMA PHYs with corresponding MACs, which is a feature that
we've always wanted and now seems achievable. I guess the more we try out,
the more we will identify what's missing in order to do this.

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

Reply via email to