Skip to content

802.15.4(e) MAC-Layer Task Force #3039

@jonas-rem

Description

@jonas-rem

There is the consensus that we need some kind of duty cycling MAC layer within RIOT. Within this issue we can provide a collection of open topics and progression. Feel free to add open points, topics and PRs.

Overview and open PRs:

Current Issues:

Message dispatching

When a node will be associated to an PAN-coordinator, the transmitting and receiving time is guided on the superframe architecture. That means there will be timespans, where the node can not send messages. Nevertheless, there will be incoming task-messages from upper-layer to the MAC layer task.

  1. Messages from upper layer (Low-prio)
  2. Messages from driver (isr-events) (High-prio)
  3. Messages from timer (High-prio)
    There must be a mechanism that (i) keeps the message queue empty. (ii) Takes care of the current MAC-layer state (just try to send a new packet when the MAC layer handled the previous one).

Storing state variables for the MAC-layer state machine.

  1. Static variables: Problem when we have more than one MAC-layer
  2. Store them in the device-descriptor: The same device-descriptor may be used in different MAC-layer. How to choose the fitting variable set (at compile time)?
  3. ?

Open Topics:

  1. Move the packet assemble from IEEE 802.15.4 compatible device-drivers to the MAC-layer.
  2. Procedure to configure the MAC-layer and start device discovery and associate with PAN (some Auto-init procedure).
    • Initialize capability information field according to the device capability [IEEE 802.15.4 , section 5.3.1.2].
    • Notify upper layer about established link (associate successfull).
  3. Implement MAC commands (MLME management service) [IEEE 802.15.4 standard section 6.2]
    • Scan
    • Associate, Disassociated
    • ...
  4. Implement TSCH MAC commands (MLME management service) [IEEE 802.15.4e standard section 6.2.0b]
    • ...

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions