8503 Commits

Author SHA1 Message Date
d8c129fc47 ztimer: periph_rtt: ensure RTT_MAX_VALUE is honored
Previously, ztimer would happily set an absolute RTT alarm value that exceeds
RTT's maximum value (though not a longer interval), as the `val` was
simply added to `rtt_get_counter()`.
This commit ensures that the target value wraps around RTT_MAX_VALUE.

Fixes #13920.
2020-04-23 16:19:25 +02:00
Cenk Gündoğan
ea616abfda nanocoap: allow coap_opt_add_string() for zero-terminated strings 2020-04-22 12:28:48 +02:00
Leandro Lanzieri
46507ff247
Merge pull request #13894 from kb2ma/gcoap/ping
net/gcoap: add CoAP ping request
2020-04-21 12:23:54 +02:00
Koen Zandberg
5293e5400c
Merge pull request #13210 from kaspar030/add_xtimer_left
sys/xtimer: remove uses of xtimer internal struct members
2020-04-21 12:15:41 +02:00
0228553384 sys/shell: rpl: make use of xtimer_left_usec() 2020-04-21 11:26:56 +02:00
df520a70a7 sys/evtimer: make use of xtimer_left_usec() 2020-04-21 11:26:56 +02:00
c9c8c98a4b sys/xtimer: introduce xtimer_left_usec() 2020-04-21 11:26:56 +02:00
Koen Zandberg
40cb065a45
Merge pull request #13839 from leandrolanzieri/pr/kconfig_migrate/sys/usbus_ecm
usbus/cdc/ecm: Expose configurations to Kconfig
2020-04-21 10:12:30 +02:00
Ken Bannister
cac350901f
Merge pull request #13893 from cgundogan/pr/nanocoap-get-opt-uint
nanocoap: export coap_opt_get_uint()
2020-04-18 10:00:27 -04:00
Martine Lenders
55a7010a0a
Merge pull request #13157 from nmeum/pr/fuzzing_tcp_only
Add AFL-based fuzzing setup for network modules
2020-04-18 10:54:14 +02:00
Cenk Gündoğan
6859de7855 nanocoap: export coap_opt_get_uint() 2020-04-17 22:39:44 +02:00
Sören Tempel
ac9c1f4a69 gnrc_tcp: disable checksum checks during fuzzing 2020-04-17 17:11:15 +02:00
Martine Lenders
652276f00f
gnrc_netif: provide PID-based version for netif ID 2020-04-17 16:59:21 +02:00
Martine S. Lenders
b8294f1ba0
netif: add functions to get and get by identifier 2020-04-17 16:59:21 +02:00
Ken Bannister
6eae4ded84 net/gcoap: create CoAP ping request 2020-04-17 08:15:20 -04:00
Ken Bannister
f5a85e2aff net/gcoap: handle CoAP ping request 2020-04-17 08:15:20 -04:00
Ken Bannister
2d3eb1a343 net/nanocoap: validate empty message length 2020-04-17 08:15:20 -04:00
Joakim Nohlgård
2013ac75f5
gnrc_netif: Add support for internal event loop
Enabled by the gnrc_netif_events pseudo module. Using an internal event
loop within the gnrc_netif thread eliminates the risk of lost interrupts
and lets ISR events always be handled before any send/receive requests
from other threads are processed.
The events in the event loop is also a potential hook for MAC layers and
other link layer modules which may need to inject and process events
before any external IPC messages are handled.

Co-Authored-By: Koen Zandberg <koen@bergzand.net>
2020-04-17 12:02:39 +02:00
Benjamin Valentin
795cd165fd ieee802154: add definitions for 802.15.4 PHY modes
This adds PHY modes for IEEE 802.15.4-2003 and IEEE 802.15.4g-2012.
2020-04-15 21:41:19 +02:00
Francisco Molina
2331448644
Makefile: remove usage of SUBMODULES_NOFORCE
With #10970 only existing *.c files will be added to SRC when using
the SUBMODULES mechanism, so SUBMODULES_NOFORCE (used to filter out
non existing source files) is now redundant so remove the usage.
2020-04-15 12:11:44 +02:00
benpicco
e499290f19
Merge pull request #13863 from yogo1212/rtc_iff
tm.h: fix typo
2020-04-14 23:02:25 +02:00
Hendrik van Essen
a0a3e6c3a1 sys/shell: refactor readline function
This makes the code of `readline()` clearer and shorter. It also fixes a
minor artifact of the long line handling.

