1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
Commit Graph

8483 Commits

Author SHA1 Message Date
Cenk Gündoğan
f9b8fadd85
uri_parser: check boundaries if host is empty, but userinfo exists 2021-02-05 13:24:36 +01:00
Sören Tempel
333572e091 uri_parser: check if uri is long enough to even contain a ://
Before attempting to access these characters. This fixes an
out-of-bounds read on the provided URI buffer.
2021-02-04 20:08:26 +01:00
Leandro Lanzieri
8a29cf285d
sys/shell: fix menuconfig symbol name 2021-02-04 12:46:19 +01:00
Leandro Lanzieri
67f36d78a9
sys/shell: document configs and add to Kconfig 2021-02-04 09:19:43 +01:00
Marian Buschsieweke
89c69c5450
sys/net/gnrc/tx_sync: new module
The new `gnrc_tx_sync` module allows users of the GNRC network stack to
synchronize with the actual transmission of outgoing packets. This is directly
integrated into gnrc_sock. Hence, if `gnrc_tx_sync` is used, calls to e.g.
sock_udp_send() will block until the network stack has processed the message.

Use cases:
1. Prevent packet drop when sending at high rate
    - If the application is sending faster than the stack can handle, the
      message queues will overflow and outgoing packets are lost
2. Passing auxiliary data about the transmission back the stack
    - When e.g. the number of required retransmissions, the transmission time
      stamp, etc. should be made available to a user of an UDP sock, a
      synchronization mechanism is needed
3. Simpler error reporting without footguns
    - The current approach of using `core/msg` for passing up error messages is
      difficult to use if other message come in. Currently, gnrc_sock is
      busy-waiting and fetching messages from the message queue until the number
      of expected status reports is received. It will enqueue all
      non-status-report messages again at the end of the queue. This has
      multiple issues:
        - Busy waiting is especially in lower power scenarios with time slotted
          MAC protocols harmful, as the CPU will remain active and consume
          power even though the it could sleep until the TX slot is reached
        - The status reports from the network stack are send to the user thread
          blocking. If the message queue of the user thread is full, the network
          stack would block until the user stack can fetch the messages. If
          another higher priority thread would start sending a message, it
          would busy wait for its status reports to completely come in. Hence,
          the first thread doesn't get CPU time to fetch messages and unblock
          the network stack. As a result, the system would lock up completely.
    - Just adding the error/status code to the gnrc_tx_sync_t would preallocate
      and reserve memory for the error reporting. That way gnrc_sock does not
      need to search through the message queue for status reports and the
      network stack does not need to block for the user thread fetching it.
2021-02-03 15:16:42 +01:00
Francisco
3b2a55a923
Merge pull request #15865 from benpicco/pm_layered-default
cpu: make pm_layered a DEFAULT_MODULE
2021-02-03 08:17:29 +01:00
Martine Lenders
6da60c933d
Merge pull request #15802 from miri64/treewide/cleanup/cppcheck-whitelisted
treewide: re-uncrustify whitelisted files
2021-02-03 07:59:27 +01:00
benpicco
2313cefbd3
Merge pull request #15910 from maribu/sys-arduino-spi-fix
sys/arduino: Bug and style fixes in SPI
2021-02-02 23:41:04 +01:00
Benjamin Valentin
118cf0e9e6 riotboot_usb_dfu: depend on periph_pm 2021-02-02 23:40:21 +01:00
Benjamin Valentin
32c30aaeaa pm_layered: depend on periph_pm 2021-02-02 23:40:21 +01:00
Martine Lenders
7e3846b6a4
ztimer: apply uncrustify patches 2021-02-02 22:21:15 +01:00
Marian Buschsieweke
e0f457663c
Merge pull request #15901 from OTAkeys/pr/ztimer_rmutex_lock_timeout
ztimer: add ztimer_rmutex_lock_timeout()
2021-02-02 20:47:53 +01:00
Vincent Dupont
751a366931 ztimer: fix uncrustify issue in util.c 2021-02-02 10:52:10 +01:00
Vincent Dupont
fb4d2e509a ztimer: add ztimer_rmutex_lock_timeout()
Similar to xtimer_rmutex_lock_timeout()
2021-02-02 10:51:50 +01:00
Marian Buschsieweke
45ed8bc330
sys/arduino: Bug and style fixes in SPI
- set is_transaction before releasing the SPI bus (and the mutex) to avoid
  data races
