1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

2025 Commits

Author SHA1 Message Date
Martine Lenders
9270f31859
Merge pull request #14071 from akshaim/Kconfig_pktdump
gnrc/pktdump : Expose Configurations to Kconfig
2020-06-09 11:13:36 +02:00
Akshai M
27e0d7cf11 gnrc/pktdump : Add 'CONFIG_' & expose to Kconfig
Introduced 'GNRC_PKTDUMP_MSG_QUEUE_SIZE_EXP' to hold exponent
value and made GNRC_PKTDUMP_MSG_QUEUE_SIZE dependant on
GNRC_PKTDUMP_MSG_QUEUE_SIZE_EXP.

Moved 'GNRC_PKTDUMP_MSG_QUEUE_SIZE_EXP' to 'CONFIG_' namespace.

Exposed configurations to Kconfig

Co-authored-by: Martine Lenders <mail@martine-lenders.eu>

Co-authored-by: Leandro Lanzieri <leandro.lanzieri@haw-hamburg.de>
2020-06-09 13:31:29 +05:30
821eb5bc76
sys/net/auto_init: remove useless preprocessor directives
The files are now built only when the corresponding module is used
2020-06-08 11:10:39 +02:00
29c5c54fe2
sys/net/auto_init: only build files when related module is used 2020-06-08 11:10:22 +02:00
3fe35e755c
sys/net/auto_init: rename cdcecm source file
Use a name that corresponds to the related module name
2020-06-08 10:27:35 +02:00
Jean Pierre Dudey
60385d2c24
net/gnrc/netif: limit 6lo frag size
The 6Lo network interfaces can only support a max_frag_size of
SIXLOWPAN_FRAG_MAX_LEN (2047 bytes) as the length field is only 11-bits.

This limits the max_frag_size in the case that the L2-PDU is higher than
that.

Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2020-06-07 15:43:33 -05:00
Leandro Lanzieri
7262b1d4d9
Merge pull request #14126 from akshaim/Kconfig_tcp
gnrc/tcp : Expose configurations to Kconfig
2020-06-03 08:32:26 +02:00
Francisco
cf7125d4cf
Merge pull request #14172 from benpicco/sys/net/gnrc/netif/gnrc_netif_relax_assert
gnrc_netif: relax 6lo MTU assertion for 802.15.4g
2020-06-02 13:53:36 +02:00
Akshai M
c191b009a3 gnrc/tcp : Expose to Kconfig
Expose configurations to Kconfig
2020-06-02 15:46:44 +05:30
Akshai M
badeb74d16 gnrc/tcp : Move GNRC_TCP_DEFAULT_WINDOW to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
49df2258e3 gnrc/tcp : Move GNRC_TCP_PROBE_UPPER_BOUND to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
d6904349a9 gnrc/tcp : Move CONFIG_GNRC_TCP_PROBE_LOWER_BOUND to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
27f9d2def6 gnrc/tcp : Move GNRC_TCP_RTO_K to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
e42cc62edc gnrc/tcp : Move GNRC_TCP_RTO_B_DIV to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
f704a1e5c9 gnrc/tcp : Move GNRC_TCP_RTO_A_DIV to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
f25c21988d gnrc/tcp : Move GNRC_TCP_RTO_GRANULARITY to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
c599c65124 gnrc/tcp : Move GNRC_TCP_RTO_UPPER_BOUND to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
ea79c71ce8 gnrc/tcp : Move GNRC_TCP_RTO_LOWER_BOUND to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
648247592c gnrc/tcp : Move GNRC_TCP_RCV_BUFFERS to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
e8b13ab44d gnrc/tcp : Move GNRC_TCP_MSS to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
0b3e0de03e gnrc/tcp : Move GNRC_TCP_MSL to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Akshai M
01dd8e4fa8 gnrc/tcp : Move GNRC_TCP_CONNECTION_TIMEOUT_DURATION to 'CONFIG_' 2020-06-02 15:46:44 +05:30
Benjamin Valentin
840be824d4 gnrc_netif: relax 6lo MTU assertion for 802.15.4g
802.15.4g devices have a 2047 byte PDU.
So the assertion `netif->ipv6.mtu == IPV6_MIN_MTU` is too strict here.

This is only enforced on init, so changing the modulation at run-time
did not catch this bug.

To test, use e.g. `at86rf215` with

    CFLAGS += -DAT86RF215_DEFAULT_PHY_MODE=IEEE802154_PHY_MR_OQPSK

fixes #14164
2020-05-29 15:59:23 +02:00
Sören Tempel
a8b0491751 gnrc_pktbuf_malloc: add comment to fuzzing termination condition 2020-05-26 17:24:44 +02:00
Sören Tempel
f37c1fd9dd gnrc_sock: add comment to fuzzing termination condition 2020-05-26 17:24:43 +02:00
Sören Tempel
3314388417 sock_async_event: Implement termination condition for fuzzing
See: 65c7bbf76d.
2020-05-26 17:24:40 +02:00
Sören Tempel
729e0f95ac gnrc_sock: Export prevpkt and rename it to gnrc_sock_prevpkt
This is a perquisite for fuzzing applications using sock_async_event.
2020-05-26 17:24:39 +02:00
benpicco
70543bba1d
Merge pull request #13275 from miri64/gnrc_ipv6_ext_opt/feat/initial
gnrc_ipv6_ext_opt: initial import
2020-05-20 14:35:58 +02:00
Martine S. Lenders
d04621fc43
gnrc_ipv6_ext_opt: initial import
This provides header parsing for IPv6 hop-by-hop and destination
options according to [RFC 8200].

[RFC 8200]: https://tools.ietf.org/html/rfc8200#section-4.2
2020-05-20 12:34:04 +02:00
Benjamin Valentin
3974a04623 gnrc/nib: add NIB event bus
Add a message bus where threads can listen for nib events.

Currently only the GNRC_IPV6_NIB_EVENT_ADDR_VALID event is
implemented which informs subscribers that an address got
valid.
2020-05-20 10:44:11 +02:00
Benjamin Valentin
85100ad61a gnrc_netif: add message bus to interface
Allow threads to listen for events on an interface.
2020-05-20 10:44:11 +02:00
Leandro Lanzieri
16113afb1e
Merge pull request #14026 from miri64/gnrc_netif/fix/deps
gnrc_netif: use gnrc_netif-submodules to pull in upper-layer struct members
2020-05-19 16:36:18 +02:00
Martine S. Lenders
a48629b395
gnrc_netif: introduce gnrc_netif_ipv6 pseudo-module for IPv6 members
This aims to reduce circular dependencies in GNRC.
2020-05-19 16:10:59 +02:00
Martine S. Lenders
9801a439fc
gnrc_netif: introduce gnrc_netif_6lo pseudo-module for 6LoWPAN members
This aims to reduce circular dependencies in GNRC.
2020-05-19 16:10:59 +02:00
Martine S. Lenders
0d2f0a5ba4
gnrc_netif: fix gnrc_netif_lorawan dependencies 2020-05-19 16:10:58 +02:00
Michel Rottleuthner
740bb4e32e sys/net/gnrc/sock: release pktsnip when message queue is full 2020-05-15 18:24:42 +02:00
Ken Bannister
f81dda2174
Merge pull request #14059 from miri64/gnrc_sock/fix/re-recv-signal
gnrc_sock: re-issue MSG_RECV event if there are still received messages after `*_recv()` was called.
2020-05-15 11:38:32 -04:00
Leandro Lanzieri
4b3bfd3c83
gnrc/rpl: Expose configurations to Kconfig 2020-05-14 15:57:02 +02:00
Leandro Lanzieri
8ce77f2045
gnrc/rpl: Move GNRC_RPL_MSG_QUEUE_SIZE to 'CONFIG_' namespace 2020-05-14 15:57:02 +02:00
Leandro Lanzieri
2c04f54d28
gnrc/rpl: Move GNRC_RPL_DEFAULT_NETIF to 'CONFIG_' namespace 2020-05-14 15:57:01 +02:00
Leandro Lanzieri
d075b4dfe9
gnrc/rpl: Move GNRC_RPL_PARENT_TIMEOUT_DIS_RETRIES to 'CONFIG_' 2020-05-14 15:57:01 +02:00
Leandro Lanzieri
e547061d19
gnrc/rpl: Move GNRC_RPL_DEFAULT_INSTANCE to 'CONFIG_' namespace 2020-05-14 15:57:01 +02:00
Leandro Lanzieri
5a28e7cad4
gnrc/rpl: Move GNRC_RPL_DEFAULT_MAX_RANK_INCREASE to 'CONFIG_' 2020-05-14 15:57:00 +02:00
Leandro Lanzieri
1b6f915e0c
gnrc/rpl: Move GNRC_RPL_DEFAULT_MIN_HOP_RANK_INCREASE to 'CONFIG_' 2020-05-14 15:57:00 +02:00
Leandro Lanzieri
cd50686eb6
gnrc/rpl: Move GNRC_RPL_WITHOUT_VALIDATION to 'CONFIG_' namespace
Also check its value using IS_ACTIVE when possible.
2020-05-14 15:57:00 +02:00
Leandro Lanzieri
02b10105c1
gnrc/rpl: Move GNRC_RPL_DODAG_CONF_OPTIONAL_ON_JOIN to 'CONFIG_' 2020-05-14 15:56:59 +02:00
Leandro Lanzieri
dfa722c519
gnrc/rpl: Move GNRC_RPL_WITHOUT_PIO to 'CONFIG_' namespace
Also evaluate its value using IS_ACTIVE when possible.
2020-05-14 15:56:59 +02:00
Leandro Lanzieri
908309f714
gnrc/rpl: Move GNRC_RPL_CLEANUP_TIME to 'CONFIG_' namespace 2020-05-14 15:56:58 +02:00
Leandro Lanzieri
33189b869e
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_JITTER to 'CONFIG_' namespace 2020-05-14 15:56:58 +02:00
Leandro Lanzieri
3deab70a4c
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_DEFAULT to 'CONFIG_' namespace 2020-05-14 15:56:57 +02:00
Leandro Lanzieri
c8fb88d2f0
gnrc/rpl: Move GNRC_RPL_DAO_DELAY_LONG to 'CONFIG_' namespace 2020-05-14 15:56:57 +02:00
Leandro Lanzieri
c162631aa3
gnrc/rpl: Move GNRC_RPL_DAO_ACK_DELAY to 'CONFIG_' 2020-05-14 15:56:57 +02:00
Leandro Lanzieri
df29a769ba
gnrc/rpl: Move GNRC_RPL_DAO_SEND_RETRIES to 'CONFIG_' namespace 2020-05-14 15:56:56 +02:00
Leandro Lanzieri
51939c3608
gnrc/rpl: Move GNRC_RPL_LIFETIME_UNIT to 'CONFIG_' namespace 2020-05-14 15:56:56 +02:00
Leandro Lanzieri
3b06b41fa9
gnrc/rpl: Move GNRC_RPL_DEFAULT_LIFETIME to 'CONFIG_' namespace 2020-05-14 15:56:56 +02:00
Leandro Lanzieri
c61b6bca38
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_REDUNDANCY_CONSTANT to 'CONFIG_' 2020-05-14 15:56:55 +02:00
Leandro Lanzieri
f353ca8225
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_INTERVAL_MIN to 'CONFIG_' namespace 2020-05-14 15:56:55 +02:00
Leandro Lanzieri
7216c21dbc
gnrc/rpl: Move GNRC_RPL_DEFAULT_DIO_INTERVAL_DOUBLINGS to 'CONFIG_' 2020-05-14 15:56:52 +02:00
Martine Lenders
a6fe69b0e8
Merge pull request #13740 from miri64/gnrc_ipv6_nib/fix/abr-add-pio-iface
gnrc_ipv6_nib: only add prefix of same interface to ABR
2020-05-12 15:43:45 +02:00
Martine S. Lenders
d66583b542
gnrc_sock: re-issue MSG_RECV event if there are still received messages
... after `*_recv()` was called.