Previously it was not possible to recover from a long line. That is, if too
many characters were sent, the line would be invalidated and pressing backspace
would not fix it- the only option was to discard the line. It is now possible
to bring the line back to size. Note that visual effects when deleting characters
will still depend on the host's terminal.

The new code is written in a way that all writes to memory are guarded by
bounds check, so an assertion was removed.

Co-authored-by: Juan Carrano <j.carrano@fu-berlin.de>
2020-04-14 15:38:56 +02:00
Hendrik van Essen
45f898563a sys/shell: remove ifdefs in the middle of code
ifdefs in the middle of code reduce the readability
and debugability and should be avoided.

Co-authored-by: Juan Carrano <j.carrano@fu-berlin.de>
2020-04-14 15:38:54 +02:00
Hendrik van Essen
268d1b2305 sys/shell: remove useless "inline prevention"
There was some code added to "prevent putchar from being inlined", which
supposedly enlarged the code size.

Co-authored-by: Juan Carrano <j.carrano@fu-berlin.de>
2020-04-14 14:34:58 +02:00
Leandro Lanzieri
b4655f6c91
Merge pull request #13848 from fjmolinas/pr_ccm_no_plaintext
sys/crypto/modes/ccm: handle input_len = 0
2020-04-14 10:49:54 +02:00
Martine S. Lenders
085c62ecdc
xtimer_core: piggy-back style fixes 2020-04-10 12:42:32 +02:00
Francisco Molina
8372286591
sys/crypto/modes/ccm: accept input_len=0
CCM may be used on messages with no plaintext data.
2020-04-10 10:41:01 +02:00
Martine S. Lenders
212fe15786
xtimer: set now pointer correctly in _update_short_timers() loop
This fixes `xtimer` to use `xtimer_now64()` instead of `xtimer_now()`
for updating the `*now` variable during the iteration in
`_update_short_timers()` function. The same function is used to
initialize `*now` in `_timer_callback()` below.

While using `xtimer_now()` in this iteration step does not hinder the
proper execution of all timers in the short term timers (for those the
`xtimer` module only looks at the `start_time` member, not the
`long_start_time` member) at least for the current long term time window
(I did not test higher cases), it sets the `long_start_time` member to 0
for all timers following in the list of timers after this iteration
step. However, external modules that rely on this to be correct,
e.g. evtimer [1], fail their calculations when trying to compare to
the current value to `xtimer_now64()`.

[1] https://github.com/RIOT-OS/RIOT/blob/11f3d68/sys/evtimer/evtimer.c#L118-L121

Co-Authored-By: Cenk Gündoğan <mail+dev@gundogan.net>
2020-04-10 00:02:33 +02:00
Leandro Lanzieri
a06d9bbb66
Merge pull request #13315 from jia200x/pr/kconfig/ieee802154
ieee802154: Expose configurations to Kconfig
2020-04-08 19:34:55 +02:00
Jose Alamos
77325b4cde ieee802154: add CONFIG_ prefix to config macros 2020-04-08 19:08:25 +02:00
Jose Alamos
d33e44a85c ieee802154: Expose configurations to Kconfig 2020-04-08 18:28:23 +02:00
Leandro Lanzieri
dddeb54e7d
usbus/cdc/ecm: Expose configurations to Kconfig 2020-04-08 16:31:46 +02:00
Leandro Lanzieri
8b857844fc
usbus/cdc/ecm: Move USBUS_CDC_ECM_CONFIG_SPEED to 'CONFIG_' 2020-04-08 16:30:58 +02:00
Leandro Lanzieri
335b0ceb50
usbus/cdc/ecm: Move USBUS_CDC_ECM_CONFIG_SPEED_UPSTREAM to 'CONFIG_' 2020-04-08 16:27:04 +02:00
Leandro Lanzieri
88e50658f3
usbus/cdc/ecm: Move USBUS_CDC_ECM_CONFIG_SPEED_DOWNSTREAM to 'CONFIG_' 2020-04-08 16:24:59 +02:00
Koen Zandberg
14706d7423
Merge pull request #13243 from leandrolanzieri/pr/kconfig_migrate/net/nanocoap
net/nanocoap: Expose configurations to Kconfig
2020-04-08 10:51:54 +02:00
Martine Lenders
475048ab2f
Merge pull request #13833 from benpicco/dist/tools/sliptty-fix
gnrc_dhcpv6_client: fix for SLIP link-layer
2020-04-08 10:05:02 +02:00
Benjamin Valentin
f198d689be gnrc_dhcpv6_client: fix for SLIP link-layer
In a point-to-point serial connection, we don't have L2 addresses.
Set the link type & packet length accordingly and we will get a
prefix from KEA.
2020-04-07 22:08:57 +02:00
Ken Bannister
1ff78879ff net/nanocoap: remove obsolete functions to add Uri-Query option 2020-04-07 12:17:41 -04:00
Sören Tempel
65c7bbf76d gnrc_sock: Implement termination condition for fuzzing
The termination condition implemented in gnrc_pktbuf_malloc does not
work when using the sock interface as sock copies packet data to a local
buffer and frees the packet afterwards. As such, the fuzzing application
would exit before performing any input processing.