- adapt switch indent to coding convention
2021-02-02 09:45:46 +01:00
Leandro Lanzieri
2f28a91c4f
net/ieee802154/security: make default cipher_ops implementations private 2021-02-02 09:16:50 +01:00
Leandro Lanzieri
e31daf1583
net/ieee802154: remove dependency of radio HAL in security 2021-02-02 09:16:50 +01:00
5b0eaf7cd8
riotboot/flashwrite: Remove last dependencies on flashpage size 2021-02-01 16:14:07 +01:00
1bde5296fd
Merge pull request #14987 from bergzand/pr/riscv/semihosting
stdio_semihosting: Extend with RISC-V support
2021-01-27 18:49:35 +01:00
0a6c9c4ec0
stdio_semihosting: Extend with RISC-V support
RISC-V support semihosting in very similar way as the cortex-m
microcontrollers. The code calls a breakpoint instruction and the
attached debugger reads/writes registers and memory for stdio.

The RISC-V architecture doesn't support a call number with the EBREAK
instruction, to allow the debugger to detect a semihosting break point,
the EBREAK instruction is wrapped in a SLLI and SRAI instruction. These
use x0 as output register, making them NOP instructions.

One caveat when using this is that the RISC-V core traps the EBREAK
instruction with trap code 3 when no debugger is attached. Restarting
the application with the debugger attached avoids this.
2021-01-27 17:52:19 +01:00
Benjamin Valentin
9c1455d55f cpu: make pm_layered a DEFAULT_MODULE
Allow to disable pm_layered in the bootloader to save some ROM.
2021-01-27 13:21:20 +01:00
benpicco
4509dc6812
Merge pull request #15863 from btcven/2020_01_26-ieee-sfd-phr
ieee802154: add SFD and length of PHR for MR-FSK.
2021-01-27 12:31:12 +01:00
Jean Pierre Dudey
38ade8d2e9 ieee802154: add MR-FSK SFD values for 2FSK
Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2021-01-27 11:52:53 +01:00
Jean Pierre Dudey
9fe6b9ac99 ieee802154: add MR-FSK PHR length definition
Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2021-01-27 11:52:53 +01:00
Francisco
dc801b9dde
Merge pull request #15817 from leandrolanzieri/pr/kconfig/sys_crypto
sys/{crypto, hashes, random}: add modules to Kconfig
2021-01-27 10:20:11 +01:00
ce97e9d8ce
Merge pull request #15859 from fjmolinas/pr_newlib_feature
treewide: model newlib as a FEATURE
2021-01-27 10:06:08 +01:00
Francisco Molina
63a2a6ce1b
treewide: model newlib as a FEATURE 2021-01-27 09:24:25 +01:00
Leandro Lanzieri
434b6b68d5
Merge pull request #15790 from akshaim/Kconfig_skald_update
net/skald: Update Kconfig implementation
2021-01-26 20:46:27 +01:00
Leandro Lanzieri
5c4df6078e
sys/random: add modules to Kconfig 2021-01-26 17:40:53 +01:00
Leandro Lanzieri
34594ae1dc
sys/luid: add module to Kconfig 2021-01-26 17:40:30 +01:00
Leandro Lanzieri
0fb2711a15
sys/hashes: add module to Kconfig 2021-01-26 17:40:29 +01:00
Leandro Lanzieri
d90ac484a3
sys/crypto: add modules to Kconfig 2021-01-26 17:39:44 +01:00
Akshai M
42eb6c4097 net/lorawan : Update documentation
Marked as non-supported:
LORAMAC_DEFAULT_ADR_ACK_LIMIT
LORAMAC_DEFAULT_ADR_ACK_DELAY
LORAMAC_DEFAULT_ADR_TIMEOUT
2021-01-26 16:56:05 +01:00
Akshai M
9600ebf536 net/lorawan : Expose to Kconfig 2021-01-26 16:56:02 +01:00
Akshai M
a2f505f116 net/lorawan : Move 'LORAMAC_DEFAULT_MIN_RX_SYMBOLS' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
216956d7b0 net/lorawan : Move 'LORAMAC_DEFAULT_SYSTEM_MAX_RX_ERROR' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
ed269a7fd7 net/lorawan : Move 'LORAMAC_DEFAULT_MAX_FCNT_GAP' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
85c4b5eb3b net/lorawan : Move 'LORAMAC_DEFAULT_JOIN_DELAY2' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
b6e4e74a87 net/lorawan : Move 'LORAMAC_DEFAULT_JOIN_DELAY1' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
ed1b86492f net/lorawan : Move 'LORAMAC_DEFAULT_JOIN_PROCEDURE' to 'CONFIG_'
Added symbols 'CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_XXX'
for Kconfig exposure
2021-01-26 16:52:59 +01:00
Akshai M
81dac00d5c net/lorawan : Move 'LORAMAC_DEFAULT_RX2_FREQ' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
d5086ecf60 net/lorawan : Move 'LORAMAC_DEFAULT_RX2_DR' to 'CONFIG_'
Added symbols 'CONFIG_LORAMAC_DEFAULT_RX2_DR_XX' to define
choice in Kconfig
2021-01-26 16:52:58 +01:00
Akshai M
d48cee7c2a net/lorawan : Move 'LORAMAC_DEFAULT_RX1_DELAY' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
ca4acbff12 net/lorawan : Move 'LORAMAC_DEFAULT_LINKCHK' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
e93c362df2 net/lorawan : Move 'LORAMAC_DEFAULT_RETX' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
97d873a5bd net/lorawan : Move 'LORAMAC_DEFAULT_ADR' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_ADR' to 'CONFIG_' namespace and model
'CONFIG_LORAMAC_DEFAULT_ADR' as BOOL for Kconfig
2021-01-26 16:52:58 +01:00
Akshai M
d2d90fbce5 net/lorawan : Move 'LORAMAC_DEFAULT_TX_MODE' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_TX_MODE' to 'CONFIG_' and added symbols
for Kconfig exposure
2021-01-26 16:52:58 +01:00
Akshai M
aa3b1da0c4 net/lorawan : Move 'LORAMAC_DEFAULT_TX_PORT' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
3a6c4f2f71 net/lorawan : Move 'LORAMAC_DEFAULT_TX_POWER' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_TX_POWER' to 'CONFIG_' namespace and
assign choices for Kconfig exposure
2021-01-26 16:52:58 +01:00
Akshai M
55f196095d net/lorawan : Move 'LORAMAC_DEFAULT_DR' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_DR' to 'CONFIG_' and enable options for
Kconfig
2021-01-26 16:52:58 +01:00
Akshai M
1befae9022 net/lorawan : Invert 'LORAMAC_DEFAULT_PUBLIC_NETWORK'
Introduced a bool 'LORAMAC_DEFAULT_PRIVATE_NETWORK' to invert
the semantics of 'LORAMAC_DEFAULT_PUBLIC_NETWORK'. Move
'LORAMAC_DEFAULT_PRIVATE_NETWORK' to 'CONFIG_' namespace.
2021-01-26 16:52:58 +01:00
Akshai M
3c5c429541 net/lorawan : Move 'LORAMAC_DEFAULT_NETID' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
e46c4401a9 net/lorawan : Move 'LORAMAC_DEFAULT_DEVICE_CLASS' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_DEVICE_CLASS' to 'CONFIG_' and added
additional symbols for Kconfig exposure.
2021-01-26 16:52:57 +01:00
Akshai M
9e626f471a net/lorawan : Move 'LORAMAC_DEV_ADDR_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
50e979c600 net/lorawan : Move 'LORAMAC_NWK_SKEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
43d7f28e63 net/lorawan : Move 'LORAMAC_APP_SKEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
d138fa9aad net/lorawan : Move 'LORAMAC_APP_KEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
bcb0ed38ff net/lorawan : Move 'LORAMAC_APP_EUI_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
5b4a873de5 net/lorawan : Move 'LORAMAC_DEV_EUI_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
3ecd304354 net/gnrc_lorawan : String keywords for keys
Swapped hex input for keys with string keywords.
2021-01-26 16:52:57 +01:00
Akshai M
a23dfb7ab9 net/skald : Update kconfig
Co-authored-by: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
2021-01-26 16:17:18 +01:00
Akshai M
f7aff3c0aa net/skald : Add CONFIG_SKALD_ADV_CHANNELS to allow ordered list
Added `CONFIG_SKALD_ADV_CHANNELS` which is then parsed to
and ordered list `SKALD_ADV_CHAN`