This prevents a client from needing to call `*_recv()` in a loop.
2020-05-12 14:01:56 +02:00
Martine Lenders
4e6df34576
gnrc_ipv6_nib: only add prefix of same interface to ABR
It doesn't make sense for an Authoritative Border Router to manage a
prefix that does not belong to the border router's downstream
interface.
2020-05-12 13:06:20 +02:00
José Alamos
089e0a2b44
Merge pull request #14048 from jue89/fix/gnrc_lorawan_abp
net/gnrc/netif/lorawan: fix ABP device activation
2020-05-11 11:34:59 +02:00
Juergen Fitschen
1eb3b596c4 net/gnrc/netif/lorawan: fixed ABP device activation 2020-05-09 20:16:29 +02:00
Juergen Fitschen
255c76ff35 net/gnrc/netif/lorawan: fixed deprecated NETOPT_LINK_CONNECTED 2020-05-09 20:11:16 +02:00
Leandro Lanzieri
2d1d13d452
Merge pull request #14028 from miri64/gnrc_pktdump/fix/opt-deps
gnrc_pktdump: fix dependencies
2020-05-08 08:53:31 +02:00
Martine Lenders
18bd56d2d9
Merge pull request #13979 from benpicco/net/gnrc/netif/6lo-frag_size
gnrc/netif: 6lo: use 16 bit for max_frag_size
2020-05-06 12:43:02 +02:00
8ffd34ddd0
Merge pull request #12776 from maribu/test_event_wait_timeout
tests/event_wait_timeout: Fix for 8bit platforms
2020-05-05 21:33:06 +02:00
Martine S. Lenders
a349748354
gnrc_pktdump: reorder switch-cases in accordance with enum order 2020-05-05 21:05:00 +02:00
Martine S. Lenders
d43384d238
gnrc_pktdump: remove some duplicate calls to od_hex_dump()
`od_hex_dump()` is called if `hdr_len < pkt->size` to print the rest
after `hdr_len` of `pkt`. So if we just leave `hdr_len = 0` instead of
calling `od_hex_dump()` for every other NETTYPE, we achieve the same
effect.

As it is more effective (and already done in some cases) to re-set
`hdr_len` when the header was printed, we initialize `hdr_len` first
with 0 now.
2020-05-05 21:05:00 +02:00
Martine S. Lenders
5414164119
gnrc_pktdump: use gnrc_nettype_% module where appropriate 2020-05-05 21:05:00 +02:00
Benjamin Valentin
18651eb399 gnrc_netif: Use full L2-PDU as IPv6 MTU
If the L2-PDU is greater than IPV6_MIN_MTU, use that as the MTU instead.
2020-04-29 12:49:36 +02:00
Francisco
80b300289d
Merge pull request #13912 from benpicco/at86rf215-mr-qpsk
drivers/at86rf215: implement MR-O-QPSK
2020-04-29 12:44:00 +02:00
Benjamin Valentin
504d02038d gnrc_netif: update PDU after changing PHY mode 2020-04-29 10:41:37 +02:00
Martine Lenders
633d0f486d
Merge pull request #13669 from bergzand/pr/netif/async_events
gnrc_netif: Add support for internal event loop
2020-04-28 13:03:39 +02:00
Martine S. Lenders
cb8a6c36b0
gnrc_ipv6_nib: 6ln: use interface-specific DR for address registration
With multiple 6LoWPAN interfaces the router for the given interface
—the one the triggering RA came over—should be used to register the
address with.

