release-notes.txt: add 2021.10 release notes
This commit is contained in:
parent
ca1ab67a9d
commit
b2b9af3e7a
@ -1,3 +1,822 @@
|
||||
RIOT-2021.10 - Release Notes
|
||||
============================
|
||||
RIOT is a multi-threading operating system which enables soft real-time
|
||||
capabilities and comes with support for a range of devices that are typically
|
||||
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
|
||||
light-weight 32-bit processors.
|
||||
|
||||
RIOT is based on the following design principles: energy-efficiency, soft
|
||||
real-time capabilities, small memory footprint, modularity, and uniform API
|
||||
access, independent of the underlying hardware (with partial POSIX compliance).
|
||||
|
||||
RIOT is developed by an international open-source community which is
|
||||
independent of specific vendors (e.g. similarly to the Linux community) and is
|
||||
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
|
||||
business models around the free open-source software platform provided by RIOT.
|
||||
|
||||
|
||||
About this release
|
||||
==================
|
||||
|
||||
The 2021.10 release includes:
|
||||
|
||||
The last three months again brought many new features, fixes and improvements
|
||||
to the RIOT codebase. There is new hardware support, new helper functions and
|
||||
many new modules that help with building IoT applications.
|
||||
|
||||
Some of the new features are:
|
||||
|
||||
GCOAP DTLS
|
||||
----------
|
||||
|
||||
The GCOAP CoAP library now supports transport encryption via tinyDTLS.
|
||||
This is a compile-time toggle, so either all requests are encrypted or none.
|
||||
There is already a PR (#16688) that will allow to mix encrypted and unencrypted
|
||||
requests.
|
||||
|
||||
FIDO2 support
|
||||
-------------
|
||||
|
||||
We now have an implementation of the Fast Identity Online 2 (FIDO2) specification.
|
||||
With this you can use any RIOT device with USB support as an authenticaton token
|
||||
similar to the YubiKey.
|
||||
|
||||
RPL-over-BLE
|
||||
------------
|
||||
|
||||
The 6LoWPAN over Bluetooth Low Energy module has gained support for the RPL
|
||||
routing protocol. With this it's now possible to set up IPv6 based mesh networks
|
||||
over BLE on chips supported by the Nimble Bluetooth stack.
|
||||
|
||||
GNRC TCP
|
||||
--------
|
||||
|
||||
RIOT's native GNRC network stack now has support for the TCP protocol via the
|
||||
socket API. With this you can switch between LWIP and GNRC without changing your
|
||||
application.
|
||||
|
||||
DHCPv6 relay agent
|
||||
------------------
|
||||
|
||||
The DHCP module can now act as a relay, forwarding DHCPv6 requests for
|
||||
multihop-operation.
|
||||
|
||||
DHCPv6 IA_NA support
|
||||
--------------------
|
||||
|
||||
The DHCPv6 client can now also request non-temporary addresses as an alternative
|
||||
to Stateless Access Autoconfiguration (SLAAC) that is used by default.
|
||||
The feature can be enabled by selecting the `dhcpv6_client_ia_na` module.
|
||||
|
||||
gnrc_ipv6_auto_subnets
|
||||
----------------------
|
||||
|
||||
This new module allows to split a large IPv6 prefix into smaller ones that can
|
||||
be used to configure downstream interfaces with a prefix.
|
||||
The process can be repeated recursively for a cascading subnet topology.
|
||||
|
||||
This can be a lightweight alternative to DHCPv6 that only relies on router
|
||||
advertisements.
|
||||
|
||||
For more details on this, see the talk on the 2021 RIOT summit.
|
||||
|
||||
UDP benchmark
|
||||
-------------
|
||||
|
||||
The examples section has gained a UDP benchmark.
|
||||
This can be used as a network stress test and is accompanied by a host tool
|
||||
(`dist/tools/benchmark_udp`) that acts as the benchmark server to which the
|
||||
benchmark clients will connect.
|
||||
|
||||
URI template processor
|
||||
----------------------
|
||||
|
||||
URI templates up to level 3 (according to RFC 6570) can now be parsed with this
|
||||
tool.
|
||||
|
||||
riotboot serial flasher
|
||||
-----------------------
|
||||
|
||||
RIOT's native bootloader has gained the ability to load a firmware via UART.
|
||||
This allows to program a board without the need for external programmers, a
|
||||
serial console is enough.
|
||||
|
||||
RTC mem for sam0 and STM32
|
||||
--------------------------
|
||||
|
||||
Many real-time clocks have the ability to store a few bytes in their memory as
|
||||
user data. This memory is retained across reboots and deep sleep.
|
||||
|
||||
We now have an interface for this feature and implemented it on SAM L21,
|
||||
SAM D5x/E5x and STM32.
|
||||
|
||||
LWIP improvements
|
||||
-----------------
|
||||
|
||||
The alternative LWIP network stack can now make use of multiple interfaces.
|
||||
Initialisation is done using the new XFA (cross-file array) feature so new
|
||||
drivers can be added by only adding a single file.
|
||||
|
||||
Advanced topologies in ZEP dispatcher
|
||||
-------------------------------------
|
||||
|
||||
With `socket_zep` and the ZEP dispatcher it is possible to simulate a virtual
|
||||
IEEE 802.15.4 network with `native` nodes.
|
||||
ZEP dispatcher has now gained support for lossy connections that make this
|
||||
simulation behave closer to reality.
|
||||
|
||||
There are also PRs pending to automatically generate such topologies (#16889)
|
||||
and to hook up the ZEP dispatcher to the foren6 network visualizer (#16879).
|
||||
|
||||
RIOT_VERSION_CODE macro
|
||||
-----------------------
|
||||
|
||||
We have added a `RIOT_VERSION_CODE` macro that can be used by external
|
||||
modules / boards to check against which RIOT version it is compiled.
|
||||
|
||||
This allows to react to API changes if the module is built against different
|
||||
versions of RIOT.
|
||||
|
||||
gnrc_netif_ipv6_wait_for_global_address()
|
||||
-----------------------------------------
|
||||
|
||||
For apps that want to connect to a remote server, send some data and then go back
|
||||
to sleep, there is now the new `gnrc_netif_ipv6_wait_for_global_address()` function.
|
||||
|
||||
This function blocks until a global address has been configured (e.g. via router
|
||||
advertisement) or a timeout happens.
|
||||
So no more guessing if a connection can yet be established or if the interface is
|
||||
not configured yet.
|
||||
|
||||
This feature depends on the `gnrc_netif_bus` module.
|
||||
|
||||
netutils_get_ipv6()
|
||||
-------------------
|
||||
|
||||
This simple function can parse a IPv6 address from a string.
|
||||
But that's not all - if the `sock_dns` module is enabled, the string can also
|
||||
be a hostname which will then be resolved.
|
||||
|
||||
This provides a small and simple alternative to `getaddrinfo()` that can be used
|
||||
by shell commands and applications alike.
|
||||
|
||||
gnrc_icmpv6_echo corruption detection
|
||||
-------------------------------------
|
||||
|
||||
On Linux the `ping` command from iputils has the neat feature that it fills the
|
||||
payload with of the ICMP echo request with a pattern that is then echoed back by
|
||||
the receiver.
|
||||
|
||||
That means it can detect if the payload got corruped on the way, e.g. by broken
|
||||
fragmentation or other errors.
|
||||
|
||||
The RIOT `ping` command now also implements this feature that lets you easily
|
||||
detect if something broke along the way.
|
||||
|
||||
New Hardware Support
|
||||
--------------------
|
||||
|
||||
In this cycle we have seen the addition of three new MCU families!
|
||||
Our latest additions are the Raspberry Pi RP2040 and the GD32VF103 RISC-V MCU
|
||||
from GigaDevice.
|
||||
|
||||
Both only have very basic support so far (only GPIO, UART and timers), which
|
||||
still leaves many low hanging fruits for adding peripheral drivers.
|
||||
Patches welcome!
|
||||
|
||||
The nRF9160 is closer to it's nRF52 siblings, but brings GPS and LTE-M/NB-IoT
|
||||
peripherals. While we are not there yet, there is ongoing work to also support
|
||||
these in RIOT.
|
||||
|
||||
The ATxmega family of 8-bit MCUs can now make use of the EBI interface to use
|
||||
external memory. The new XMEGA-A1 Xplained already makes use of this feature.
|
||||
|
||||
On the STM32 side we have now support for the `nucleo-wl55jc` and it's LoRa
|
||||
transceiver.
|
||||
The IEEE 802.15.4 / BLE radio on the STM32WB family is however still waiting
|
||||
for a driver.
|
||||
|
||||
The common LM75 family of temperature drivers is now supported by RIOT.
|
||||
|
||||
The ethernet driver for the SAM E5x line of MCUs is now stable.
|
||||
|
||||
The sub-MAC layer that implements common MAC features for IEEE 802.15.4 radios
|
||||
has again seen many improvements.
|
||||
It is currently used by the nRF52 and CC2538 line of MCUs.
|
||||
|
||||
API changes
|
||||
-----------
|
||||
|
||||
The `spi_acquire()` no longer returns an error code but will throw an assertion
|
||||
if called with the wrong parameters.
|
||||
This allows to speed up SPI operations a bit as SPI parameters are usually fixed
|
||||
at compile time.
|
||||
|
||||
The `gnrc_netdev_default` was replaced by the network stack agnostic
|
||||
`netdev_default` module.
|
||||
|
||||
For now `gnrc_netdev_default` remains an alias for `netdev_default`, but it will
|
||||
be removed in a future release.
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
263 pull requests, composed of 590 commits, have been merged since the
|
||||
last release, and 14 issues have been solved. 36 people contributed with
|
||||
code in 98 days. 1756 files have been touched with 138909 (+) insertions and
|
||||
12027 deletions (-).
|
||||
|
||||
|
||||
Notations used below
|
||||
====================
|
||||
|
||||
+ means new feature/item
|
||||
* means modified feature/item
|
||||
- means removed feature/item
|
||||
|
||||
|
||||
New features and changes
|
||||
========================
|
||||
|
||||
Core (3)
|
||||
--------
|
||||
|
||||
+ core/sched: add runq_callback hook and runq inspection functions (#16463)
|
||||
+ core: add irq_is_enabled() function to irq interface (#11117)
|
||||
* core/msg doc: Clarify; elaborating on interaction with queue (#16794)
|
||||
|
||||
System Libraries (12)
|
||||
---------------------
|
||||
|
||||
+ riotboot: implement serial flasher (#15493)
|
||||
+ FIDO2 support in RIOT (#16489)
|
||||
+ test_utils: add UDP benchmark (#16710)
|
||||
+ uri_parser: provide function to split query (#16695)
|
||||
+ usbus/hid_io: add missing header file, add RX callback function (#16689)
|
||||
+ ut_process: initial import of a URI template processor (#16702)
|
||||
* sys/picolibc_syscalls_default: support new picolibc stdio globals
|
||||
[backport 2021.10] (#17020)
|
||||
* sys/random/fortuna: change interval ressed to ms (#16594)
|
||||
* sys/shell/commands/gnrc_icmpv6_echo: test for ICMPv6 reply corruption (#15622)
|
||||
* sys/shell/commands: gnrc_icmpv6_echo: use msg_avail() (#16611)
|
||||
* uri_parser: constify result (#16707)
|
||||
+ sys/credman: add key load functions (#16263)
|
||||
|
||||
Networking (49)
|
||||
---------------
|
||||
|
||||
+ dhcpv6_relay: initial import of a lightweight DHCPv6 relay agent (#16606)
|
||||
+ gnrc/netif: add gnrc_netif_ipv6_wait_for_global_address() (#16824)
|
||||
+ gnrc_ipv6_nib: handle route information option and add config to add
|
||||
to final RAs (#16568)
|
||||
+ gnrc_ipv6_simple_subnets: auto-configuration for nested subnets on a
|
||||
simple tree topology (#16536)
|
||||
+ gnrc_netif: add gnrc_netif_ipv6_add_prefix() & helper functions (#16672)
|
||||
+ gnrc_sock_tcp: add gnrc sock tcp (#16494)
|
||||
+ gnrc_tcp: Add GNRC_TCP_NO_TIMEOUT (#16735)
|
||||
+ net/BLE: add support for RPL-over-BLE (#16364)
|
||||
+ net/gcoap: support DTLS (#15549)
|
||||
+ net/gnrc_lorawan: implement unconfirmed uplink redundancy (#15946)
|
||||
+ net/netif: add function to get interface by name from a buffer (#16709)
|
||||
+ netutils: add netutils_get_ipv6() (#16634)
|
||||
+ sys/net/dhcpv6: Add IA_NA support to the DHCPv6 client (#16228)
|
||||
+ tests/gnrc_lorawan: add initial tests (#16654)
|
||||
* dhcpv6_client: make IA_PD an optional module (#16658)
|
||||
* dhcpv6_client: mrd calculation fixed (#16679)
|
||||
* dhcpv6_client: refactor to use `event_timeout` for non-sock timeouts (#16668)
|
||||
* drivers/sx126x : r/NETOPT_RX_TIMEOUT/NETOPT_RX_SYMBOL_TIMEOUT (#16599)
|
||||
* gnrc/ipv6_auto_subnets: relax topology requirements (#16750)
|
||||
* gnrc/nib: consolidate prefix removal code in
|
||||
_nib_offl_remove_prefix() (#16729)
|
||||
* gnrc_ipv6_nib: provide functions to get offset of public timestamps (#16706)
|
||||
* gnrc_netif_pktq: schedule immediately if timer us is equal to zero (#16745)
|
||||
* gnrc_tcp: align with sock tcp (#16493)
|
||||
* gnrc_tcp: experimental feature "dynamic msl" (#16764)
|
||||
* gnrc_tcp: handle zero size buffers (#16738)
|
||||
* ipv6: fix typo in ipv6_addr_to_str documentation (#16828)
|
||||
* netdev/lora: fix size of NETOPT_RX_SYMBOL_TIMEOUT (#16604)
|
||||
* sock_dns: factor out message parsing and composition (#16669)
|
||||
* sys/net/dhcpv6: Refactor DHCPv6 client (#16728)
|
||||
* sys/net/dhcpv6: Refactor IA_NA implementation (#16724)
|
||||
* sys/net/netopt: Drop deprecated NETOPT_MAX_PACKET_SIZE (#16023)
|
||||
* tree-wide: avoid explicit cast to netdev (#16577)
|
||||
|
||||
Packages (8)
|
||||
------------
|
||||
|
||||
+ pkg/wakaama: add get set functions and cleanup client connection (#16203)
|
||||
* make: support package mirrors [backport 2021.10] (#16996)
|
||||
* pkg/edhoc-c: ignore llvm flagged error (#16871)
|
||||
* pkg/edhoc-c: remove nimble blacklist (#16819)
|
||||
* pkg/edhoc: bump version (#16708)
|
||||
* pkg/nanocbor: bump version (#16829)
|
||||
* pkg/tinydtls: bump version (#16624)
|
||||
* pkg/nimble/autoadv: make AD flag optional (#16703)
|
||||
* pkg/nimble: bump version, rmv patches (#16830)
|
||||
* pkg/nimble: configure BLE_LL_INIT_SLOT_SIZE to 1 (#16602)
|
||||
* pkg/nimble: have RIOT always initialize nimble timers (#16623)
|
||||
* pkg/nimble: use tinycrypt pkg (#16540)
|
||||
+ pkg/lwip: add auto-init for DOSE & at86rf215, cc2538_rf (#16761)
|
||||
+ pkg/lwip: Add thread safety check when using DEVELHELP (#16259)
|
||||
+ pkg/nimble/netif: add nimble_netif_accept_direct() (#16603)
|
||||
+ pkg/nimble/scanner: add function to set scan duration (#16701)
|
||||
* pkg/lwip: Allow initializing different types of netifs (#16162)
|
||||
* pkg/lwip: implement netif_get_name() (#16741)
|
||||
* pkg/semtech-loramac: forward uplink schedule request to upper layer (#16961)
|
||||
* pkg/tinydtls: handling of close_notify (#16422)
|
||||
|
||||
Boards (19)
|
||||
-----------
|
||||
|
||||
+ boards/{pic32-wifire,6lowpan-clicker}: Add CLOCK_CORECLOCK (#16607)
|
||||
+ boards: Introduce atxmega-a1-xplained board (#16289)
|
||||
+ gd32v/seeedstudio-gd32: Initial support (#16036)
|
||||
* boards/adafruit-clue: fix doxygen warnings (#16847)
|
||||
* boards/lora-e5-dev: initial support (#16660)
|
||||
* boards/nrf52: replace gnrc_netdev_default with netdev_default (#16788)
|
||||
* boards/saml21-xpro: configure UART & SPI on EXT2, 3 (#16694)
|
||||
|
||||
CPU (27)
|
||||
--------
|
||||
|
||||
+ cpu/atxmega/periph: Add ebi driver (#16288)
|
||||
* cpu/atxmega: Fix features config (#16742)
|
||||
+ cpu/nrf9160: add initial support for nRF9160DK board (#16650)
|
||||
+ cpu/nrf9160: add twi and spi support (#16814)
|
||||
+ cpu/rpx0xx: add periph timer (#16627)
|
||||
+ cpu/rpx0xx: port RIOT to the Raspberry Pi RP2040 MCU (#16609)
|
||||
+ cpu/stm32: added ADC for g0 (#16885)
|
||||
+ cpu/stm32: added APB12 bus multiplier entry for applicable cpus (#16881)
|
||||
+ cpu/nrf52: i2c: add support for 16-bit register addresses (#16711)
|
||||
+ cpu/riscv: add CPU_ARCH information (#16877)
|
||||
+ cpu/stm32: add rtc_mem (#16802)
|
||||
+ cpu/stm32: added RAM_LEN identifier for stm32g03x (#16886)
|
||||
+ stm32/spi : Add check for GPIO_UNDEF (#16625)
|
||||
+ cpu/nrf52: add SAUL driver for VDDH sensor (#16003)
|
||||
* avr_libc_extra: implement strerror() (#16717)
|
||||
* cpu/cc2538: don't pollute global namespace with cc2538_rfcore.h (#16863)
|
||||
* cpu/kinetis: fix RAM_LEN calculation (#16608)
|
||||
* cpu/native: fix thread_yield_higher() with IRQs disabled (#16754)
|
||||
* cpu/native: make use of stdio_read() / stdio_write() (#16822)
|
||||
* cpu/rpx0xx: fix minor gpio warnings (#16685)
|
||||
* cpu/sam0: improve ethernet driver resilience (#16683)
|
||||
* cpu/stm32/periph/rtc_all.c for CPU_FAM_STM32L5 support. (#16656)
|
||||
* riscv: Simplify reset trampoline (#16876)
|
||||
|
||||
Device Drivers (7)
|
||||
------------------
|
||||
|
||||
* drivers/cc2538_rf: remove cc2538_rf_netdev_legacy (#16628)
|
||||
* drivers/nrf802154: remove nrf802154_rf_netdev_legacy (#16630)
|
||||
* drivers/sx127x: remove ZTIMER_USEC dependency (#15030)
|
||||
* ieee802154/radio_hal: detach hal descriptor from driver (#16534)
|
||||
* ieee802154/submac: reimplement using FSM (#16746)
|
||||
* ieee802154/submac: avoid race condition between RX_DONE and
|
||||
ACK_TIMEOUT (#16964)
|
||||
* ieee802154/submac: fix leftovers of #16746 (#16823)
|
||||
+ drivers/dose: make use of start condition received interrupt (#16506)
|
||||
+ drivers/periph: define rtc_mem and implement it for sam0_common (#16758)
|
||||
+ drivers/cc110x: add power off (sleep) functions (#16232)
|
||||
+ drivers/lm75: add SAUL integration (#16763)
|
||||
+ drivers/lpsxxx: add support for lps22hh (#16880)
|
||||
+ rtt_rtc: add rtt_rtc_settimeofday() & rtt_rtc_gettimeofday() (#16682)
|
||||
* drivers/at86rf215: remove msg queue dependency (#16747)
|
||||
* drivers/lm75: driver for the lm75 sensor and derivatives (#16678)
|
||||
+ sx126x: add support for multiple simultaneous variants (#16597)
|
||||
+ drivers/ili9341: add rotation mode to ili9341_params_t (#16773)
|
||||
+ drivers/sx126x: Add support for Nucleo -WL55JC (#16579)
|
||||
* drivers/cc110x: use pseudo-modules for band selection (#16865)
|
||||
|
||||
Documentation (9)
|
||||
-----------------
|
||||
|
||||
+ boards/nrf52840dongle docs: Introduce "quick start" section (#15658)
|
||||
+ dist/tools/doccheck: add exclude file for warnings and use it (#16779)
|
||||
* cpu: fix doxygen grouping warnings (#16813)
|
||||
* doc/doxygen/src/advanced-build-system-tricks: fix no udev link (#16810)
|
||||
* doc/doxygen: increase dot graph max nodes (#16686)
|
||||
* doc/porting-boards.md: improve with porting graph and reference
|
||||
section (#15981)
|
||||
* feather-nrf52840: several fixes to documentation (#16777)
|
||||
* net/ieee802154_security doc: Shape security expectations (#16841)
|
||||
* README.md: fix doc link (#16786)
|
||||
|
||||
Build System / Tooling (8)
|
||||
--------------------------
|
||||
|
||||
+ build system: add machine-readable RIOT_VERSION_CODE macro (#16765)
|
||||
+ build system: add VERBOSE_ASSERT flag (#16884)
|
||||
+ make: add capability to check config for `test-with-config` (#16795)
|
||||
+ makefiles/clang-tidy: initial support (#16509)
|
||||
* dist/tools/compile_and_test_for_board: fix W1514 (#16772)
|
||||
* dist/tools/doccheck: generate exclude_patterns using C.UTF-8 (#16846)
|
||||
* dist/tools/pyterm: ipv6 address support for tcp_serial option (#16726)
|
||||
* dist/tools: use f-strings where possible (#16867)
|
||||
* Makefile.include: only warn if not curl, wget, unzip, 7z (#16784)
|
||||
+ tools/zep_dispatch: add support for advanced topologies (#15773)
|
||||
* Remove `which` from shell invocations (#16776)
|
||||
|
||||
Kconfig (5)
|
||||
-----------
|
||||
|
||||
+ cpu/cc2538: Add Kconfig support (#16719)
|
||||
+ makefiles/kconfig.mk: generate config file from RIOT_CONFIG_%
|
||||
environment variables (#16052)
|
||||
* drivers/lm75: fixed a typo in Kconfig (#16825)
|
||||
* drivers/mtd: fix Kconfig dependencies (#16836)
|
||||
* makefiles/kconfig.mk: force SHOULD_USE_KCONFIG if config file is
|
||||
present (#16641)
|
||||
|
||||
Examples (3)
|
||||
------------
|
||||
|
||||
+ examples/lorawan: add LoRaWAN keys to DOCKER_ENV_VARS (#17010)
|
||||
* examples/nimble_*: use nimble_autoadv module (#13506)
|
||||
+ examples/suit_update: Add compatibility with native (#15994)
|
||||
|
||||
Testing (10)
|
||||
------------
|
||||
|
||||
+ dist/pythonlibs/riotctrl_shell/tests/common: add expect to mock (#17003)
|
||||
+ gnrc_tcp: refactor tests (#16461)
|
||||
+ tests/gnrc_dhcpv6_client: add script to check if $IFACE exists (#16797)
|
||||
* CODEOWNERS: remove Robert Hartung (#16858)
|
||||
* gh/workflows/release-tests: update LoRaWAN parameters to ttnv3
|
||||
[backport 2021.10] (#17013)
|
||||
* Small fatfs usability fixes (#16800)
|
||||
* tests/gnrc_dhcpv6_client: kill potential previous Kea session (#16820)
|
||||
* tests/ieee802154_hal: check error codes and improve error reporting (#16556)
|
||||
* tests/unittests/tests-ipv6_hdr: fix too short ipv6_hdr_t allocations (#16616)
|
||||
* tests/ieee802154_submac: remove netdev dependency (#16826)
|
||||
|
||||
API Changes (5)
|
||||
---------------
|
||||
|
||||
* drivers/ina3221: style fixes and improvements (#15915)
|
||||
* drivers/periph_spi: let spi_acquire return void (#15902)
|
||||
* gnrc_tcp: rewrite passive open (#16459)
|
||||
* nanocoap & gcoap: allow path to be non-`\0`-terminated. (#16712)
|
||||
* sys/net/nanocoap: block_finish returns if more are expected (#16704)
|
||||
|
||||
Uncategorized (3)
|
||||
-----------------
|
||||
+ README.md: add graphical logo (#16856)
|
||||
+ release-notes.txt: add 2021.07 release notes (#16651)
|
||||
* README.md: Expose HiL CI overview link (#16720)
|
||||
* Remove duplicated includes introduced in #15902 (#16798)
|
||||
* treewide: Fix "too many consecutive empty lines" warnings (#16733)
|
||||
|
||||
And 63 minor changes.
|
||||
|
||||
Deprecations
|
||||
============
|
||||
|
||||
Deprecations (1)
|
||||
----------------
|
||||
|
||||
* gnrc: deprecate gnrc_netdev_default, use netdev_default instead (#16744)
|
||||
|
||||
|
||||
Bug fixes (32)
|
||||
==============
|
||||
|
||||
* boards/nucleo-wl55jc: add SX126X_PARAM_TYPE to board.h (#16646)
|
||||
* build system: add fallback for RIOT_VERSION_CODE (#16895)
|
||||
* cpu/avr8_common: Fix link with binutils > 2.35.2 (#16790)
|
||||
* cpu/cortexm: ldscripts: bkup-ram -> bkup_ram (#16753)
|
||||
* cpu/esp_common: fix boot issue on ESP8266 (#16639)
|
||||
* cpu/saml21: uart: use arithmetic baud rate mode (#16693)
|
||||
* dhcpv6_client: keep integers in retransmission calculations signed
|
||||
[backport 2021.10] (#16995)
|
||||
* drivers/cc2538_rf: fix deadlock when receiving too fast. (#16716)
|
||||
* drivers/sx126x: fix netdev send and recv function (#16570)
|
||||
* event_timeout: check clock before removing ztimer on clear (#16667)
|
||||
* gnrc/nib: gnrc_ipv6_nib_get_next_hop_l2addr(): only assume neighbor
|
||||
cache entries to always be on-link (#16671)
|
||||
* gnrc/sock: recv avoid spinning xtimer (#16831)
|
||||
* gnrc_ipv6_nib: consider largest prefix match when deciding if host
|
||||
on-link (#16557)
|
||||
* gnrc_ipv6_nib: queue packets that trigger probing on border router
|
||||
[backport 2021.10] (#16949)
|
||||
* gnrc_lorawan: fix gnrc_pktbuf_release_error (introduced by #16080) (#16617)
|
||||
* gnrc_sock: imply end-point netif only if unset (#16643)
|
||||
* ieee802154/submac: fix initialization code (#16533)
|
||||
* Makefile.base: cleanup non selected source object files [backport
|
||||
2021.10] (#16953)
|
||||
* mtd: fix mtd_write_page() across sector boundaries (#16848)
|
||||
* net/gnrc_lorawan: fix pick channel (#16664)
|
||||
* net/lorawan: Revert #16604 and fix NETOPT_RX_SYMBOL_TIMEOUT
|
||||
documentation (#16640)
|
||||
* netutils: get interface by name rather than ID (#16673)
|
||||
* pkg/lwip: Fix compilation without IPv6 (#16762)
|
||||
* pkg/lwip: Fix DHCP autostart (#16636)
|
||||
* pkg/mynewt-core: initial commit (#16348)
|
||||
* pkg/nimble/autoconn: stop scan/adv on NETIF_ABORT_SLAVE (#16699)
|
||||
* pkg/wakaama: fix object common `get` functions (#16691)
|
||||
* Revert "Remove `which` from shell invocations" (#16803)
|
||||
* tests/gnrc_dhcpv6_client: Fix for newer Kea versions and remove sudo
|
||||
requirement (#16792)
|
||||
* tests/gnrc_dhcpv6_client: honor configured $IFACE in Kea config (#16796)
|
||||
* tinydtls: sock_dtls: only use ifindex with link-local addresses (#16910)
|
||||
|
||||
|
||||
Known issues
|
||||
============
|
||||
|
||||
Network related issues (52)
|
||||
---------------------------
|
||||
|
||||
* 6lo gnrc fragmentation expects driver to block on TX (#7474)
|
||||
* 6lo: RIOT does not receive packets from Linux when short_addr is set (#11033)
|
||||
* Address registration handling inappropriate (#15867)
|
||||
* app/netdev: application stops working after receiving frames with
|
||||
assertion or completely without error (#8271)
|
||||
* at86rf2xx: Dead lock when sending while receiving (#8242)
|
||||
* at86rf2xx: lost interrupts (#5486)
|
||||
* CC2538 RF overlapping PIN usage (#8779)
|
||||
* core: "Invalid read of size 4" (#7199)
|
||||
* cpu/esp8266: Tracking open problems of esp_wifi netdev driver (#10861)
|
||||
* dist/tools/sliptty/start_network.sh: IPv6 connectivity is broken on
|
||||
PC (#14689)
|
||||
* driver/mrf24j40: blocks shell input with auto_init_gnrc_netif (#12943)
|
||||
* drivers/at86rf215: Incorrect channel number set for subGHz (#15906)
|
||||
* DTLS examples cannot send message to localhost (#14315)
|
||||
* Emcute cannot create a double-byte name (#12642)
|
||||
* ethernet: Missing multicast addr assignment (#13493)
|
||||
* ethos: fails to respond to first message. (#11988)
|
||||
* ethos: Unable to choose global source address. (#13745)
|
||||
* ethos: Unable to handle fragmented IPv6 packets from Linux kernel (#12264)
|
||||
* examples/cord_ep: Dead lock when (re-)registering in callback
|
||||
function (#12884)
|
||||
* examples/gnrc_border_router: esp_wifi crashes on disconnect (#14679)
|
||||
* Forwarding a packet back to its link layer source should not be
|
||||
allowed (#5051)
|
||||
* gcoap example request on tap I/F fails with NIB issue (#8199)
|
||||
* gcoap: Suspected crosstalk between requests (possible NULL call) (#14390)
|
||||
* General 802.15.4/CC2538 RF driver dislikes fast ACKs (#7304)
|
||||
* gnrc ipv6: multicast packets are not dispatched to the upper layers (#5230)
|
||||
* gnrc_border_router stops routing after a while (#16398)
|
||||
* gnrc_icmpv6_echo: flood-pinging another node leads to leaks in own
|
||||
packet buffer (#12565)
|
||||
* gnrc_ipv6: Multicast is not forwarded if routing node listens to the
|
||||
address (#4527)
|
||||
* gnrc_rpl: missing bounds checks in _parse_options (#16085)
|
||||
* gnrc_sock_udp: Possible Race condition on copy in application buffer (#10389)
|
||||
* gomach: Resetting netif with cli doesn't return (#10370)
|
||||
* ieee802154_submac: IPv6 fragmentation broken (#16998)
|
||||
* LoRaWan node ISR stack overflowed (#14962)
|
||||
* lwip_sock_tcp / sock_async: received events before calling
|
||||
sock_accept() are lost due to race condition. (#16303)
|
||||
* Missing drop implementations in netdev_driver_t::recv (#10410)
|
||||
* net: netdev_driver_t::send() doc unclear (#10969)
|
||||
* netdev_ieee802154: Mismatch between radio ll address and in memory
|
||||
address (#10380)
|
||||
* nrf52: Not able to add global or ULA address to interface (#13280)
|
||||
* nrfmin: communication not possible after multicast ping with no
|
||||
interval (#11405)
|
||||
* openthread: does not build on current Arch (#10809)
|
||||
* ping6 is failing when testing with cc2538dk (#13997)
|
||||
* pkg/tinydtls: auxiliary data API does not work for async sockets (#16054)
|
||||
* pkg: libcoap is partially broken and outdated (#7737)
|
||||
* Possible memory leak in RIOT/build/pkg/ndn-riot/app.c (#15638)
|
||||
* Riot-os freezes with lwip + enc28j60 + stm32L4 (#13088)
|
||||
* samr30 xpro doesn't seem to use its radio ok (#12761)
|
||||
* scan-build errors found during 2019.07 testing (#11852)
|
||||
* send data with UDP at 10HZ, the program die (#11860)
|
||||
* stale border router does not get replaced (#12210)
|
||||
* two nodes livelock sending neighbor solicitations back and forth
|
||||
between each other (#16670)
|
||||
* Unclear how Router Solicitations are (or should be) handled (#15926)
|
||||
* xbee: setting PAN ID sometimes fails (#10338)
|
||||
|
||||
Timer related issues (15)
|
||||
-------------------------
|
||||
|
||||
* cpu/native: timer interrupt issue (#6442)
|
||||
* misc issues with tests/trickle (#9052)
|
||||
* MSP430: periph_timer clock config wrong (#8251)
|
||||
* periph/timer: `timer_set()` underflow safety check (tracking issue) (#13072)
|
||||
* periph_timer: systematic proportional error in timer_set (#10545)
|
||||
* saml21 system time vs rtc (#10523)
|
||||
* Sleep mode for Arduino (#13321)
|
||||
* stm32_common/periph/rtc: current implementation broken/poor accuracy (#8746)
|
||||
* sys/newlib: gettimeofday() returns time since boot, not current wall
|
||||
time. (#9187)
|
||||
* tests: xtimer_drift gets stuck on native (#6052)
|
||||
* xtimer mis-scaling with long sleep times (#9049)
|
||||
* xtimer: add's items to the wrong list if the timer overflows between
|
||||
_xtimer_now() and irq_disable() (#7114)
|
||||
* xtimer_set_msg: crash when using same message for 2 timers (#10510)
|
||||
* xtimer_usleep stuck for small values (#7347)
|
||||
* xtimer_usleep wrong delay time (#10073)
|
||||
|
||||
Drivers related issues (17)
|
||||
---------------------------
|
||||
|
||||
* (almost solved) SPI SD-Card driver: SPI initialisation freeze until
|
||||
timeout (#14439)
|
||||
* adc is not a ADC-Driver but a analog pin abstraction (#14424)
|
||||
* at86rf2xx: Simultaneous use of different transceiver types is not
|
||||
supported (#4876)
|
||||
* cpu/msp430: GPIO driver doesn't work properly (#9419)
|
||||
* driver/hts221: Temperature and Humidity readings incorrect (#12445)
|
||||
* ESP32 + DHT + SAUL reading two endpoints causes freeze. (#12057)
|
||||
* examples/dtls-wolfssl not working on pba-d-01-kw2x (#13527)
|
||||
* fail to send data to can bus (#12371)
|
||||
* floats and doubles being used all over the place. (#12045)
|
||||
* mdt_erase success, but vfs_format resets board (esp32-heltec-
|
||||
lora32-v2) (#14506)
|
||||
* periph/spi: Switching between CPOL=0,1 problems on Kinetis with
|
||||
software CS (#6567)
|
||||
* periph: GPIO drivers are not thread safe (#4866)
|
||||
* Potential security and safety race conditions on attached devices (#13444)
|
||||
* PWM: Single-phase initialization creates flicker (#15121)
|
||||
* STM32: SPI clock not returning to idle state and generating
|
||||
additional clock cycles (#11104)
|
||||
* TCP client cannot send read only data (#16541)
|
||||
* Two bugs may lead to NULL dereference. (#15006)
|
||||
|
||||
Native related issues (6)
|
||||
-------------------------
|
||||
|
||||
* examples/ccn-lite: floating point exception while testing on native (#15878)
|
||||
* examples/micropython: floating point exception while testing on
|
||||
native (#15870)
|
||||
* native getchar is blocking RIOT (#16834)
|
||||
* native not float safe (#495)
|
||||
* native: tlsf: early malloc will lead to a crash (#5796)
|
||||
* SIGFPE on native architecture when printing double floats on Ubuntu
|
||||
21.04 (#16282)
|
||||
|
||||
Other platforms related issues (23)
|
||||
-----------------------------------
|
||||
|
||||
* Failing tests on FE310 (Hifive1b) (#13086)
|
||||
* [TRACKING] Fixes for automatic tests of ESP32 boards. (#12763)
|
||||
* arm7: printf() with float/double not working (#11885)
|
||||
* boards/hifive1: flashing issue (#13104)
|
||||
* Cannot use LLVM with Cortex-M boards (#13390)
|
||||
* cpu/cortexm_common: irq_enable returns the current state of
|
||||
interrupts (not previous) (#10076)
|
||||
* cpu/sam0: flashpage write / read cycle produces different results
|
||||
depending on code layout in flash (#14929)
|
||||
* cpu/stm32f1: CPU hangs after wake-up from STOP power mode (#13918)
|
||||
* esp32-wroom-32: tests/netstats_l2 failing sometimes (#14237)
|
||||
* esp32: can't use newer C++ standard than c++11 (#15685)
|
||||
* esp8266 precompiled bootloaders don't support partitions past 1MB (#16402)
|
||||
* esp8266: Hangs when erasing spi sector on mtd0 if using esp_wifi (#16281)
|
||||
* gcoap/esp8266: Stack overflow with gcoap example (#13606)
|
||||
* I found stm32 DMA periph driver bugs! when I tested stm32l431rc
|
||||
board. (#16242)
|
||||
* Incorrect default $PORT building for esp32-wroom-32 on macOS (#10258)
|
||||
* MIPS: toolchain objcopy doesn't work and no .bin can be generated (#14410)
|
||||
* MPU doesn't work on cortex-m0+ (#14822)
|
||||
* periph_timer: Test coverage & broken on STM32F767ZI (#15072)
|
||||
* riscv: ISR stack is too small for ENABLE_DEBUG in core files (#16395)
|
||||
* stm32152re: hardfault when DBGMCU_CR_DBG* bits are set and branch
|
||||
after __WFI() (#14015)
|
||||
* stm32f7: Large performance difference between stm32f746 and stm32f767 (#14728)
|
||||
* sys/riotboot/flashwrite: unaligned write when skipping
|
||||
`RIOTBOOT_MAGIC` on stm32wb (#15917)
|
||||
* tests/mpu_noexec_ram: fails on i-nucleo-lrwan1 (#14572)
|
||||
|
||||
Build system related issues (15)
|
||||
--------------------------------
|
||||
|
||||
* `buildtest` uses wrong build directory (#9742)
|
||||
* `make -j flash` fails due to missing make dependencies or `make
|
||||
flash-only` rebuilds the .elf (#16385)
|
||||
* Build dependencies - processing order issues (#9913)
|
||||
* build: info-build doesn't work with boards without port set (#15185)
|
||||
* BUILD_IN_DOCKER ignores USEMODULE (#14504)
|
||||
* Different build behavior between `murdock` and
|
||||
`riot/riotbuild:latest` image (#9645)
|
||||
* dist/tools/cppcheck/cppchck.sh: errors when running with Cppcheck
|
||||
1.89 (#12771)
|
||||
* doxygen: riot.css modified by 'make doc' (#8122)
|
||||
* LTO broken (binaries too large) (#16202)
|
||||
* macros: RIOT_FILE_RELATIVE printing wrong file name for headers (#4053)
|
||||
* make: ccache leads to differing binaries (#14264)
|
||||
* make: Setting constants on compile time doesn't really set them
|
||||
everywhere (#3256)
|
||||
* make: use of immediate value of variables before they have their
|
||||
final value (#8913)
|
||||
* Tracking: remove harmful use of `export` in make and immediate
|
||||
evaluation (#10850)
|
||||
* Windows AVR Mega development makefile Error (#6120)
|
||||
|
||||
Other issues (45)
|
||||
-----------------
|
||||
|
||||
* [TRACKING] sys/shell refactoring. (#12105)
|
||||
* _NVIC_SystemReset stuck in infinite loop when calling pm_reboot
|
||||
through shell after flashing with J-Link (#13044)
|
||||
* `make term` no longer works with JLinkExe v6.94 (#16022)
|
||||
* `make term` output is inconsistent between boards, `ethos` and
|
||||
`native` (#12108)
|
||||
* assert: c99 static_assert macro doesn't function for multiple
|
||||
static_asserts in the same scope (#9371)
|
||||
* Basic test for periph/rtt introduced in #15431 is incorrect (#15940)
|
||||
* boards/esp32-wroom-32: tests/mtd_raw flakey (#16130)
|
||||
* Bug: openocd 0.10.0-6 Ubuntu dies while debugging with -rtos auto (#13285)
|
||||
* C++11 extensions in header files (#5561)
|
||||
* Can't build relic with benchmarks or tests (#12897)
|
||||
* CC2538DK board docs: broken links (#12889)
|
||||
* edbg: long lines flooded over serial become garbled (#14548)
|
||||
* examples / tests: LoRa tests fail on platforms that don't support
|
||||
LoRa (#14520)
|
||||
* File systems report names with leading slashes (#14635)
|
||||
* flashing issue on frdm-k64f (#15903)
|
||||
* Gcoap drops long packages instead of gracefully erring out (#14167)
|
||||
* gcoap_dtls: Selecting transport at run time is not possible (#16674)
|
||||
* I2C not working under RIOT with U8G2 pkg (#16381)
|
||||
* ieee802154_security: Nonce is reused after reboot (#16844)
|
||||
* Making the newlib thread-safe (#4488)
|
||||
* nanocoap: incomplete response to /.well-known/core request (#10731)
|
||||
* Order of auto_init functions (#13541)
|
||||
* pkg/tinydtls: Multiple issues (#16108)
|
||||
* Possible memset optimized out in crypto code (#10751)
|
||||
* Potential race condition in compile_and_test_for_board.py (#12621)
|
||||
* pyterm on stdio_cdc_acm stops working after a few seconds (#16077)
|
||||
* RIOT cannot compile with the latest version of macOS (10.14) and
|
||||
Xcode 10 (#10121)
|
||||
* RIOT is saw-toothing in energy consumption (even when idling) (#5009)
|
||||
* riotboot/nrf52840dk: flashing slot1 with JLINK fails (#14576)
|
||||
* Sam boards: isr_eic call all IRQ raised without taking into account
|
||||
their status (enabled/disabled) (#16978)
|
||||
* scheduler: priority inversion problem (#7365)
|
||||
* sys/fmt: Missing tests for fmt_float, fmt_lpad (#7220)
|
||||
* sys/riotboot: documentation issues (#11243)
|
||||
* sys/stdio_uart: dropped data when received at once (#10639)
|
||||
* tests/cpp11_*: failing on i-nucleo-lrwan1 (#14578)
|
||||
* tests/lwip target board for python test is hardcoded to native (#6533)
|
||||
* tests/pkg_libhydrogen: test fails on master for the samr21-xpro with
|
||||
LLVM (#15066)
|
||||
* tests/pkg_tensorflow-lite: tests randomly failing on nrf52dk and
|
||||
esp32-wroom-32 (#13133)
|
||||
* tests/test_tools: test fails while testing on samr21-xpro/iotlab-m3 (#15888)
|
||||
* tests/thread_float: crashes on avr-rss2 (#16908)
|
||||
* tests: broken with stdio_rtt if auto_init is disabled (#13120)
|
||||
* tests: some tests don't work with `newlib` lock functions. (#12732)
|
||||
* Tracker: Reduce scope on unintended COMMON variables (#2346)
|
||||
* usb-serial/list-ttys.sh: Broken when a debugger offers multiple
|
||||
serial ports (#15814)
|
||||
* Use of multiple CAN bus on compatible boards (#14801)
|
||||
|
||||
There are 173 known issues in this release
|
||||
|
||||
Fixed Issues since the last release (2021.07)
|
||||
=============================================
|
||||
|
||||
- make check_bindist fails to find reference to `main` (#16977)
|
||||
- dhcpv6_client: no prefix on downstream interface via IA_PD (#16971)
|
||||
- Deleted or non selected source files are linked in (#16942)
|
||||
- tests/thread_float: broken on AVR (#16896)
|
||||
- Kconfig/tinydtls: Unable to compile `examples/dtls-sock` with
|
||||
`CONFIG_DTLS_ECC` enabled (#16873)
|
||||
- particle: error while flashing using Docker build and DFU mode (#16749)
|
||||
- test/pkg_u8g2: using SDL is failing (#16714)
|
||||
- cpu/saml21: can't set baud rate on SERCOM5 (#16692)
|
||||
- sam0_eth: extremely long time to RX (frames stuck in buffer?) (#16451)
|
||||
- w5100 driver's improvement (#16417)
|
||||
- border_router: significant packet loss when sending out packets using
|
||||
USB cdc-ecm on nrf52 (#16411)
|
||||
- XFA support on AVR and MSP430 broken with binutils 2.36.1 (#16251)
|
||||
- SDL2 does not work due to missing getpid (#13501)
|
||||
- hello-world example crashes on BOARD=nucleo-f446re (#9775)
|
||||
|
||||
14 fixed issues since last release (2021.07)
|
||||
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
We would like to thank all companies that provided us with hardware for porting
|
||||
and testing RIOT-OS. Further thanks go to companies and institutions that
|
||||
directly sponsored development time. And finally, big thanks to all of you
|
||||
contributing in so many different ways to make RIOT worthwhile!
|
||||
|
||||
|
||||
More information
|
||||
================
|
||||
http://www.riot-os.org
|
||||
|
||||
|
||||
IRC, Matrix and Forum
|
||||
=====================
|
||||
* Join the RIOT IRC channel at: irc.freenode.net, #riot-os
|
||||
* Join the RIOT Matrix room at: #riot-os:matrix.org
|
||||
* Join the RIOT Forum at: forum.riot-os.org
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
* The code developed by the RIOT community is licensed under the GNU Lesser
|
||||
General Public License (LGPL) version 2.1 as published by the Free Software
|
||||
Foundation.
|
||||
* Some external sources and packages are published under a separate license.
|
||||
|
||||
All code files contain licensing information.
|
||||
|
||||
RIOT-2021.07 - Release Notes
|
||||
============================
|
||||
RIOT is a multi-threading operating system which enables soft real-time
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user