mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-14 17:13:50 +01:00
140 lines
5.2 KiB
Markdown
140 lines
5.2 KiB
Markdown
---
|
|
title: Roadmap
|
|
description: Overview of priority areas of RIOT development & enhancements
|
|
---
|
|
|
|
The aim of the roadmap is to identify priority areas of RIOT development and 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](https://github.com/miri64))
|
|
|
|
- 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:
|
|
- [x] in IPv6 networks with working Prefix Delegation (PD)
|
|
- [ ] in IPv6 networks without working Prefix Delegation (eg. by means of ND Proxying) <!-- 6man-variable-slaac also sounds nice but is at best a step between PD and just-a-single-v6-address -->
|
|
- [ ] in legacy networks (eg. by means of tunneling)
|
|
- [ ] with configurable on-by-default fallbacks
|
|
|
|
## Network Stack Low Layers
|
|
(contact/steering: [Peter](https://github.com/PeterKietzmann))
|
|
|
|
- Point-to-Point Protocol (PPP): finalize and merge `gnrc_ppp`
|
|
|
|
|
|
## Integrations
|
|
(contact/steering: [Teufelchen](https://github.com/teufelchen1))
|
|
|
|
- [Home-Assistant](https://www.home-assistant.io/) BTHome integration
|
|
- [Home-Assistant](https://www.home-assistant.io/) integration via [MQTT Discovery](https://www.home-assistant.io/integrations/mqtt#mqtt-discovery)
|
|
|
|
## Power Modes
|
|
(contact/steering: [benpicco](https://github.com/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](https://github.com/maribu))
|
|
|
|
### Timers
|
|
|
|
(contact/steering: [kaspar030](https://github.com/kaspar030), [benpicco](https://github.com/benpicco), [maribu](https://github.com/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
|
|
- see https://github.com/RIOT-OS/RIOT/pull/16727 for one proposal
|
|
|
|
### I2C
|
|
|
|
- introduction of `i2c_slave` interface
|
|
- see https://github.com/RIOT-OS/RIOT/issues/19560 for a discussion
|
|
|
|
### GPIO
|
|
|
|
(contact/steering: [gschorcht](https://github.com/gschorcht), [maribu](https://github.com/maribu))
|
|
|
|
- add a port-based, feature-rich, thread-safe GPIO API
|
|
- [GPIO LL](https://doc.riot-os.org/group__drivers__periph__gpio__ll.html) 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](https://github.com/benpicco), [kfessel](https://github.com/kfessel), [gschorcht](https://github.com/gschorcht), [maribu](https://github.com/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](https://github.com/emmanuelsearch))
|
|
|
|
- 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](https://github.com/emmanuelsearch))
|
|
|
|
- Write and publish more RDMs
|
|
|
|
|
|
|
|
## Low-Level Hardware Support
|
|
(contact/steering: [Alex](https://github.com/aabadie))
|
|
|
|
- radio support for TI SensorTag
|
|
- radio support for Silab Thunderboard
|
|
|
|
|
|
|
|
## Testing
|
|
(contact/steering: [Kaspar](https://github.com/kaspar030))
|
|
|
|
- automated network functionality tests (e.g. RPL + UDP/PING tests through border router, multi-hop) in IoTLAB dev sites?
|
|
|
|
|
|
|
|
## Security
|
|
(contact/steering: [Kaspar](https://github.com/kaspar030))
|
|
|
|
- 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](https://github.com/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](https://nvd.nist.gov/vuln/detail/CVE-2021-41061)).
|
|
|
|
Goal: Usably secure defaults.
|
|
|
|
- Figure out applicability of [RFC9031](https://www.rfc-editor.org/rfc/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.
|