Co-Authored-By: Benjamin Valentin <benpicco@googlemail.com>
2020-04-25 01:20:55 +02:00
Martine S. Lenders
245c04f368
gnrc_ipv6_nib: internal: add capability to search DR by interface
Co-Authored-By: Benjamin Valentin <benpicco@googlemail.com>
2020-04-24 17:57:09 +02:00
Marian Buschsieweke
7b67e74bed
sys/net/gnrc: Use %lu to print times 2020-04-23 21:16:57 +02: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
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
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
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
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
Martine Lenders
76acde0984
Merge pull request #13779 from miri64/sock/enh/sock_buf_recv-iterate-chunks
sock: amend API to iterate over stack-internal buffer chunks
2020-04-01 16:59:03 +02:00
Martine S. Lenders
d934579817
gnrc_sock: adapt for *_recv_buf() API change 2020-04-01 15:50:51 +02:00
Leandro Lanzieri
461f40949d
gnrc/ipv6: Group IPv6 related Kconfig files 2020-04-01 14:34:13 +02:00
Leandro Lanzieri
4476e06814
gnrc/uhcpc: Fix lines lengths 2020-03-31 19:02:55 +02:00
Leandro Lanzieri
184bbd32e5
gnrc/netif: Fix lines lengths 2020-03-31 19:02:54 +02:00
Leandro Lanzieri
87ac1a652d
gnrc/nib: Expose configurations to Kconfig 2020-03-31 19:02:51 +02:00
Leandro Lanzieri
64dde8f317
gnrc/nib: Move GNRC_IPV6_NIB_ABR_NUMOF to 'CONFIG_' namespace 2020-03-31 18:07:13 +02:00
Leandro Lanzieri
a77d0dd9c5
gnrc/nib: Move GNRC_IPV6_NIB_OFFL_NUMOF to 'CONFIG_' namespace 2020-03-31 18:07:13 +02:00
Leandro Lanzieri
f6ee712e98
gnrc/nib: Move GNRC_IPV6_NIB_DEFAULT_ROUTER_NUMOF to 'CONFIG_' namespace 2020-03-31 18:07:12 +02:00
Leandro Lanzieri
f2ed8b06c0
gnrc/nib: Move GNRC_IPV6_NIB_L2ADDR_MAX_LEN to 'CONFIG_' namespace 2020-03-31 18:07:12 +02:00
Leandro Lanzieri
acd789bd87
gnrc/nib: Move GNRC_IPV6_NIB_CONF_REACH_TIME_RESET to 'CONFIG_' 2020-03-31 18:07:11 +02:00
Leandro Lanzieri
07771de08f
gnrc/nib: Move GNRC_IPV6_NIB_NUMOF to 'CONFIG_' namespace 2020-03-31 18:07:11 +02:00
Leandro Lanzieri
1f20ffc150
gnrc/nib: Move GNRC_IPV6_NIB_CONF_NO_RTR_SOL to 'CONFIG_' namespace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:10 +02:00
Leandro Lanzieri
53a522d642
gnrc/nib: Move GNRC_IPV6_NIB_CONF_MULTIHOP_P6C to 'CONFIG_' namespace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:10 +02:00
Leandro Lanzieri
22b4df9537
gnrc/nib: Move GNRC_IPV6_NIB_CONF_MULTIHOP_DAD to 'CONFIG_' namespace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:09 +02:00
Leandro Lanzieri
3ec296400d
gnrc/nib: Move GNRC_IPV6_NIB_CONF_DC to 'CONFIG_' namespace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:09 +02:00
Leandro Lanzieri
219d5a1de2
gnrc/nib: Move GNRC_IPV6_NIB_CONF_REDIRECT to 'CONFIG_' namspace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:08 +02:00
Leandro Lanzieri
bad9abd349
gnrc/nib: Move GNRC_IPV6_NIB_CONF_DNS to 'CONFIG_' namespace
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:07 +02:00
Leandro Lanzieri
e52b93cef0
gnrc/nib: Move GNRC_IPV6_NIB_CONF_ARSM to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:07 +02:00
Leandro Lanzieri
f23267b67b
gnrc/nib: Move GNRC_IPV6_NIB_CONF_QUEUE_PKT to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:06 +02:00
Leandro Lanzieri
ce931f179c
gnrc/nib: Move GNRC_IPV6_NIB_CONF_SLAAC to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:05 +02:00
Leandro Lanzieri
49ec28867c
gnrc/nib: Move GNRC_IPV6_NIB_CONF_ROUTER to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:05 +02:00
Leandro Lanzieri
1acfe7ae19
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LN to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:04 +02:00
Leandro Lanzieri
398bb6d025
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LR to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE
2020-03-31 18:07:03 +02:00
Leandro Lanzieri
40c78f1c75
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LBR to 'CONFIG_' namespace
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:03 +02:00
Benjamin Valentin
a3adaa7ec0 gnrc_ipv6_nib: fix index calculation
We must divide the pointer difference (in bytes) by the size of
the individual elements to get the index of the element.
2020-03-28 00:00:16 +01:00
Benjamin Valentin
a835ad3e13 gnrc_ipv6_nib: append ext_opts when adding sixco 2020-03-27 22:52:31 +01:00
benpicco
8024380f7b
Merge pull request #13700 from miri64/gnrc_sock/enh/recv_buf
gnrc_sock: provide implementation for `sock_*_recv_buf()`
2020-03-27 16:34:57 +01:00
benpicco
15dc9fe0de
Merge pull request #13731 from benpicco/upstream_no_rtr_adv
gnrc_uhcp, gnrc_dhcpv6_client_6lbr: disable Router Advertisements on upstream interface
2020-03-27 10:32:59 +01:00
Benjamin Valentin
3f24eaefb9 gnrc_uhcp: disable router advertisements on upstream interface 2020-03-27 00:37:54 +01:00
Benjamin Valentin
fec156899c gnrc_dhcpv6_client_6lbr: disable router advertisements on upstream interface
We don't want to advertise ourselves as a router to the upstream router.
This also leads to the border router ignoring advertisements from the upstream
router.
2020-03-27 00:37:54 +01:00
Martine Lenders
f39cfc7556
Merge pull request #13253 from nmeum/pr/random_ephemeral_port
gnrc_sock_udp: choose random ephemeral port
2020-03-26 15:00:14 +01:00
Martine Lenders
061eb88c05
Merge pull request #12994 from jia200x/pr/gnrc_netif_desc_alloc
gnrc_netif: implementation of dynamic GNRC_NETIF_NUMOF approach
2020-03-26 14:30:44 +01:00
Jose Alamos
44f7cb712c gnrc_netif: add GNRC_NETIF_SINGLE macro 2020-03-26 14:19:02 +01:00
Martine Lenders
cba1a2da0c
Merge pull request #13666 from jue89/feature/evtimer_now_msec
net/gnrc/ipv6/nib: remove direct dependency to xtimer
2020-03-26 13:50:13 +01:00
Jose Alamos
e451570219 gnrc_netif: remove GNRC_NETIF_NUMOF macro 2020-03-26 11:12:23 +01:00
Jose Alamos
67ed9defbe gnrc_netif_xxx_create: use external netif allocation 2020-03-26 11:12:23 +01:00
Martine Lenders
ab5deca3b0
Merge pull request #13712 from miri64/gnrc_uhcp/fix/prefix_len
gnrc_uhcp: use actually advertised prefix length
2020-03-25 18:46:00 +01:00
Martine S. Lenders
01d94f268a
gnrc_uhcp: use actually advertised prefix length
This makes the UHCP client to use the actually advertised prefix length
instead of assuming /64.
2020-03-25 16:55:01 +01:00
benpicco
6ae0fd7c82
Merge pull request #13485 from miri64/gnrc_dhcpv6/enh/configure-context
gnrc_dhcpv6_client: configure prefix as compression context on 6LBRs
2020-03-25 16:48:11 +01:00
benpicco
53790d1269
Merge pull request #13713 from miri64/gnrc_sixlowpan_iphc/bug/encode-zero-header
gnrc_sixlowpan_iphc: zero IPv6 header before decompressing into it
2020-03-25 16:43:17 +01:00
Martine S. Lenders
ac222521ab
gnrc_sixlowpan_iphc: zero IPv6 header before decompressing into it 2020-03-25 14:54:18 +01:00
Martine S. Lenders
4fc0251b4b
gnrc_ipv6_nib: only route to prefix list entry if on-link
In 06aa65e1ba (#10627) a new behavior was
introduced in IPv6 route resolution to try address resolution only at
interfaces that have the prefix of the address to be resolved configured
in the prefix list. This however only makes sense, if the prefix
configured is [on-link], otherwise there is small likelihood of the
address to be resolved being on that link.

For the error case presented for 06aa65e (circular routing at the border
router) this made sense, however within a 6LoWPAN, due to the prefix
being valid for the entire mesh, this leads to the nodes always trying
classic address resolution for in-network addresses instead of just
routing to the default route.
Classic address resolution however fails, as 6LoWPAN hosts typically
[don't join the solicited-node multicast address of their unicast
addresses][6LN-iface-init], resulting in in-network addresses not being
reachable.

As such, to prevent both error cases

- the fallback to address resolution by prefix list must only be used
  when the prefix is on-link,
- the prefix configured by DHCPv6/UHCP at the 6LoWPAN border router
  must be configured as on-link, but
- the prefix must not be advertised as on-link within the 6LoWPAN to
  still be [in line with RFC 6775][RFC-6775-forbidden]

With this change these cases are covered.

[on-link]: https://tools.ietf.org/html/rfc4861#page-6
[RFC 6775]: https://tools.ietf.org/html/rfc6775
[6LN-iface-init]: https://tools.ietf.org/html/rfc6775#section-5.2
[RFC-6775-forbidden]: https://tools.ietf.org/html/rfc6775#section-6.1
2020-03-25 13:13:40 +01:00
Martine Lenders
e47c8fa91c
Merge pull request #10627 from miri64/gnrc_ipv6_nib/fix/forward-to-pl
gnrc_ipv6_nib: don't ignore PL for route
2020-03-24 21:49:56 +01:00
Martine Lenders
06aa65e1ba
gnrc_ipv6_nib: don't ignore PL for route
When pinging to a prefix for which there is a prefix list entry on the
node (so no next hop) but a default route, a packet to a non-existent
address under that prefix results in the packet being forwarded to the
default route instead. This fixes it, so the node tries address
resolution on the interface the prefix list entry is associated to.
2020-03-24 18:19:18 +01:00
Martine S. Lenders
39cd293a0e
gnrc_sock: provide implementation for sock_*_recv_buf() 2020-03-24 17:15:17 +01:00
Juergen Fitschen
877e0a9b32 net/gnrc/ipv6/nib: fix typos 2020-03-24 13:07:20 +01:00
Juergen Fitschen
47f5cd8618 net/gnrc/ipv6/nib: make use of the evtimer system time getter
This commit removes the implication that evtimer uses xtimer as timer backend.
2020-03-24 13:07:20 +01:00
Francisco
cdbf0b2d69
Merge pull request #13583 from benpicco/at86rf215-minimal
drivers/at86rf215: add basic support for AT86RF215 dual-band radio
2020-03-20 09:33:50 +01:00
benpicco
5435792034
Merge pull request #12277 from benemorius/pr/kw41zrf
drivers: add kw41zrf
2020-03-20 00:49:56 +01:00
Joakim Nohlgård
5bd67d88a8 drivers/kw41zrf: Transceiver driver for the KW41Z radio
This is the radio found in NXP Kinetis KW41Z, KW21Z. Only 802.15.4 mode
is implemented (KW41Z also supports BLE on the same transceiver).

The driver uses vendor supplied initialization code for the low level
XCVR hardware, these files were imported from KSDK 2.2.0 (framework_5.3.5)
2020-03-19 17:00:04 -05:00
Benjamin Valentin
d35511bee7 drivers/at86rf215: Add basic driver for the AT86RF215 radio
This adds a driver for the SPI based AT86RF215 transceiver.
The chip supports the IEEE Std 802.15.4-2015 and IEEE Std 802.15.4g-2012 standard.

This driver supports two versions of the chip:
    - AT86RF215:  dual sub-GHz & 2.4 GHz radio & baseband
    - AT86RF215M: sub-GHz radio & baseband only

Both radios support the following PHY modes:
    - MR-FSK
    - MR-OFDM
    - MR-O-QPKS
    - O-QPSK (legacy)

The driver currently only implements support for legacy O-QPSK.

To use both interfaces, add

    GNRC_NETIF_NUMOF := 2

to your Makefile.

The transceiver is able to send frames of up to 2047 bytes according to
IEEE 802.15.4g-2012 when operating in non-legacy mode.

Known issues:

 - [ ] dBm setting values are bogus
 - [ ] Channel spacing for sub-GHz MR-O-QPSK might be wrong
 - [ ] TX/RX stress test will lock up the driver on openmote-b
2020-03-19 14:39:18 +01:00
Jose Alamos
4393822b0f gnrc_netif: add function to check if device requires 6Lo 2020-03-17 10:54:30 +01:00
Jose Alamos
6ace7b5472 gnrc_netif: use gnrc_netif_single where possible 2020-03-17 10:54:30 +01:00
Leandro Lanzieri
d281d4843f
Merge pull request #13628 from jia200x/pr/gnrc_rpl_macro
gnrc_rpl: add default value to GNRC_RPL_DEFAULT_NETIF
2020-03-13 15:47:13 +01:00
Jose Alamos
b553535cea gnrc_rpl_auto_init: replace preprocessor logic with if chain 2020-03-13 13:30:29 +01:00
Martine S. Lenders
4bdd138021
gnrc_sock: update implementation for async callback argument 2020-03-11 16:54:11 +01:00
Martine S. Lenders
612e782b3c
sock_async: supply optional callback argument with callback setter 2020-03-11 16:54:11 +01:00
Martine S. Lenders
6e6e435c65
sock_async: add optional callback argument 2020-03-11 16:54:11 +01:00
José Alamos
de4a1bf552
Merge pull request #13595 from gschorcht/gnrc/lorawan/fix_downlink_handling
gnrc/lorawan: fixes the handling of downlink frames without payload
2020-03-09 15:08:25 +01:00
Martine S. Lenders
c110337f6a
gnrc_dhcpv6_client: only configure 6Lo-ND features if interface is 6LN 2020-03-09 14:21:53 +01:00
Martine S. Lenders
06d1d79ffa
gnrc_dhcpv6_client: configure prefix as compression context on 6LBRs 2020-03-09 14:21:53 +01:00
Martine S. Lenders
079b9f717f
gnrc_dhcpv6_client: replace #if guards with if expressions 2020-03-09 14:21:52 +01:00
Gunar Schorcht
de38fc5e2e gnrc/lorawan: fix handling of downlink message without payload 2020-03-09 12:33:03 +01:00
Gunar Schorcht
32c78e3317 gnrc/lorawan: fix netopt_state_t size in link_layer
`netopt_state_t` is an enumeration type which is not necessarily 1 byte. If `uint8_t` is used, the cast `*((const netopt_state_t*) val` in `sx127x_netdev::_set`tries to read the real size, which can be more than the given length of 1 byte. Therefore, `netstat_opt_t` has to be used instead of `uint8_t`
2020-03-08 17:10:24 +01:00
Jose Alamos
6143cd800b gnrc_netif: use gnrc_netif_send where possible 2020-03-06 15:22:58 +01:00
Martine S. Lenders
f159b86b8a
gnrc_uhcpc: only configure 6Lo-ND features if wireless-interface is 6LN
Otherwise the border router has no way to disseminate the context
throughout the network.
2020-03-05 19:59:27 +01:00
Martine Lenders
c1a34ce860
Merge pull request #13560 from miri64/gnrc_uhcpc/fix/rm-before-adding
gnrc_uhcpc: ensure compression context is managed by the ABR
2020-03-05 17:12:45 +01:00
benpicco
7af046d740
Merge pull request #13548 from benpicco/sys/auto_init/netif-manual
sys/auto_init: allow delayed initialisation of SAUL & gnrc_netif
2020-03-05 17:05:02 +01:00
Martine S. Lenders
eacd0814d2
gnrc_uhcpc: remove wild comment 2020-03-05 15:51:52 +01:00
Martine S. Lenders
081499e280
gnrc_uhcpc: add compression context before ABR
This way the context is added to the ABR's context list automatically.
2020-03-05 15:51:52 +01:00
Martine S. Lenders
f626e5e7ef
gnrc_uhcpc: remove old prefix before adding new 2020-03-05 15:51:52 +01:00
Benjamin Valentin
4f7d5b105b sys/net/gnrc: Flag esp_now as 6LN
In gnrc_netif_init_6ln() the flag GNRC_NETIF_FLAGS_6LN is accidentally not set
for esp_now devices. This commit fixes this.
2020-03-05 15:18:43 +01:00
Benjamin Valentin
d765098d72 sys/auto_init: allow delayed initialisation of gnrc_netif
Co-authored-by: Martine S. Lenders <m.lenders@fu-berlin.de>
2020-03-04 16:13:40 +01:00
Martine S. Lenders
6c5d9e4f39
gnrc_uhcpc: fix NULL pointer dereference 2020-03-03 13:56:56 +01:00
benpicco
244c7da050
Merge pull request #13026 from brummer-simon/gnrc_tcp-prepare_for_sock_integration
gnrc_tcp: Prepare for sock integration.
2020-02-26 23:22:58 +01:00
Simon Brummer
10872d9a85 gnrc_tcp: Add Endpoints for connection specification 2020-02-26 21:24:06 +01:00
Martine S. Lenders
d99d0a0df0
gnrc_uhcpc: use LOG_INFO() for configuration information 2020-02-26 13:22:56 +01:00
Martine Lenders
8cc9c5ebe7
gnrc_uhcpc: update compression context with new prefix
This updates (or adds) a compression context whenever a new prefix
arrives at the border router. This allows 6LoWPAN to compress said
prefix in the network.

Sadly, there is now way to just remove the context when the prefix is
overwritten, so I do not do it. If an administrator chooses to reset the
prefix they can use `6ctx del` which timeouts the prefix appropriately,
but IMHO it doesn't hurt to keep the old contexts.
2020-02-26 13:22:56 +01:00
Sören Tempel
0e2a620788 gnrc_tftp: remove module
Has been deprecated for awhile (01fc3d8f0b).
2020-02-20 12:04:01 +01:00
benpicco
030e7ebc06
Merge pull request #13307 from miri64/dhcpv6-client-6lbr/feat/init
gnrc_dhcpv6_client_6lbr: initial import of a 6LBR DHCPv6 client
2020-02-20 11:00:35 +01:00
Martine S. Lenders
db463a3373
gnrc_dhcpv6_client_6lbr: initial import of a 6LBR DHCPv6 client 2020-02-19 17:37:47 +01:00
Sören Tempel
5cf433806e gnrc_sock_udp: fix null check in port generation function
Still check if the port is unused if no socket has been given.
2020-02-17 10:20:22 +01:00
Cenk Gündoğan
08c3dedf38 gnrc_rpl_p2p: use correct netif functions 2020-02-14 11:42:33 +01:00
Cenk Gündoğan
50423d60cf gnrc_rpl_p2p: use correct parameters for trickle_start() 2020-02-14 11:41:56 +01:00
Cenk Gündoğan
4b58e5d41b gnrc_rpl_p2p: fix cleanup timer usage 2020-02-14 11:41:30 +01:00
benpicco
5b608ef712
Merge pull request #12766 from miri64/gnrc_netapi/enh/report-error
gnrc_netapi: report errors on dispatch
2020-02-11 23:41:39 +01:00
Martine S. Lenders
a0740ee535 gnrc_netapi: report errors on dispatch 2020-02-11 18:16:02 +01:00
Martine Lenders
ebb20f2d44
Merge pull request #13305 from miri64/gnrc_ipv6_ext_frag_stats/feat/initial
gnrc_ipv6_ext_frag: initial import of statistics module
2020-02-10 20:23:13 +01:00
Martine S. Lenders
cf69e61289
gnrc_ipv6_ext_frag: initial import of statistics module 2020-02-06 13:48:42 +01:00
Martine S. Lenders
ed9f43ab3a
gnrc_sixlowpan_frag_stats: add average fragments per datagram statistic 2020-02-06 13:40:23 +01:00
Sören Tempel
b37bed8a1d gnrc_sock_udp: choose random ephemeral port
Implements a random ephemeral port selection as per the second algorithm
from RFC 6056, see https://tools.ietf.org/html/rfc6056#section-3.3.2.
2020-02-03 16:55:00 +01:00
Leandro Lanzieri
5e1ef498a7
Merge pull request #13245 from miri64/gnrc_sixlowpan_frag_rb/enh/doc-fix-kconfig
gnrc_sixlowpan_frag_rb: fix doc on DO_NOT_OVERRIDE
2020-02-03 13:54:37 +01:00
Martine Lenders
02c16479cf
Merge pull request #13244 from miri64/gnrc_ipv6_ext/enh/rbuf-do-not-override
gnrc_ipv6_ext_frag: add configuration option to keep oldest entry
2020-02-03 13:23:20 +01:00
Martine S. Lenders
90ed5bf4af
gnrc_sixlowpan_frag_rb: fix doc on DO_NOT_OVERRIDE 2020-02-03 12:48:19 +01:00
Martine S. Lenders
d99012561a
gnrc_ipv6_ext_frag: add configuration option to keep oldest entry 2020-02-03 12:44:15 +01:00
benpicco
c7b0483549
Merge pull request #12879 from miri64/gnrc_sixlowpan_iphc/feat/nhc-ext
gnrc_sixlowpan_iphc: add support for IPv6 extension header compression
2020-01-31 12:02:47 +01:00
Cenk Gündoğan
0cf8bf1665
Merge pull request #12958 from leandrolanzieri/pr/kconfig_migrate/gnrc/ipv6_ext_hdr
Kconfig: Expose gnrc/ipv6/ext/frag configurations
2020-01-30 19:15:08 +01:00
Martine S. Lenders
0b3f785dfe
gnrc_sixlowpan_iphc: add extension header decoding 2020-01-30 17:59:59 +01:00
Leandro Lanzieri
fe820d8d9d Kconfig: Expose gnrc/ipv6/ext/frag configurations 2020-01-30 17:42:42 +01:00
Leandro Lanzieri
5602bd55ed gnrc/ipv6/ext/frag: Move configurations to 'CONFIG_' namespace
Macros that changed:
GNRC_IPV6_EXT_FRAG_SEND_SIZE -> CONFIG_GNRC_IPV6_EXT_FRAG_SEND_SIZE
GNRC_IPV6_EXT_FRAG_RBUF_SIZE -> CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_SIZE
GNRC_IPV6_EXT_FRAG_LIMITS_POOL_SIZE -> CONFIG_GNRC_IPV6_EXT_FRAG_LIMITS_POOL_SIZE
GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US -> CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US
2020-01-30 17:42:41 +01:00
Sebastian Meiling
a4c4c25b3b
Merge pull request #12866 from jia200x/pr/gnrc_lorawan_remove_netdev
net/gnrc_lorawan: remove netdev layer from MAC
2020-01-30 14:02:59 +01:00
Jose Alamos
cc2fd97194 net/gnrc_lorawan: remove netdev abstraction from MAC layer 2020-01-27 10:10:24 +01:00
Leandro Lanzieri
881f17a816
Merge pull request #13123 from PeterKietzmann/pr_kconf_6lo
Kconfig: Expose gnrc/sixlowpan configurations
2020-01-20 17:41:52 +01:00
Martine S. Lenders
28ef3b6b0b
gnrc_ipv6_ext_frag: remove fragment header when n-th fragment is first
The reassembly buffer only needs (and stores) the headers *before* the
fragment header (called per-fragment headers in RFC 8200, section 4.5).
Currently, when a subsequent IPv6 fragment is received before the first
fragment the fragment header is however not removed. With this fix it
does.
2020-01-17 18:54:37 +01:00
PeterKietzmann
55282a1b1d net/gnrc/sixlowpan/frag/vrb:Move timeout macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
cc6bee4986 net/gnrc/sixlowpan/frag/vrb:Move size macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
7d2c9ef418 net/gnrc/sixlowpan/nd:Move ND time macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
582779a7a0 net/gnrc/sixlowpan/frag/rb:Move del. timer macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
811facfa15 net/gnrc/sixlowpan/frag/rb:Move timeout macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
9389d5b90f net/gnrc/sixlowpan/frag/rb:Move size macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
89af238eec net/gnrc/sixlowpan/frag/fb:Move size macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
b5ea3122e7 net/gnrc/sixlowpan:Move queue size macro to 'CONFIG_' namespace 2020-01-17 18:09:19 +01:00
PeterKietzmann
de99b99b35 Kconfig: Expose gnrc/sixlowpan configurations 2020-01-17 18:09:14 +01:00
Sebastian Meiling
48fbd446fe
Merge pull request #8796 from miri64/dhcpv6c-pd/feat/initial
dhcpv6: Initial implementation of a client (with IA_PD support)
2020-01-16 13:32:51 +01:00
Martine Lenders
15c828cf92
gnrc_dhcpv6_client: provide GNRC-specific DHCPv6 parts 2020-01-16 12:36:10 +01:00
fc45c2cc83
Merge pull request #12848 from miri64/gnrc_sixlowpan_frag_rb/fix/interval-fixes
gnrc_sixlowpan_frag_vrb: fix issues with interval marker inherited from base
2020-01-15 20:57:49 +01:00
Martine S. Lenders
d9ecc0b9bb
gnrc_sixlowpan_frag_vrb: append intervals of given base if entry exists
Otherwise the list in `base->ints` will get lost.
2020-01-15 15:00:03 +01:00
Martine S. Lenders
3082710f65
gnrc_ipv6_nib: allow for configuration of static link-local addresses
This feature was removed without replacment in 71a7dbf918, but it can
still be useful.

Co-Authored-By: smlng <s@mlng.net>
2020-01-14 15:46:18 +01:00
Francisco
1d206bca24
Merge pull request #12409 from miri64/gnrc_netif/fix/highest-source-scope-wins
gnrc_netif: highest source address scope wins selection
2020-01-14 10:43:24 +01:00
Martine S. Lenders
018e3dd437
gnrc_netif: use scope directly from address for multicast 2020-01-14 09:54:18 +01:00
Martine S. Lenders
85737a0436
gnrc_netif: remove misleading comment
The comment exists since the introduction of the [original
implementation], but its meaning is unclear and misleading, as the code
doesn't do anything with link-local.

[original implementation]: https://github.com/RIOT-OS/RIOT/pull/3561
2020-01-14 09:54:18 +01:00
Martine S. Lenders
46fd632e91
gnrc_netif: highest source address scope wins selection
Rule 2 of the source address algorithm outlined in [RFC6724] states the
possible source addresses must also be compared among each other:

>     Rule 2: Prefer appropriate scope.
>     If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then prefer SB and
>     otherwise prefer SA.  Similarly, if Scope(SB) < Scope(SA): If
>     Scope(SB) < Scope(D), then prefer SA and otherwise prefer SB.

Our current implementation doesn't do that. It just checks if the scope
of a possible source is lesser than the scope of the destination
(which involves the second "If" in the rule).

This fix grants points according to the scope of an address. If the
scope matches, they get the highest points, ensuring that the selected
source will always be reachable from the destination.

[RFC6724]: https://tools.ietf.org/html/rfc6724
2020-01-14 09:54:17 +01:00
PeterKietzmann
fb71ccc098 net/gnrc/netif:GNRC_NETIF_MIN_WAIT_AFTER_SEND_US to 'CONFIG_' namespace 2020-01-13 12:28:37 +01:00
PeterKietzmann
9e83d12bc0 net/gnrc/netif: Move GNRC_NETIF_IPV6_ADDRS_NUMOF to 'CONFIG_' namespace 2020-01-13 12:28:37 +01:00
PeterKietzmann
724d58b074 net/gnrc/netif: Move GNRC_NETIF_MSG_QUEUE_SIZE to 'CONFIG_' namespace 2020-01-13 12:28:37 +01:00
PeterKietzmann
b28a586702 net/gnrc/netif: Move GNRC_NETIF_DEFAULT_HL to 'CONFIG_' namespace 2020-01-13 12:28:37 +01:00
PeterKietzmann
c654d1fc8b Kconfig: Expose gnrc/netif configurations 2020-01-13 12:28:31 +01:00
PeterKietzmann
b2f0642825 Kconfig: Expose gnrc/ipv6/configurations 2020-01-10 12:23:35 +01:00
PeterKietzmann
3f0a19a9bc net/gnrc/ipv6: Move config macros to 'CONFIG_' namespace 2020-01-07 15:36:04 +01:00
Martine S. Lenders
37d99c11b0
gnrc_sock: use …/async/types.h instead of …/async.h 2020-01-07 10:13:01 +01:00
Francisco
dcc5299682
Merge pull request #10667 from miri64/gnrc_sixloenc/enh/6lo-config
gnrc_netif: make 6LoENC dynamically configurable
2020-01-06 13:19:24 +01:00
Leandro Lanzieri
b58b5792e9 Kconfig: Expose gnrc/lorawan configurations 2019-12-20 14:14:32 +01:00
Leandro Lanzieri
449da7602d gnrc/lorawan: Express timer drift in per mille instead of percentage 2019-12-20 14:12:43 +01:00
José Alamos
7d4082a6a3
Merge pull request #12922 from leandrolanzieri/pr/kconfig_migrate/gnrc/ipv6_blacklisting
Kconfig: Expose gnrc/ipv6/blacklist configurations
2019-12-20 11:32:46 +01:00
Martine S. Lenders
e1ae44b536
gnrc_sixlowpan_frag_stats: actualize pseudo-module
Having the definitions sit in the `net/gnrc/sixlowpan/frag.h` header
does not make much sense, when using Selective Fragment Forwarding
(and the fragmentation buffer already includes a
`net/gnrc/sixlowpan/frag/stats.h` header), so they are moved to their
own header. Since with this change it makes more sense to have the
statistics stored in their own sub-module, the pseudo-module is also
actualized.
2019-12-18 15:45:03 +01:00
Leandro Lanzieri
3383bae8fe Kconfig: Expose gnrc/ipv6/blacklist configurations 2019-12-11 10:51:04 +01:00
Leandro Lanzieri
56e61dac47 net/gnrc/ipv6_blacklist: Move config macros to 'CONFIG_' namespace
Macros that changed:
GNRC_IPV6_BLACKLIST_SIZE -> CONFIG_GNRC_IPV6_BLACKLIST_SIZE
2019-12-11 10:39:16 +01:00
Martine Lenders
d926810e0b
Merge pull request #12893 from leandrolanzieri/pr/kconfig_migrate/gnrc/ipv6_whitelisting
Kconfig: Expose gnrc/ipv6/whitelist configurations
2019-12-10 18:32:34 +01:00
Benjamin Valentin
00ff291f2e gnrc_lwmac: use uintptr_t to get value of pointer
A pointer is not 32 bit on all platforms.
Since gnrc_lwmac only stores 16 bit in the pointer variable it is
still save to cast like this even on AVR, but cast to uintptr_t
instead of uint32_t.

fixes #12869
2019-12-10 17:18:30 +01:00
Martine S. Lenders
3bf426e6fc
gnrc_sixlowpan_iphc: factor-out IPv6 header decoding into own function 2019-12-10 15:46:51 +01:00
Martine S. Lenders
8ce3c745c8
gnrc_sixlowpan_iphc: add extension header encoding 2019-12-10 15:31:56 +01:00
Martine S. Lenders
a0a334a491
gnrc_sixlowpan_iphc: factor-out IPv6 header encoding into own function 2019-12-10 15:29:06 +01:00
Martine Lenders
f38f974d86
Merge pull request #12629 from miri64/gnrc_sixlowpan_iphc/enh/vrb-creation
gnrc_sixlowpan_iphc: add fragment forwarding stubs
2019-12-10 14:58:01 +01:00
Martine S. Lenders
3273602f24
tests: provide test application for IPHC+VRB behavior 2019-12-10 13:59:41 +01:00
Martine Lenders
a689f51e9a
gnrc_sixlowpan_iphc: add rudimentary forwarding routine 2019-12-10 13:56:33 +01:00
Martine S. Lenders
e31394536b
gnrc_sixlowpan_iphc: factor encoding out of sending function 2019-12-10 13:56:05 +01:00
Martine S. Lenders
556d71a7da
gnrc_sixlowpan_iphc: create VRB entry from uncompressed header
... when VRB is available
2019-12-10 13:56:02 +01:00
José Alamos
2027efa9f4
Merge pull request #12894 from leandrolanzieri/pr/gnrc_doc_config_group
net/gnrc: Group compile configuration Doxygen groups and add GNRC LoRaWAN
2019-12-09 18:20:35 +01:00
Martine Lenders
7b13781cd2
Merge pull request #12625 from miri64/gnrc_sock/enh/async-support
gnrc_sock: provide asynchronous event implementation
2019-12-09 12:39:58 +01:00
Leandro Lanzieri
9a0a514fdd Kconfig: Expose gnrc/ipv6/whitelist configurations 2019-12-06 15:04:14 +01:00
Leandro Lanzieri
a626fec016 Kconfig: Add net/gnrc file and menu 2019-12-06 14:31:00 +01:00
Leandro Lanzieri
de2fbeb112 net/gnrc/ipv6_whitelist: Move config macros to 'CONFIG_' namespace
Macros that changed:
GNRC_IPV6_WHITELIST_SIZE -> CONFIG_GNRC_IPV6_WHITELIST_SIZE
2019-12-06 13:57:52 +01:00
Leandro Lanzieri
47981b96c1 sys/net/gnrc: Add GNRC configuration Doxygen group 2019-12-06 12:18:03 +01:00
Martine Lenders
159accff37 gnrc_ipv6: fix source check for loopback address
When the destination address is the loopback address (`::1`) in GNRC
the selected network interface typically is `NULL`, as with GNRC no
loopback interface de facto exists. So the assertion when checking if
the source address is valid if `netif != NULL` fails on that check.
This change fixes that issue by checking if the destination address is
the loopback address, before checking the validity of the source
address.
2019-12-05 23:38:53 +01:00
Jose Alamos
8999528390 net/gnrc_lorawan: add MIB for setting RX2 datarate 2019-12-03 14:48:29 +01:00
Jose Alamos
1e9bb7c175 net/gnrc_lorawan: add MIB for setting L2 address 2019-12-03 14:27:56 +01:00
Jose Alamos
99dbcecc3a net/gnrc_lorawan: remove netdev SAP interface 2019-12-03 14:08:35 +01:00
Martine Lenders
09c46e273d
Merge pull request #12845 from miri64/gnrc_sixlowpan_frag_rb/fix/rm-by-datagram-pkt-release
gnrc_sixlowpan_frag_rb: fix memory-leak in _rm_by_datagram()
2019-12-02 19:20:55 +01:00
benpicco
900c6994af
Merge pull request #12855 from miri64/gnrc_gomach/fix/i12853
gnrc_gomac: don't use constant as argument for RTT callback
2019-12-02 15:10:40 +01:00
Martine Lenders
e1f81f02fd gnrc_gomac: don't use constant as argument for RTT callback
The RTT callback for a super-frame cycle uses the `arg` pointer to set
the message value that then is handed to the GoMacH thread. However,
in both instances the timer is scheduled the constant
`GNRC_GOMACH_EVENT_RTT_NEW_CYCLE` is provided. This means the argument
is not really necessary.
2019-12-02 08:14:55 +01:00
Martine S. Lenders
0251d6585e
gnrc_sixlowpan_frag_rb: error when interval buffer is full 2019-11-29 18:00:54 +01:00
Martine S. Lenders
3fe1bf59a4
gnrc_sixlowpan_frag_rb: fix memory-leak in _rm_by_datagram()
This fits with the semantics of this function which doesn't provide or
uses any state of the reassembly buffer provided by the user, but finds
the entry itself and then removes it. This gives the user no chance to
remove the packet in the reassembly buffer entry, so
`gnrc_sixlowpan_frag_rb_rm_by_datagram()` has to release the packet
(other than `gnrc_sixlowpan_frag_rb_remove()` where not releasing the
packet is desired as it might be handed up to an upper layer).
2019-11-29 15:38:13 +01:00
Leandro Lanzieri
8aa66e94ea net/gnrc/netif: Remove 'if' prefix from interface names 2019-11-29 10:22:00 +01:00
MichelRottleuthner
bf676d4728
Merge pull request #11022 from jia200x/pr/gnrc_lorawan
gnrc_lorawan: add support for GNRC based LoRaWAN stack
2019-11-27 09:25:20 +01:00
Jose Alamos
43b7164796 gnrc_pktdump: add NETTYPE_LORAWAN 2019-11-26 21:52:06 +01:00
Jose Alamos
2edaead13e gnrc_netif: add gnrc_lorawan adaption layer 2019-11-26 21:52:06 +01:00
Jose Alamos
39951b8f70 gnrc_lorawan: add initial support for LoRaWAN stack 2019-11-26 21:52:06 +01:00
d4f3747705 sys/net: fix typos 2019-11-23 22:39:38 +01:00
Francois Berder
4a31f94cfc many typo fixes
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2019-11-23 22:39:07 +01:00
Martine S. Lenders
f2d1e661d1
gnrc_netapi: report errors on dispatch 2019-11-21 10:51:13 +01:00
Leandro Lanzieri
3c89597c83 net/gnrc/tcp: Adapt to change in ipv6_addr_split_iface 2019-11-15 14:02:50 +01:00
Martine Lenders
02295ce5c7
Merge pull request #12593 from miri64/gnrc_sixlowpan_frag_rb/enh/deletion-timer
gnrc_sixlowpan_frag_rb: allow for deletion timer after completion
2019-11-12 17:54:15 +01:00
Martine S. Lenders
11669d9bdc gnrc_sixlowpan_frag_rb: add missing \n at end of DEBUG line 2019-11-12 17:06:52 +01:00
Martine S. Lenders
40138fdce8 gnrc_sixlowpan_frag_rb: allow for deletion timer after completion
This allows to set a timer between the completion of a datagram in the
reassembly buffer and the deletion of the corresponding reassembly
buffer entry. This allows to ignore potentially late incoming link-layer
duplicates of fragments of the datagram that then will have the
reassembly buffer entry be blocked.

This was noted in this [discussion] for classic 6LoWPAN reassembly (and
minimal fragment forwarding) and is recommended in the current
[selective fragment recovery draft][SFR draft].

[discussion]: https://mailarchive.ietf.org/arch/msg/6lo/Ez0tzZDqawVn6AFhYzAFWUOtJns
[SFR draft]: https://tools.ietf.org/html/draft-ietf-6lo-fragment-recovery-07#section-6
2019-11-12 17:06:52 +01:00
Martine Lenders
918a4ac04d
Merge pull request #12682 from miri64/gnrc_sock/fix/consider-all-snips-for-error
gnrc_sock: consider all pktsnip for gnrc_neterr reporting
2019-11-12 11:45:50 +01:00
Martine Lenders
8992dce4da gnrc_sock: consider all pktsnip for gnrc_neterr reporting
As analyzed in #12678 there are cases where different reports can be
generated for the different snips of the packet send via the `sock`.

To catch all errors generated by the stack, the sock has to subscribe
for all snips of the packet sent. If any of the snips reports an error
distinct from `GNRC_NETERR_SUCCESS` or the previous one, we report that
status instead of just the first we receive. This way we are ensured to
have the first error reported by the stack for the given packet.
2019-11-11 16:40:32 +01:00
Marian Buschsieweke
bd8c4b36aa
sys/net/gnrc: Flag cc110x as 6LN
In gnrc_netif_init_6ln() the flag GNRC_NETIF_FLAGS_6LN is accidentally not set
for cc110x devices. This commit fixes this.
2019-11-11 09:24:01 +01:00
Martine Lenders
f092c27356 gnrc_ipv6: add missing new-line to debug message 2019-11-10 13:50:56 +01:00
José Alamos
20ea18637f
Merge pull request #10485 from miri64/gnrc_netif/enh/default-init
gnrc_netif: assume `netif->ops->init()` to be set to at least a default
2019-11-07 11:41:05 +01:00
Martine Lenders
6493a9e69f gnrc_netif: assume netif->ops->init() to be set 2019-11-07 11:00:36 +01:00
Martine Lenders
14a2f6bc18 gnrc: use gnrc_netif_default_init() for all implementations 2019-11-07 11:00:36 +01:00
Martine Lenders
09b5db28f1 gnrc_netif: expose common init function as default 2019-11-06 18:45:16 +01:00
Martine Lenders
4b82a56c89 gnrc_netif: introduce common init function 2019-11-06 18:45:15 +01:00
Martine Lenders
ca37cde142 gnrc_sixlowpan_frag_fb: introduce function to get entry by tag 2019-11-04 20:04:39 +01:00
Martine Lenders
8c3dc66ad8 gnrc_sixlowpan_frag: factor-out and rename fragmentation buffer
The name `fragment_msg` or `frag_msg`/`msg_frag` always to me was a bit
misplaced, as it basically implements an asynchronous fragmentation
buffer and doesn't necessarily have anything to do with messages.
This change

1. changes the name to `fb` (for fragmentation buffer)
2. factors its code out to its own sub-module so it can be re-used by
   other 6LoWPAN fragmentation schemes like [Selective Fragment
   Recovery]

[Selective Fragment Recovery]: https://tools.ietf.org/html/draft-ietf-6lo-fragment-recovery-05
2019-11-04 20:04:37 +01:00
Martine Lenders
79c8fc5405
Merge pull request #12599 from miri64/gnrc_sixlowpan_frag/enh/remove-code-dup
gnrc_sixlowpan_frag: various optimizations and clean-ups on sending
2019-11-04 19:54:33 +01:00
Martine Lenders
2a1e002d6d
Merge pull request #12627 from miri64/gnrc_sixlowpan_iphc_nhc/enh/frag+iphc-payload_len
gnrc_sixlowpan_iphc_nhc: determine UDP hdr length from RB
2019-11-01 19:47:08 +01:00
Martine S. Lenders
f33111a9c2 gnrc_sixlowpan_iphc: remove duplicate gnrc_netif_hdr_get_netif()
The interface is already fetched in the beginning of the function and
doesn't change during its run, so getting the interface again at this
point is just redundant.
2019-11-01 18:29:44 +01:00
Martine S. Lenders
806f33fce4 gnrc_sixlowpan_iphc_nhc: determine UDP hdr length from RB
When decoding IPHC in a fragmented datagram, relying on the size of the
allocated space for the decoded packet is wrong when fragments are
forwarded and decoded on an intermediate node (for which the reassembly
buffer's space is used): Using the full datagram size for allocation in
this case would be wasteful, so the allocated space is only marginally
larger than the fragment's compressed form.
This in turn results in the wrong UDP payload size being chosen and
even worse being forwarded to the subsequent nodes.

This change uses the (virtual) reassembly buffer's `datagram_size`
instead of relying on the allocated space for the encoded
datagram/fragment.
2019-11-01 13:18:00 +01:00
Martine S. Lenders
b713413c52 gnrc_sock: provide asynchronous event implementation 2019-11-01 00:21:04 +01:00
Martine Lenders
5d11cf26f0 gnrc_netif: use 6LoENC only when 6Lo flag is set 2019-10-30 17:10:34 +01:00
Martine Lenders
e04a190511 gnrc_netif_ethernet: make 6LO configurable for 6LoEnc 2019-10-30 17:10:34 +01:00
Martine S. Lenders
dba2f9e5ea gnrc_sixlowpan_frag: remove code duplication on fragment creation 2019-10-29 15:34:24 +01:00
Martine S. Lenders
d5e21f35c3 gnrc_sixlowpan_frag: copy netif header directly 2019-10-29 15:34:24 +01:00
Martine Lenders
05d338169d
Merge pull request #12367 from brummer-simon/gnrc_tcp-fix_recv_conn_closed
gnrc_tcp: return immediatly on gnrc_tcp_recv if a connection is closing
2019-10-29 09:54:43 +01:00
Francisco
0364c39694
Merge pull request #12408 from miri64/gnrc_netif/fix/src-addr-selection
gnrc_netif: only use prefix matching as tie-breaker in source selection
2019-10-24 17:14:17 +02:00
Martine S. Lenders
e9d75f5655 gnrc_netif: remove filter parameter from _match_to_idx()
`_match_to_idx()` was removed from source address selection (which was
the only one setting the filter parameter to a non-NULL value), so it
is the parameter is not needed anymore.
2019-10-24 16:04:41 +02:00
Martine S. Lenders
e787f6b60d gnrc_netif: only use prefix matching as tie-breaker in source selection
When source address selection is done, both RFC and comments in the code
state, that a longest prefix match should *only* be used as a
tie-breaker between more than one viable candidate. If there is only one
address, there is

a) no need for a tie-breaker
b) in the case of either the destination address or the single remaining
   address being ULAs ([which are considered to be of global scope]
   [RFC4193]) possibly not matching, as `fd00::/7` and e.g. `2001::/8`
   do not have a common prefix.