Co-authored-by: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
2021-01-26 16:17:17 +01:00
Martine Lenders
8e47621e7c
Merge pull request #15839 from maribu/gnrc_pktbuf_release_error
sys/net/gnrc_pktbuf: deduplicate code
2021-01-26 15:23:50 +01:00
Marian Buschsieweke
3970b667aa
sys/net/gnrc_pktbuf: deduplicate code
Implement gnrc_pktbuf_release_error() in gnrc_pktbuf once, rather than providing
two implementations in gnrc_pktbuf_static and gnrc_pktbuf_malloc
2021-01-26 10:50:19 +01:00
Hauke Petersen
4540b6273b ble/skald: switch from xtimer to ZTIMER_MSEC 2021-01-26 09:34:09 +01:00
Benjamin Valentin
d8918c24fa socket_zep: register with netdev 2021-01-25 22:59:01 +01:00
Francisco
de9f29cf42
Merge pull request #15835 from leandrolanzieri/pr/makefile/fix_default_modules_in_usemodules
Makefile.include: avoid recursive expansion of USEMODULE
2021-01-25 21:50:03 +01:00
benpicco
83201ddb00
Merge pull request #15760 from maribu/sock-aux-rssi
sys/net/sock: add sock_aux_rssi
2021-01-25 18:51:11 +01:00
benpicco
1862a73d41
Merge pull request #15844 from benpicco/sys/oneway-malloc_align
sys/oneway-malloc: only allocate word-aligned chunks
2021-01-25 14:31:37 +01:00
Benjamin Valentin
65ab38a894 sys/oneway-malloc: only allocate word-aligned chunks
If an unevenly sized allocation is requested, the next buffer handed
out would start at an unaligned address.

