All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
Roadmap

The aim of the roadmap is to identify priority areas of RIOT development & enhancements. For each area, some near-future plans and concrete next steps are indicated. The text and items below are tentative, up for discussion, to be updated by regular pull requests.

Network Stack High layers

(contact/steering: Martine)

  • ICN stack support clean-up
  • discuss mid- and long-term plans for network stack maintenance & development (GNRC vs other supported stacks)
  • revisit network time synchronization
  • Provide a border router into 6LoWPANs (a 6LBR) that works out of the box in common scenarios:
    • in IPv6 networks with working Prefix Delegation (PD)
    • in IPv6 networks without working Prefix Delegation (eg. by means of ND Proxying)
    • in legacy networks (eg. by means of tunneling)
    • with configurable on-by-default fallbacks

Network Stack Low layers

(contact/steering: Peter)

  • Point-to-Point Protocol (PPP): finalize and merge gnrc_ppp

Integrations

(contact/steering: Teufelchen)

Power Modes

(contact/steering: benpicco)

  • concept to fix shell usage issue while LPM activated
  • integrate generic power management functions in device driver APIs (netdev, SAUL, ...)
  • more advanced LPM concepts:
    • sleeping for short periods (in cases where it is not feasible to switch to the idle thread and back) -> mitigate active waiting

Peripheral drivers

(contact/steering: maribu)

Timers

(contact/steering: kaspar030, benpicco, maribu)

  • cleanup and unification of low-level timer interfaces (timer, rtt, rtc)
  • implement capture mode

SPI

  • introduction of spi_slave interface
  • transition to spi_clk_t being the frequency in Hz, not an enum constant, to allow arbitrary frequencies
    • most implementations have been ported
  • allow a way to detect the actual frequency an SPI bus is running at

I2C

GPIO

(contact/steering: gschorcht, maribu)

  • add a port-based, feature-rich, thread-safe GPIO API
    • GPIO LL seems to fit the bill so for
    • many MCUs still need an implementation
  • add a high level API that unifies external and internal GPIOs on top

ADC

(contact/steering: benpicco, kfessel, gschorcht, maribu)

  • extend / replace the ADC API to allow advanced use cases
    • selecting reference voltages (think: multimeter app)
    • differential inputs
    • fast (ideally DMA supported) sampling (think: a digital oscilloscope app)
    • unify external and internal ADCs
    • see https://github.com/RIOT-OS/RIOT/pull/13247 for one proposal

Software Updates

(contact/steering: Emmanuel)

  • Modularize to provide toolbox supporting other image storing (e.g. support external flash), transport (other than CoAP), crypto (e.g. secure element).
  • riotboot support for architectures other than Cortex-M

Documentation

(contact/steering: Emmanuel)

  • Write and publish more RDMs

Low-level Hardware Support

(contact/steering: Alex)

  • radio support for TI SensorTag
  • radio support for Silab Thunderboard

Testing

(contact/steering: Kaspar)

  • automated network functionality tests (e.g. RPL + UDP/PING tests through border router, multi-hop) in IoTLAB dev sites?

Security

(contact/steering: Kaspar)

  • RNG unified (secure, or basic), seeding
  • RIOT default configuration = secure configuration (that's our goal/motto)

802.15.4 link layer security

(contact/steering: chrysn)

Current status: RIOT supports application provided keys, with no guidance on how to (and no practical ways to) use that securely (see CVE-2021-41061).

Goal: Usably secure defaults.

  • Figure out applicability of RFC9031 ("CoJP") to non-6TiSCH scenarios.
  • Implement RFC9031 with any extensions needed for the MACs RIOT has.
  • Provide tools to set up a recommended JRC, and to provision keys between it and the device at flash time. This may entail extensions to the build process, as CoJP requires per-device secrets.