Supporting carrier sense

It’s MAC discussion time :slight_smile:

So, I was thinking about the plan for supporting carrier sense, as its
probably the most concrete and widely used functionality of MAC
protocols.

I can imagine two common carrier sense situations, one is where the MAC
simply wants to know if the channel is idle to perform some action, such
as entering a new state. The other situation is to carrier sense before
a transmission.

The first situation does not require an extremely low latency. I can
imagine that the MAC could just read the RSSI level from the RX side and
compare it to some threshold to determine if the channel is idle.

In the second situation, tighter timing might be required/desired. If
you rely on reading the RSSI from the RX side, this is at least some
amount of time old, and then by the time the decision is made and the
frame is passed down, the channel may be busy now. Of course, this can
still happen if the functionality is built in the FPGA, but the timing
can be much tighter.

But of course, everything could be built in the FPGA.

So I’m wondering what other peoples opinions are. Most of the MAC
should be in GNU Radio, but there are some things we might want to push
to the FPGA for tighter timing.

I’d imagine we can have some packet or flag which says to carrier sense
before the given transmission. It would need to specify the threshold
and time to sense.

In GNU Radio, or in the FPGA with control from GNU Radio?

  • George