(b) in fact causes the match function to return -1, causing the source
address selection to return -1, causing the outer function to return the
first address it found (which most often is the link-local address),
causing e.g. a ping to an ULA to fail, even is there is a global
address.

[RFC4193]: https://tools.ietf.org/html/rfc4193
2019-10-24 16:04:41 +02:00
Cenk Gündoğan
e0ab8776f3
Merge pull request #12547 from miri64/gnrc_netif/enh/warn-no-ARSM
gnrc_netif: warn when not joining solicited-nodes from non-6LN netif
2019-10-24 13:46:38 +02:00
Martine Lenders
796d6a3167 gnrc_sixlowpan: move garbage collect msg type to reassembly buffer 2019-10-24 12:41:29 +02:00
Martine Lenders
41708d9f03 gnrc_pktbuf_static: unify NULL pointer output for stats
Different platforms evaluate `printf()` for NULL pointers differently,
resulting tests checking for a certain output to fail. This unifies that
(debug) output for the static packet buffer statistics.
2019-10-23 14:56:29 +02:00
Martine Lenders
88090bc0f6 gnrc_netif: warn when not joining solicited-nodes from non-6LN netif
Similar as with #12513, when the NIB is compiled in 6LN mode (but not
6LR mode), the address-resolution state-machine (ARSM) functionality is
disabled in favor of the more simpler address resolution proposed in RFC
6775.