For this reason, the termination condition in gnrc_pktbuf_malloc is
disabled when using sock. Instead, the application terminates if
gnrc_sock_recv previously returned the fuzzing packet. The underlying
assumption of this implementation is that gnrc_sock_recv is called in a
loop.
2020-04-07 17:48:39 +02:00
Sören Tempel
e0570181e4 gnrc_pktbuf_malloc: Terminate when fuzzing packet is freed
Since RIOT is an operating system the native binary will never terminate
[0]. The termination condition for fuzzing GNRC is that the packet was
handled by the network stack and therefore freed. If it is never freed
we will deadlock meaning a memory leak was found, afl should be able to
detect this through timeouts.

This is currently only supported for gnrc_pktbuf_malloc since this is
the pktbuf implementation I used for fuzzing. Implementing this in
pktbuf.h is not possible.

[0]: Except NATIVE_AUTO_EXIT is defined, however, even with that define
set RIOT will only terminate when all threads terminated. Unfortunately,
gnrc_udp and other network threads will never terminate.
2020-04-07 17:48:39 +02:00
Sören Tempel
9e72f717e0 sys/fuzzing: Initialize
This adds a utility module which is used to write applications for
fuzzing RIOT network modules. The module provides a dummy network
interface which is configured with a static IPv6 addresses for modules
which perform operations on the underlying network interface. Besides,
it contains a utility function for transforming data received on
standard input into a `gnrc_pktsnip_t`.
2020-04-07 17:48:39 +02:00
Leandro Lanzieri
0137a06896
net/nanocoap: Expose configurations to Kconfig 2020-04-07 17:00:55 +02:00
Leandro Lanzieri
e80dcf2d8b
net/application_layer: Add Kconfig file and CoAP menu 2020-04-07 17:00:54 +02:00
Leandro Lanzieri
b6be8af81c
net/nanocoap: Move NANOCOAP_QS_MAX to 'CONFIG_' namespace 2020-04-07 17:00:53 +02:00
Leandro Lanzieri
2f72189aa2
net/nanocoap: Move NANOCOAP_BLOCK_SIZE_EXP_MAX to 'CONFIG_' namespace 2020-04-07 17:00:53 +02:00
Leandro Lanzieri
4052c01e85
net/nanocoap: Move NANOCOAP_URI_MAX to 'CONFIG_' namespace 2020-04-07 17:00:53 +02:00
Leandro Lanzieri
c84576ef6e
net/nanocoap: Move NANOCOAP_NOPTS_MAX to 'CONFIG_' namespace 2020-04-07 17:00:52 +02:00
Koen Zandberg
c81c8ed104
Merge pull request #13375 from leandrolanzieri/pr/kconfig_migrate/sys/usbus_cdc
usbus/cdc/acm: Expose configurations to Kconfig
2020-04-07 15:00:36 +02:00
Leandro Lanzieri
934bede70e
usbus/cdc/acm: Expose configurations to Kconfig 2020-04-07 14:34:57 +02:00