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
Jose Alamos
77a7aed6e6
netif: introduce descriptor based netif
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
9d0faa9e5f
Merge pull request #11957 from miri64/emcute/fix/payload-copy-error
...
emcute: fix payload copy error for emcute_pub
2019-10-07 17:17:44 +02:00
Martine Lenders
999a7714b0
Merge pull request #12382 from nmeum/pr/asymcute_continue
...
emcute: never return from receive loop
2019-10-07 16:28:09 +02:00
Sören Tempel
74e19d451c
emcute: never return from receive loop
...
Without this change an attacker would be able to stop the emcute server
by sending a crafted packet triggering this branch. The solution is
using `continue` instead of `return`.
2019-10-07 15:12:20 +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
Francisco
7d7596ea6c
Merge pull request #11057 from kb2ma/coap/block_optimization
...
net/coap: Block optimizations
2019-10-04 09:41:05 +02:00
Ken Bannister
2dc4209c0e
net/nanocoap: optimize determination of exponent for block szx
2019-10-03 13:17:09 -04: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
Ken Bannister
e22d4729e1
net/nanocoap: initialize offset attribute
2019-10-02 05:51:59 -04:00
Ken Bannister
2abcbc0d20
net/coap: add generic get block function
2019-10-02 05:51:59 -04:00
Ken Bannister
5eaa51e426
net/nanocoap: remove unused function
2019-10-02 05:51:59 -04:00
Ken Bannister
efb75c5c4c
net/coap: improve slicer to block helper
2019-10-02 05:51:59 -04:00
Ken Bannister
dae9c4ab89
net/nanocoap: use coap_opt_add_uint() and remove unused
2019-10-02 05:51:59 -04:00
Ken Bannister
233dd31e17
net/nanocoap: add generic uint block option
2019-10-02 05:51:59 -04:00
Martine Lenders
aab312e8df
Merge pull request #11958 from miri64/emcute/fix/length-calculation
...
emcute: fix length field calculation
2019-10-01 09:29:58 +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
9e65405a68
Merge pull request #12309 from haukepetersen/fix_skald_develhelpbuild
...
ble/skald: remove broken assert in init()
2019-09-26 22:44:55 +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
Hauke Petersen
1871c0cb85
ble/skald: remove broken assert in init()
2019-09-26 22:07:23 +02:00
benpicco
e942f86837
Merge pull request #11056 from kb2ma/coap/pkt_api_block_write
...
net/gcoap: add/use Packet API Block implementation
2019-09-24 21:43:33 +02:00
Simon Brummer
fdda22c200
gnrc_tcp: allow unknown options
2019-09-24 20:01:40 +02:00
Sören Tempel
30e4823e94
asymcute: don't make the assumption that req->arg is non-NULL
...
This fixes a denial of service where an attacker would be able to cause
a NULL pointer dereference by sending a spoofed packet. This attack only
requires knowledge about pending message ids.
2019-09-24 12:00:12 +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
benpicco
bf2aaa1a5d
Merge pull request #12049 from Sizurka/fix-asymcute-reconnect
...
asymcute: Reset keepalive counter on connection ACK
2019-09-12 15:55:11 +02:00
Ken Bannister
1621cc1d39
Merge pull request #12075 from kb2ma/coap/options_get_opaque
...
net/nanocoap: get option bytes
2019-09-12 09:00:27 -04: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
Ken Bannister
39eddce078
net/nanocoap: add function to retrieve opaque option
2019-09-11 05:40:14 -04: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
Sebastian Meiling
9f5951d216
Merge pull request #10214 from bergzand/pr/nanocoap/flags_uint32t
...
nanocoap: change method flag type to uint16_t
2019-09-09 12:33:17 +03:00
Martine Lenders
58d621611f
Merge pull request #12175 from shr70/icmpv6_error_fix
...
[gnrc_icmpv6_error] Fixed multicast detection
2019-09-09 11:32:31 +02:00
Sebastian Meiling
c78ae0e33c
Merge pull request #12074 from kb2ma/coap/options_iterate
...
net/nanocoap: iterate options
2019-09-09 10:51:23 +03:00
bde253cca3
gcoap: use coap_method_flags_t
2019-09-09 09:40:14 +02:00
4d399bf444
nanocoap: change method flag type to uint32_t
2019-09-09 09:40:14 +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
7f7993f1d6
bluetil/addr: fix byte ordering in addr_from_str()
2019-08-28 16:48:42 +02:00
Hauke Petersen
b7b5791930
sys/bluetil/addr: fix byte ordering in print funcs
2019-08-28 16:48:42 +02:00
Hauke Petersen
218b547b3c
net/bluetil/addr: add addr swapped copy function
2019-08-28 16:48:41 +02:00