However, if a non-6LN interface is also compiled in (without making it
a router or border router) it will never join the solicited-nodes
multicast address of addresses added to it, resulting in address
resolution to that interface to fail.

If the interface is not a 6LN (which in case 6LN mode is disabled is
always false), a warning is now printed, encouraging the user to
activate the ARSM functionality if needed.
2019-10-22 22:14:03 +02:00
Simon Brummer
1eb2969986 gnrc_tcp_recv: immediatly return on closed connection 2019-10-22 20:12:38 +02:00
Martine S. Lenders
2458a612b6 gnrc_netif: reduce code duplication 2019-10-21 16:09:37 +02:00
Martine S. Lenders
e96faca739 gnrc_netif: add code comments on source candidate set selection 2019-10-21 16:09:37 +02:00
f8de22a985 gnrc/netif: _match_to_idx(): don't treat link local differently
Cherry-picked from 811c1ee70e (#12404)
2019-10-21 16:09:37 +02:00
Martine Lenders
1bdfbeaaa0
Merge pull request #12425 from miri64/gnrc_ipv6_nib/enh/mutex
gnrc_ipv6_nib: use recursive mutex instead of mutex for locking
2019-10-21 16:08:07 +02:00
Martine Lenders
05bcdba02e
Merge pull request #10499 from miri64/gnrc_netif/enh/split-6lo-6ln
gnrc_netif: introduce distinction if an interface supports 6Lo or if it performs ND according to RFC 6775
2019-10-21 11:47:30 +02:00
Martine Lenders
8b2f697f8c
Merge pull request #12512 from miri64/gnrc_ipv6/fix/i11980
gnrc_ipv6: fix SEGFAULT when multicasting with multiple interfaces
2019-10-21 09:44:44 +02:00
Martine Lenders
7cba2fb63d gnrc_ipv6_nib: don't auto-configure IPv6 w/o SLAAC on non-6LN interface
When the NIB is compiled for 6LN mode (but not a 6LBR), the Stateless
Address Autoconfiguration (SLAAC) functionality is disabled, as it is
typically not required; see `sys/include/net/gnrc/ipv6/nib/conf.h`, ll.
46 and 55. However, if a non-6LN interface is also compiled in (still
without making the node a border router) an auto-configured address will
be assigned in accordance with [RFC 6775] to the interface, just
assuming the interface is a 6LN interface. As it then only performs
duplicate address detection RFC-6775-style then, the address then never
becomes valid, as the duplicate address detection according to [RFC
4862] (part of the SLAAC functionality) is never performed.

As auto-configuring an address without SLAAC doesn't make sense, this
fix makes the interface skip it completely, but provides a warning to
the user, so they know what to do.

[RFC 6775]: https://tools.ietf.org/html/rfc6775#section-5.2
[RFC 4862]: https://tools.ietf.org/html/rfc4862#section-5.4
2019-10-21 00:17:12 +02:00
Martine Lenders
6ad62b01a4 gnrc_netif: distinct is_6lo() and is_6ln()
The functions now are semantic distinct:

- gnrc_netif_is_6lo(): the interface is a 6Lo interface
- gnrc_netif_is_6ln(): the interface is using Neighbor Discovery
  according to RFC 6775
2019-10-20 15:38:14 +02:00
Martine Lenders
363afa62ee gnrc_netif: introduce 6LN flag
This makes it dynamically configurable if an interface actually want's
to use 6Lo ND (according to RFC 6775) or not.
2019-10-20 15:38:13 +02:00
Martine Lenders
fb0e9559a1 gnrc_ipv6: use is_6lo() instead of is_6ln()
We want to check if the interface is an interface requiring the 6Lo
adaptation layer, not if it is a 6LN according to RFC 6775 [[1]].

[1]: https://tools.ietf.org/html/rfc6775#section-2
2019-10-20 15:38:13 +02:00
Martine Lenders
8bcce5615e gnrc_netif: use is_6lo() instead of is_6ln() 2019-10-20 15:38:13 +02:00
Martine Lenders
ce14ee1f77 gnrc_ipv6: fix SEGFAULT when multicasting with multiple interfaces
When writing to the IPv6 header the implementation currently doesn't
take the packet with the (potentially) duplicated header, but the
packet with the original one, which leads to the packet sent and then
released in `gnrc_netif_ethernet.c` first and then accessed again in
further iterations of the "writing to the IPv6 header" loop, which
causes access to an invalid pointer, causing a crash.

Fixes #11980
2019-10-20 14:25:40 +02:00
Martine Lenders
f228dedcf4 gnrc_sixlowpan_frag_rb: fix comment typo 2019-10-19 16:30:45 +02:00
Martine S. Lenders
5bf9892bb3 gnrc_sixlowpan_frag_rb: add new functions for SFR 2019-10-19 16:30:45 +02:00
Martine Lenders
78f04c9fd1
Merge pull request #12441 from miri64/gnrc_icmpv6_error/fix/not-send
gnrc_icmpv6_error: consider originator's destination address correctly
2019-10-19 15:18:50 +02:00
Martine Lenders
c32f1076f6 gnrc_icmpv6_error: consider originator's destination address correctly
While 485dbd1fda (from #12175) was right
in assuming that the for most ICMPv6 error messages the originating
packet's destination address must not be a multicast, this is not the
case for _all_ ICMPv6 error messages (see [RFC 4443], section 2.4(e.3)).
Additionally, 485dbd1fda removed the
check for the source address ([RFC 4443], section 2.4(e.6)), which this
PR re-adds.

[RFC 4443]: https://tools.ietf.org/html/rfc4443#section-2.4
2019-10-19 14:39:45 +02:00
Martine S. Lenders
184e91780a gnrc_sixlowpan_frag_rb: explain second _rbuf_add() call more detailed 2019-10-18 11:14:13 +02:00
Martine S. Lenders
f8d75d7add gnrc_sixlowpan_frag_rb: behavioral change to add()
Rather than dispatching the packet automatically once it is complete,
`gnrc_sixlowpan_frag_rb_add()` now only returns success, and leaves it
to the caller to dispatch the packet.
2019-10-18 09:02:32 +02:00
Martine S. Lenders
a229755abe gnrc_sixlowpan_frag_rb: return status on dispatch_when_complete() 2019-10-18 09:02:32 +02:00
Martine S. Lenders
b086453347 gnrc_sixlowpan_frag_rb: return pointer to entry on add() 2019-10-18 09:02:32 +02:00
Martine S. Lenders
3a4ebe98c3 gnrc_sixlowpan_frag_rb: get index instead of pointer with _rbuf_get() 2019-10-18 09:02:31 +02:00
Cenk Gündoğan
eb981fe8dd
Merge pull request #12444 from miri64/gnrc_sixlowpan_frag_rb/enh/factor-frag-out
gnrc_sixlowpan_frag_rb: seperate out classic frag specific code
2019-10-15 17:41:29 +02:00
Martine Lenders
2a74d32ea9 gnrc_sixlowpan_frag_rb: seperate out classic frag specific code 2019-10-15 10:40:50 +02:00
Martine Lenders
b5b52c74e8 gnrc_ipv6: only discard invalid source when assigned to interface
While it is correct to not use an invalid address as a source address,
it is incorrect to assume that addresses not assigned to the interface
(`idx == -1` in the respective piece of code) are invalid: Other than
classic forwarding via a FIB, forwarded packets utilizing a IPv6
routing header will pass this check, like any other packet sent by this
node. The source address for these is not on the given node, so e.g.
source routing is not possible at the moment.
2019-10-14 15:43:07 +02:00
Martine Lenders
a279228663 gnrc_rpl_srh: don't send error message on multicast error
A node is not supposed to send an ICMPv6 error message when the
destination or one of the addresses in the source route is multicast
but is supposed to be silently discarded (see [RFC4443] and [RFC6554]).
If we leave the `err_ptr` unset, the [node will not send an error
message][err_ptr set].

[RFC 4443]: https://tools.ietf.org/html/rfc4443#section-2.4
[RFC 6554]: https://tools.ietf.org/html/rfc6554#section-4.2
[err_ptr set]: https://github.com/RIOT-OS/RIOT/blob/9bc600a/sys/net/gnrc/network_layer/ipv6/ext/rh/gnrc_ipv6_ext_rh.c#L100-L105
2019-10-14 11:25:53 +02:00
Martine Lenders
c94de51e03
Merge pull request #12414 from miri64/gnrc_ipv6_ext_frag/fix/n-th-with-full-rbuf
gnrc_ipv6_ext_frag: fix release on rbuf creation for n-th fragment
2019-10-13 15:10:50 +02:00
Martine S. Lenders
e98f3e48f4 gnrc_ipv6_nib: use rmutex instead of mutex for locking 2019-10-11 12:24:37 +02:00
Martine S. Lenders
01351206d5 gnrc_ipv6_nib: make mutex private 2019-10-11 12:18:52 +02:00
Martine S. Lenders
a14e834ad8 gnrc_ipv6_nib: use mutex wrapper function instead of mutex functions 2019-10-11 12:17:05 +02:00
Martine S. Lenders
1ce19e26b4 gnrc_ipv6_nib: wrap mutex lock/unlock in function 2019-10-11 12:13:32 +02:00
Jose Alamos
8fd0c2b60f gnrc_netif: adapt to new netif_t abstraction 2019-10-11 10:59:14 +02:00
Martine S. Lenders
095e966b73 gnrc_ipv6_ext_frag: fix release on rbuf creation for n-th fragment
The IPv6 (extension) headers of the first fragment received are re-used
for the reassembled packet, so when receiving a subsequent packet we
need to distinguish, if we just want to release the payload or all of
the packet after the packet data was added to the reassembly buffer.
2019-10-10 16:41:51 +02:00
Martine S. Lenders
ada7c0b7db gnrc_netif: avoid deprecated addresses, don't prefer them! 2019-10-09 15:18:14 +02:00
Martine S. Lenders
f6686e92f1 gnrc_sixlowpan_frag_vrb: add gnrc_sixlowpan_frag_vrb_from_route()
This adds a new VRB function that receives a header with forwarding
information and creates a VRB entry from it. Currently, only IPv6 is
supported.
2019-10-07 18:16:47 +02:00
Martine S. Lenders
c6781af281 gnrc_sixlowpan_frag_vrb: rename addr_str variable 2019-10-07 17:52:09 +02:00
Martine Lenders
9ab67a6d89
Merge pull request #12379 from brummer-simon/gnrc_tcp-no_reopen_recv_window_on_closed_conn
gnrc_tcp: do not reopen recv window on closed connection
2019-10-06 17:32:49 +02:00
Simon Brummer
4fbc0252e1 gnrc_tcp: do not reopen recv window on closed connection 2019-10-06 12:13:37 +02:00
Martine Lenders
b99ec92e6a
Merge pull request #12368 from miri64/gnrc_tcp/fix/check-option-length
gnrc_tcp: check if option has valid length set
2019-10-05 15:11:38 +02:00
Martine Lenders
66e5f7230f gnrc_tcp: check if option has valid length set 2019-10-03 18:30:40 +02:00
Simon Brummer
07210ee571 gnrc_tcp: fix debug message 2019-10-03 15:54:36 +02:00
Martine Lenders
04f59d6609 gnrc_sixlowpan_frag_vrb: re-use now unused super::dst for out_dst 2019-09-30 12:46:15 +02:00
Martine Lenders
45f7966364 gnrc_sixlowpan_frag_vrb: fix for draft update
Due to some changes to the minimal forwarding draft and in preparation
for Selective Fragment Recovery some changes to the VRB API were
needed. Now the index of a VRB entry is only (L2 src, tag) not as
before (L2 src, L2 dst, length, tag).

I know that the current `rbuf_base` causes waste, as all the fields not
used by the new index are effectively not used by the VRB. I'd like to
fix that however in a later change, since that also requires some
modifications of the classic reassembly buffer, and thus would
complicate the review and testing of the change.

Sources for the index change:
- https://tools.ietf.org/html/draft-ietf-6lo-minimal-fragment-04#section-1
- https://mailarchive.ietf.org/arch/browse/6lo/?gbt=1&index=DLCTxC2X4bRNtYPHhtEkavMWlz4
2019-09-29 18:31:43 +02:00
Martine Lenders
e9ff46b2ea gnrc_sixlowpan_frag_rb: unify naming scheme 2019-09-28 12:11:54 +02:00
Martine Lenders
178f4af108 gnrc_sixlowpan_frag_rb: remove legacy defines 2019-09-28 12:07:24 +02:00
Martine Lenders
972e4938bc gnrc_sixlowpan_frag_rb: use existing name scheme for private functions 2019-09-28 11:51:18 +02:00
Martine S. Lenders
49bd8678ed gnrc_sixlowpan_frag_rb: remove public around former private functions 2019-09-28 11:51:18 +02:00
Martine S. Lenders
ec495528fe gnrc_sixlowpan_frag: move private RB functions to RB module 2019-09-28 11:51:18 +02:00
Martine S. Lenders
b5545fe334 gnrc_sixlowpan: include reassembly buffer only where needed 2019-09-27 21:11:36 +02:00
Martine S. Lenders
1f7770da5c gnrc_sixlowpan_frag: move public rbuf functions to their own module 2019-09-27 19:09:52 +02:00
Martine Lenders
062bc732ea
Merge pull request #11299 from llueder/ndp_cpp_compliant
net/ndp: make addr array ptr c++ compliant
2019-09-26 22:34:45 +02:00
Lasse Lueder
8a86ea4a4b use ndp_opt_rdnss_impl_t to access addresses 2019-09-26 22:08:49 +02:00
Simon Brummer
fdda22c200 gnrc_tcp: allow unknown options 2019-09-24 20:01:40 +02:00
Martine Lenders
3a4d1f9bb1
Merge pull request #12281 from aabadie/pr/ci/coccinelle_fix_remaining
tools/ci: fix remaining errors reported by coccinelle static check
2019-09-20 14:22:09 +02:00
Martine Lenders
440b2614b5
Merge pull request #12274 from miri64/gnrc_ipv6/fix/scan-build
gnrc_ipv6: fix scan-build errors
2019-09-20 09:35:40 +02:00
caf48cfb2d
sys/net/lwmac: remove not needed pkt pointer check 2019-09-20 09:01:08 +02:00
Martine S. Lenders
66fa240e9a gnrc_ipv6: fix scan-build errors 2019-09-20 08:59:55 +02:00
benpicco
7a818f0433
Merge pull request #12249 from nmeum/pr/gnrc_tcp_option_length_access
gnrc_tcp: check if option length field is present before accessing it
2019-09-17 23:22:53 +02:00
Martine Lenders
51ef1c997d gnrc_ipv6: use fragmentation if available 2019-09-17 18:55:18 +02:00
Martine Lenders
c2c3216c16 gnrc_ipv6_ext_frag: Initial import of IPv6 fragmentation 2019-09-17 18:55:18 +02:00
Sören Tempel
e5503d62bf gnrc_tcp: check if option length field is present before accessing it
TCP options have up to three fields (kind, length, value). The
current code only checks for the presence of the first field. Before
accessing the second field (length) the code must ensure that a length
field is even present.
2019-09-16 21:13:51 +02:00
benpicco
018c15ae0c
Merge pull request #12253 from nmeum/pr/gnrc_tcp_option_length_check
gnrc_tcp: Always ensure that option->length doesn't exceed opt_left
2019-09-16 21:02:52 +02:00
Martine Lenders
4905a1ad49 gnrc_ipv6_ext: use fragment reassembly if available 2019-09-16 19:13:18 +02:00
Martine Lenders
f4b8ba32f3 gnrc_ipv6_ext_frag: Initial import of IPv6 reassembly 2019-09-16 19:13:18 +02:00
Sören Tempel
463c1212c2 gnrc_tcp: Always ensure that option->length doesn't exceed opt_left 2019-09-16 17:52:25 +02:00
Martine S. Lenders
1ca05f0c08 gnrc_netif_ethernet: fix debug output for received packet
A received packet is outputted in DEBUG _after_ it was already parsed,
but with a reference to the already parsed header. The result is that
there can be some garbage in the output and the packet is not dumped in
total. As without parsing we do not have access to the header yet, we
use the `gnrc_netif_addr_to_str()` helper function instead of parsing
the destination address by hand.
2019-09-16 14:01:16 +02:00
Martine Lenders
1dcf88efb2
Merge pull request #12245 from nmeum/pr/gnrc_tcp_unknown_option
gnrc_tcp: abort on unknown option
2019-09-16 13:01:01 +02:00
Martine Lenders
56e6887a95
Merge pull request #12079 from nmeum/pr/gnrc_tcp_gnrc_pktbuf_add
gnrc_tcp: Fix invocation of gnrc_pktbuf_add
2019-09-16 12:41:57 +02:00
Sören Tempel
9764697a3b gnrc_tcp: abort on unknown option 2019-09-16 12:18:24 +02:00
Martine Lenders
8911c514fd
Merge pull request #10951 from miri64/gnrc_ipv6_nib/enh/abr-helpers
shell/sc_gnrc_ipv6_nib: extend for ABR
2019-09-12 07:34:09 +02:00
Martine Lenders
b77e08652e gnrc_ipv6_nib: provide ABR iteration and print function 2019-09-11 23:51:20 +02:00
Kevin "Tristate Tom" Weiss
d6af98b5b7
Merge pull request #11835 from miri64/gnrc_sixlowpan_frag/new/stats
gnrc_sixlowpan_frag_stats: initial import of frag statistics
2019-09-11 12:01:22 +02:00
Martine Lenders
dca3408167 gnrc_sixlowpan_frag_stats: initial import of frag statistics 2019-09-11 10:30:29 +02:00
Marian Buschsieweke
b87ab96d17
Merge pull request #10661 from miri64/gnrc_netif_hdr/enh/netif_setter
gnrc_netif_hdr: add setter for netif
2019-09-10 16:14:28 +02:00
Martine S. Lenders
cee1b7296d gnrc_icmpv6_echo: use gnrc_netif_hdr_set_netif() also for loopback 2019-09-10 12:37:32 +02:00
steffen
485dbd1fda [gnrc_icmpv6_error] Fixed multicast detection
before this commit the src address was checked for multicast, but the dst address should be checked. Therefore udp multicast packets would be flooded back to the src as ICMPv6 error, as not all nodes had a UDP receiver registered.
2019-09-05 19:22:43 +02:00
Simon Brummer
351220e884 gnrc_tcp - Release pakets on failed gnrc_netapi_send() 2019-08-31 11:16:55 +02:00
benpicco
837f99e757
Merge pull request #12084 from nmeum/pr/gnrc_tcp_minlen
gnrc_tcp: add minimum length check to _receive
2019-08-30 17:37:20 +02:00
benpicco
7d3f20b1a8
Merge pull request #12088 from nmeum/pr/gnrc_tcp_option_overflow
gnrc_tcp: fix integer underflow in option parser
2019-08-30 17:34:39 +02:00
Martine Lenders
3671f69a43
gnrc_rpl: use gnrc_netif_hdr_set_netif() 2019-08-29 14:51:46 +02:00
Martine Lenders
685f7f6b38
gnrc_lwmac: use gnrc_netif_hdr_set_netif() 2019-08-29 14:51:46 +02:00
Martine Lenders
3c105d8b33
gnrc_gomach: use gnrc_netif_hdr_set_netif() 2019-08-29 14:51:45 +02:00
Hauke Petersen
504acc5097 net/l2util: add nimble opt for addr resolution 2019-08-28 16:48:03 +02:00
Sören Tempel
7f3415e91d gnrc_tcp: Fix invocation of gnrc_pktbuf_add
The size parameter should specify the length of the given data.
2019-08-27 10:19:40 +02:00
Sören Tempel
c9358b9217 gnrc_tcp: fix integer underflow in option parser 2019-08-27 10:18:15 +02:00
Sören Tempel
0fff1b35ec gnrc_tcp: add minimum length check to _receive 2019-08-26 16:45:46 +02:00
benpicco
20dec77e39
Merge pull request #11999 from nmeum/pr/gnrc_tcp_mark_update
net/gnrc/tcp: fix invalid read
2019-08-20 15:37:17 +02:00
benpicco
f483988ae9
Merge pull request #12001 from nmeum/pr/gnrc_tcp_memory_leak
gnrc_tcp: Fix memory leak, potential DOS
2019-08-19 14:42:13 +02:00
Sebastian Meiling
226ace7bb6
Merge pull request #9852 from bergzand/pr/rpl/fix_debug_hdrs
gnrc_rpl: remove DEBUG from header files
2019-08-16 11:27:48 +02:00
b33ee93d22
gnrc_rpl: remove DEBUG from header files
This conflicts with the DEBUG setting in C files that include these
headers making it impossible to enable the DEBUG setting in these C
files.
2019-08-16 10:11:41 +02:00
Sören Tempel
c6df2064af gnrc_tcp: Fix memory leak 2019-08-12 23:14:15 +02:00
Sören Tempel
9e91d21625 net/gnrc/tcp: fix uninitialized memory access
From the gnrc_pktbuf_mark documentation:

	    It's not guaranteed that `result->data` points to the
	    same address as the original `pkt->data.

Thus it should be necessary to update the `hdr` pointer.
2019-08-12 22:04:35 +02:00
Francisco
fde50372c3
Merge pull request #11837 from miri64/gnrc_netif/enh/inter-tx-wait
gnrc_netif: allow for wait of minimum time between sends
2019-08-09 10:53:26 +02:00
Martine Lenders
488c47cbf3 gnrc_netif: allow for wait of minimum time between sends 2019-08-09 10:21:42 +02:00
Kevin "Bear Puncher" Weiss
10a2794c8e
Merge pull request #11970 from miri64/gnrc_ipv6/fix/check-source-for-send
gnrc_ipv6: check validity of preconfigured source on send
2019-08-08 13:39:47 +02:00
Martine S. Lenders
7f2cc4f0b3 gnrc_ipv6: check validity of preconfigured source on send
If an address was pre-configured by the upper layer its validity is
currently ignored. It is neither checked if the address is on the
interface at all nor is it checked if it is valid.

This change provides a fix for that by checking both facts.
2019-08-08 13:16:28 +02:00
Hauke Petersen
02df6ab13f
Merge pull request #11000 from miri64/gnrc_sixlowpan_frag/new/vrb
gnrc_sixlowpan_frag: initial import of the VRB
2019-08-07 17:33:01 +02:00
Martine Lenders
1f1ff16e3c gnrc_sixlowpan_frag: include VRB in normal GC 2019-08-07 16:19:36 +02:00
Martine Lenders
26a526eaee gnrc_sixlowpan_frag: initial import of the VRB
VRB = virtual reassembly buffer
2019-08-07 16:18:19 +02:00
Benjamin Valentin
e8dc1119b8 sys: make use of ARRAY_SIZE macro 2019-08-06 19:43:54 +02:00
e352b54a9b
net/gnrc/tcp: remove duplicate net_gnrc_tcp group definitions 2019-08-05 16:57:37 +02:00
f922df8c99
net/gnrc/sock: remove duplicate net_gnrc_sock group definition 2019-08-05 16:57:37 +02:00
Marian Buschsieweke
d4d5f27b72
Merge pull request #11916 from miri64/gnrc_icmpv6_echo/enh/use-netif_hdr-setter
gnrc_icmpv6_echo: use gnrc_netif_hdr_set_netif()
2019-07-30 19:48:43 +02:00
Martine Lenders
44410a4aeb
Merge pull request #11918 from miri64/gnrc_ipv6/enh/use-netif_hdr-setter
gnrc_ipv6: use gnrc_netif_hdr_get/set_netif()
2019-07-26 12:00:39 +02:00
Martine S. Lenders
e865f4e34c gnrc_icmpv6_error: use gnrc_netif_hdr_get/set_netif() 2019-07-25 15:52:14 +02:00
Martine S. Lenders
4231b7cd38 gnrc_ndp: use gnrc_netif_hdr_set_netif() 2019-07-25 15:48:14 +02:00
Martine S. Lenders
2afa6795ef gnrc_ipv6: use gnrc_netif_hdr_get_netif() 2019-07-25 15:48:14 +02:00
Martine S. Lenders
7b43a8f9d5 gnrc_ipv6: use gnrc_netif_hdr_set_netif() 2019-07-25 15:45:44 +02:00
Martine S. Lenders
47fdebc938 gnrc_icmpv6_echo: use gnrc_netif_hdr_set_netif() 2019-07-25 15:20:26 +02:00
Martine S. Lenders
4a38dabc70 gnrc_netif_ieee802154: use gnrc_netif_hdr_set_netif() 2019-07-25 14:56:47 +02:00
Martine S. Lenders
006f10c2af gnrc_netif_ethernet: use gnrc_netif_hdr_set_netif() 2019-07-25 14:15:37 +02:00
Martine Lenders
60c26648fe
Merge pull request #11766 from nmeum/pr/gnrc_tftp_min_len
gnrc_tftp: Add minimum packet length check
2019-07-16 14:39:48 +02:00
de244e6679 gnrc/pktbuf: remove obsolete sys/uio.h include
This was previously used by gnrc_pktbuf_get_iovec() for the definitions
of "struct iovec", which has been removed a while ago.
2019-07-04 16:12:57 +02:00
Kevin "Bear Puncher" Weiss
6176878153
Merge pull request #11786 from miri64/gnrc_tftp/fix/set-dst-port-on-server-init
gnrc_tftp: set port on server init
2019-07-04 08:49:31 +02:00
Martine Lenders
16f0751102
Merge pull request #11745 from miri64/gnrc_ipv6/fix/rm-dangerous-dup
gnrc_ipv6: remove obsolete and harmful reception code
2019-07-03 23:50:06 +02:00
Martine S. Lenders
1c946a1af4 gnrc_tftp: set port on server init 2019-07-03 16:49:43 +02:00
Martine S. Lenders
b83430aa62 gnrc_pktbuf: remove gnrc_pktbuf_duplicate_upto
The removal of this function was already announced for the 2019.04
release. So it is safe to remove it.
2019-07-03 15:09:18 +02:00
Martine S. Lenders
ea449f3f9e gnrc_ipv6: remove obsolete and harmful reception code
When reworking the reception of IPv6 packets I reset a previously set
`ipv6` snip as follows  when the IPv6 extension handler returns a
packet (see first hunk of this commit):

```C
ipv6 = pkt->next->next
```

With `gnrc_ipv6_ext` this makes *somewhat* sense, `pkt->next` was
previously equal to `ipv6` and after the function call `pkt->next`
is the marked extension header, while `pkt->next->next` is the IPv6
header. However, since `ipv6` is already write-protected i.e.
`ipv6->users == 1` (see ll. 665-675), any additional call of
`gnrc_pktbuf_start_write()` [won't][start-write-doc] duplicate the
packet. In fact, the only `gnrc_pktbuf_start_write()` in
`gnrc_ipv6_ext` is used to send the *result* to the subscribers of that
extension header type, leaving the original packet unchanged for the
caller. As such `ipv6` remains the pointer to the IPv6 header whether
we set it in the line above or not. So we actually don't need that
line.

However, the extension header handling also returns a packet when
`gnrc_ipv6_ext` is not compiled in. In that case it is just a dummy
define that returns the packet you give provide it which means that
this still holds true: `pkt->next == ipv6`.
So setting `ipv6` in this case is actually harmful, as `ipv6` now
points to the NETIF header [following the IPv6 header][pkt-structure]
in the packet and this causes the `user` counter of that NETIF header
`hdr` to be decremented if `hdr->users > 1` in the write-protection I
removed in hunk 2 of this commit:

```C
/* pkt might not be writable yet, if header was given above */
ipv6 = gnrc_pktbuf_start_write(ipv6);
if (ipv6 == NULL) {
    DEBUG("ipv6: unable to get write access to packet: dropping it\n");
    gnrc_pktbuf_release(pkt);
    return;
}
```

But as we already established, `ipv6->users` is already 1, so we don't
actually need the write protection here either.

Since the packet stays unchanged after the `ipv6` snip, we also don't
need to re-search for `netif_hdr` after the other two lines are
removed.

[start-write-doc]: https://doc.riot-os.org/group__net__gnrc__pktbuf.html#ga640418467294ae3d408c109ab27bd617
[pkt-structure]: https://doc.riot-os.org/group__net__gnrc__pkt.html#ga278e783e56a5ee6f1bd7b81077ed82a7
2019-07-03 14:44:03 +02:00
Martine S. Lenders
7ba928faa3 gnrc_tftp: make it working again with link-local addresses 2019-07-03 14:04:26 +02:00
Martine Lenders
2fce0950bf gnrc_tftp: set dst_port when duplicated data received 2019-07-03 12:51:10 +02:00
Martine Lenders
3d9c7ee5de gnrc_tftp: set source port for server 2019-07-01 22:56:42 +02:00
Martine Lenders
5ec0b1609a gnrc_tftp: initialize unititialized 'tftp_context_t' values to 0 2019-07-01 22:55:31 +02:00
Sören Tempel
e8d0fb7685 gnrc_tftp: Add minimum packet length check
Fixes #10927
2019-07-01 13:49:25 +02:00
Sören Tempel
a26942632a gnrc_tftp: Fix out-of-bounds memory access when comparing modes 2019-06-27 10:21:42 +02:00
Martine Lenders
3ee75c3ca9 gnrc_sixlowpan_iphc: assure ctx != NULL for dst compression
For the source address compression it was already done the same way in
12bcc46f15
2019-06-20 16:18:23 +02:00
Martine Lenders
3edb52de0c gnrc_rpl_dodag: remove new_best assignment at initialization
The variable is without usage reassigned with `dodag->parent` below.
2019-06-20 16:18:23 +02:00
Martine Lenders
fa95cc8090 gnrc_ipv6_nib: assure netif != NULL in route info callback 2019-06-20 16:18:23 +02:00
Martine Sophie Lenders
a09072c93d gnrc_ipv6_nib: add address from netif to address validation timer
The `addr` parameter of the NIB's `_handle_dad()` function can come
from anywhere (e.g. in the fallback to classic SLAAC the destination
address of the IP header is used), so putting that pointer in a timer
is not a good idea. Instead we use the version of the address that is
stored within the interface.
2019-06-18 12:05:07 +02:00
Martine Sophie Lenders
f5f8261b1c gnrc_ipv6_nib: add debug messages for DAD + 6Lo 2019-06-18 11:48:04 +02:00
Martine Sophie Lenders
484526533d gnrc_ipv6_nib/SLAAC: add debug message for address validation 2019-06-18 11:47:47 +02:00
Martine Lenders
731ef19970 gnrc_ipv6_ext: fix packet snip type
The `pkt->type` of an extension header should be
`GNRC_NETTYPE_IPV6_EXT` so it can be parsed properly as an extension
after building.
2019-06-04 10:47:02 +02:00
Cenk Gündoğan
e34a133428
Merge pull request #11560 from benpicco/rpl/of-api-update
RPL: API update suggestions
2019-05-29 15:44:39 +02:00
42c1da8171 gnrc_rpl: update OF API
- dodag->parents already points to the preferred parent, so give dodag to calc_rank directly
 - remove unused which_parent function
2019-05-29 15:11:18 +02:00
Cenk Gündoğan
3f4259af07
Merge pull request #11061 from miri64/gnrc_sixlowpan_frag/new/hint
gnrc_sixlowpan_frag: Initial import of a fragment size hint feature
2019-05-28 23:09:15 +02:00
Martine Lenders
2534cfb3fa gnrc_sixlowpan_frag: Initial import of a fragment size hint feature
This allows for sending of fragments smaller than the restrictions set
by the link-layer PDU. E.g. to put some slack for IPHC into the first
fragment (see https://tools.ietf.org/html/draft-ietf-6lo-fragment-recovery-02#section-4.1).
2019-05-28 21:03:51 +02:00
Martine Lenders
a8c81debf8 gnrc_sixlowpan_frag: use rbuf base class whenever possible 2019-05-28 18:07:42 +02:00
Martine Lenders
5e7803d506 gnrc_sixlowpan_frag: add datagram size to base type 2019-05-28 18:07:42 +02:00
Martine Lenders
52e4247798 gnrc_sixlowpan_frag: introduce reassembly buffer base class 2019-05-28 18:07:42 +02:00
Martine Lenders
495eaa36a6 gnrc_sixlowpan_frag: remove unnecessary type indirection
The members of `rbuf_t` and `gnrc_sixlowpan_rbuf_t` are now identical
so we can remove the internal type.
2019-05-28 18:07:42 +02:00
Martine Lenders
8cc5d94956 gnrc_sixlowpan_frag: add arrival time to public type
The arrival time is also needed for the VRB's garbage collection.
2019-05-28 18:07:42 +02:00
Martine Lenders
b84e496563 gnrc_sixlowpan_frag: add intervals to public type
The fragment intervals are also required by the VRB, so make them part
of the public representation of a reassembly buffer.
2019-05-28 18:07:42 +02:00
Martine Lenders
a3061ab2cc gnrc_sixlowpan_frag: expose fragment interval type
For the [VRB] I also need to track which the intervals of the fragments
already received (mostly for finding out when I am able to get rid of a
VRB entry, see [this conversation][VRB entry removal]), so to be able to
incorporate it into the common type for both reassembly buffer and VRB I
need to expose that type first.

[VRB]: https://tools.ietf.org/html/draft-ietf-lwig-6lowpan-virtual-reassembly-00
[VRB entry removal]: https://mailarchive.ietf.org/arch/msg/6lo/bTm2REo4PpVcMFH04mF_SlPvS_M
2019-05-28 18:07:41 +02:00
Martine Lenders
8fe12bc82c
Merge pull request #11021 from miri64/gnrc_sixlowpan_frag/enh/multiple-send
gnrc_sixlowpan_frag: allow send of multiple datagrams simultaneously
2019-05-27 11:54:26 +02:00
Martine Lenders
93050d29c0 gnrc_sixlowpan_frag: unify common operations 2019-05-27 10:35:31 +02:00
Martine Lenders
04472d3fbe gnrc_sixlowpan_frag: reorder stack variables for better stack usage 2019-05-27 10:35:31 +02:00
Martine Lenders
b6f19c0bcb gnrc_sixlowpan_frag: allow send of multiple datagrams simultaneously 2019-05-27 10:35:31 +02:00
4d052a6921
Merge pull request #11580 from miri64/gnrc_ipv6_ext/fix/nh-after-change
gnrc_ipv6_ext: don't read from `pkt->data` after `_demux()`
2019-05-26 00:40:37 +02:00
Martine Lenders
ea1708b402 gnrc_ipv6_ext: don't read from pkt->data after _demux()
`_demux()` might change `pkt->data` in all kind of ways (moving it due
to `gnrc_pktbuf_mark()`, though unlikely; releasing it, because e.g. it
starts with a fragment header that marks a fragmented packet containing
only one fragment, etc.) so accessing the pointer *after* calling
`_demux()` is somewhat playing with fire. This change avoids this by
storing the value of `ext_hdr->nh` (all we are interested in here) in a
temporary variable that then is used to set the out-parameter `nh`.

`protnum` needs to be unchanged before the call to `_demux()` as it was
set by the previous iteration and determines what extension header
actually is handled.
2019-05-24 22:11:22 +02:00
Martine Lenders
7e26a22723 gnrc_sixlowpan_frag: fix timeout config macro name 2019-05-24 17:39:35 +02:00
Cenk Gündoğan
650ee83e90
Merge pull request #11442 from miri64/gnrc_sixlowpan_frag/enh/aggressive-config
gnrc_sixlowpan_frag: make aggresive override configurable
2019-05-24 17:25:20 +02:00
Martine Lenders
7833141af1 gnrc_mac: rename directory in line with other modules 2019-05-09 14:46:35 +02:00
Martine Lenders
1cac697a62 gnrc_sixlowpan_frag: make aggresive override configurable 2019-04-25 09:37:34 +02:00
Martine Lenders
9a6473104d
Merge pull request #10483 from miri64/gnrc_ipv6_nib/fix/no-auto-config-wo-l2addr
gnrc_ipv6_nib: don't autoconfig IPv6 address without L2 addr
2019-04-19 08:53:25 +02:00
Martine Lenders
5732e9bd88 gnrc_ipv6_nib: don't autoconfig IPv6 address without L2 addr
If the interface's link-layer doesn't use link-layer addresses it
obviously doesn't make sense to auto-configure an IPv6 address from it.
Moreover, I think the address `fe80::` is actual illegal, but I
couldn't find any references for it.
2019-04-19 08:36:15 +02:00
Martine Lenders
a55320a10a gnrc_sixlowpan_frag: expose tag progression functionality
The VRB also needs to be able to generate new tags for forwarding. This
exposes the tag generation.
2019-04-18 16:40:12 +02:00
Martine Lenders
43dedfcd2c gnrc_sixlowpan_frag/rbuf: document undocumented functions
This adds documentation for the following undocumented functions:

- rbuf_rm()
- rbuf_entry_empty()
2019-04-18 14:19:53 +02:00
Martine Lenders
1550390adb gnrc_sixlowpan_frag: expose reassembly buffer configuration
Both values are not standardized so there is no sense keeping these
values not configurable
2019-04-18 14:19:53 +02:00
Martine Lenders
3c19aa7dfc gnrc_netif_ieee802154: check if mhr_len is lesser than nread 2019-04-15 16:36:31 +02:00
Cenk Gündoğan
99fe24fcfd
Merge pull request #11298 from miri64/gnrc_netif/fix/falls-through-comment
gnrc_netif: fix fall-through comment
2019-03-28 08:10:37 +01:00
Peter Kietzmann
e9293d9192
Merge pull request #11257 from brummer-simon/gnrc_tcp-fix_packet_flood
gnrc_tcp: Fix packet-flood while probing
2019-03-28 00:37:33 +01:00
Martine Lenders
768a117ade gnrc_netif: fix fall-through comment
gcc 8.2.1 has problems with the comment being within the `#ifdef`
2019-03-27 19:45:40 +01:00
Cenk Gündoğan
44e4973cab
Merge pull request #11166 from miri64/gnrc_ipv6/fix/send-empty-payload
gnrc_ipv6: allow sending empty IPv6 packets
2019-03-27 19:17:01 +01:00
Martine Lenders
7931d66f79
Merge pull request #10895 from miri64/gnrc_rpl/enh/do-not-assert-netif
gnrc_rpl: do not assert netif on auto-init
2019-03-27 18:50:52 +01:00