Friday, 26 November 2010

What RDC stands for in Contiki

So: Contiki, neat-o teeny-tiny footprint "OS" with IP6 stacklet, protothreads, various wizardry, and deep lack of coherence.

For the benefit of those stuck on the other end of search-tubes, I thought I'd note that RDC stands for "Radio Duty Cycle". Do you know how often it mentions that in the source or documentation? As far as I can tell, once. Gits. (cf. NETSTACK_RDC, NETSTACK_CONF_RDC, etc.)

So it turns out that the stack actually runs;

  • TCP/UDP
  • MAC
  • RDC "MAC"
  • Radio driver

And it turns out the "drivers" in core/net/mac are actually a random sprinkling of RDC and MAC drivers. Anything exporting an "rdc_driver" being one, and "mac_driver" being the other. So, obviously:

MAC drivers

csma
tdma_mac
ctdma_mac_driver
nullmac

RDC drivers

contikimac
cxmac
lpp
nullrdc_framer
nullrdc
sicslowmac_driver