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
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