Fix this by rounding up to the next word-sized allocation size.
2021-01-25 12:05:05 +01:00
Leandro Lanzieri
91ff4e5ce5
sys/Makefile.dep: default saul_init_devs to y when saul_default is used 2021-01-25 09:17:00 +01:00
Fabian Hüßler
7d618afa17 nrf24l01p_ng: make use of netdev_register() 2021-01-24 20:49:39 +01:00
fabian18
f7a77ebb04 drivers/nrf24l01p_ng: netdev driver for nrf24l01+
The driver uses the netdev interface. Due to the limited
capabilities of the transceiver (32 byte FIFO and no source address in the layer2 frame),
it relies on 6LowPAN compression and adds the source address to the frame for that.
2021-01-24 20:49:39 +01:00
Martine Lenders
879fbc179e
Merge pull request #15755 from janosbrodbeck/pr/dtls/get_event_session
sock/async: add function to retrieve session object of current DTLS event
2021-01-22 10:51:51 +01:00
János Brodbeck
050b268705
sock/async: fix typo in doc of sock_dtls_set_cb 2021-01-21 19:03:41 +01:00
János Brodbeck
80d592b1b8
sock/async: introduce function to retrieve session of current DTLS event 2021-01-21 18:58:12 +01:00
Francisco
1d9b898e9f
Merge pull request #15717 from leandrolanzieri/pr/kconfig/drivers_s
drivers/s*: add modules to Kconfig
2021-01-21 16:49:21 +01:00
Marian Buschsieweke
90700f1cec
Merge pull request #15823 from maribu/fmt-table-bugfix
sys/fmt_table: fix infinite loop
2021-01-21 13:15:52 +01:00
Leandro Lanzieri
52b8bca84e
net/lora: add module to Kconfig 2021-01-21 11:22:33 +01:00
Leandro Lanzieri
0ed66123d9
sys/iolist: add module to Kconfig 2021-01-21 11:22:32 +01:00
Leandro Lanzieri
a492400cee
drivers/slipdev: add modules to Kconfig 2021-01-21 11:22:31 +01:00
Leandro Lanzieri
95206d0346
kconfig/saul: select phydat and enable saul_registry by default 2021-01-21 11:22:30 +01:00
Marian Buschsieweke
00a8a8bd83
sys/fmt_table: fix infinite loop 2021-01-21 10:03:44 +01:00
Francisco
5c5ec632a5
Merge pull request #15716 from leandrolanzieri/pr/kconfig/ztimer
sys/ztimer: add modules to Kconfig
2021-01-20 15:31:20 +01:00
a1250963d4
Merge pull request #15780 from haukepetersen/opt_ztimer_isset
ztimer: add ztimer_is_set() to user API
2021-01-20 12:42:21 +01:00
Marian Buschsieweke
51db33375a
sys/bit: provide CPU_HAS_SRAM_BITBAND
CPU_HAS_SRAM_BITBAND can be used to check whether bit-banding is supported for
all of SRAM. With partially supported bit-banding, this feature is more of a
foot gun that a valuable tool.
2021-01-20 09:18:09 +01:00
Martine Lenders
eb30b0b2e2
Merge pull request #15792 from haukepetersen/fix_evtimer_moddep
sys/evtimer: fix module dependencies
2021-01-19 12:45:09 +01:00
Francisco
0e5ba63384
Merge pull request #15641 from bergzand/pr/schedstatistics/remove_idle_runtime
schedstatistics: Log sleep tick statistics
2021-01-19 11:19:05 +01:00
Francisco
e046e01254
Merge pull request #15683 from bergzand/pr/memarray/extender
memarray: Add functions to extend and reduce the pool with new memory areas
2021-01-19 11:18:47 +01:00
Hauke Petersen
8f5d366fe9 sys/evtimer: fix module dependencies 2021-01-19 11:07:20 +01:00
Bas Stottelaar
9bc7dd04e6 sys/saul_reg: add saul_reg_find_type_and_name 2021-01-18 22:28:28 +01:00
Hauke Petersen
f5de257d58 ztimer: expose ztimer_is_set() to public API 2021-01-18 17:50:50 +01:00
benpicco
5fe6483403
Merge pull request #15762 from benpicco/sys/sema_inv
sys/sema_inv: add inverse Semaphore
2021-01-18 15:57:01 +01:00
Leandro Lanzieri
61a10db288
sys/xtimer/kconfig: fix dependencies 2021-01-18 14:14:13 +01:00
Leandro Lanzieri
6625a15bf6
sys/ztimer: add modules to Kconfig 2021-01-18 14:14:13 +01:00
Leandro Lanzieri
abe90f6aeb
sys/frac: add module to Kconfig 2021-01-18 14:14:13 +01:00
c579dbe953
schedstatistics: Log sleep tick statistics 2021-01-18 11:14:23 +01:00
Benjamin Valentin
5602587dd7 sys/sema_inv: add inverse Semaphore
It is often desiderable to sync on multiple threads, e.g. there can be a controller
thread that waits for `n` worker threads to finish their job.
An inverse semaphore provides an easy primitive to implement this pattern.

After being initialized with a value `n` (in counter mode), a call to `sema_inv_wait()`
will block until each of the `n` threads has called `sema_inv_post()` exactly once.

There are situations where workers might post an event more than once
(unless additional state is introduced).
For this case, the alternative mask mode is provided.
Here the inverse semaphore is initialized with a bit mask, each worker can clear one
or multiple bits with `sema_inv_post_mask()`. A worker can clear it's bit multiple times.
2021-01-17 00:17:58 +01:00
Hauke Petersen
ed2e40df63
Merge pull request #15781 from haukepetersen/add_sema_getvalue
sys/sema: add sema_get_value()
2021-01-16 13:03:03 +01:00
Hauke Petersen
606bcd66da posis/semaphore: use sema_get_value() 2021-01-15 16:17:25 +01:00