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
Sebastian Meiling
57361470dd
Merge pull request #11737 from nmeum/pr/gnrc_tftp_mode_compare
...
gnrc_tftp: Fix out-of-bounds memory access when comparing modes
2019-07-01 09:26:03 +02:00
Jose Alamos
ca8c78116f
drivers/sx127x: add NETOPT_RX_SYMBOL_TIMEOUT setter
2019-06-27 15:43:50 +02:00
Jose Alamos
268e6df950
drivers/sx127x: add NETOPT_RANDOM option handling
2019-06-27 15:43:50 +02:00
Jose Alamos
77162b8c6f
drivers/sx127x: add NETOPT_SYNCWORD option handling
2019-06-27 15:43:50 +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
7b8612b38d
sys/net: add netopt options for lorawan
2019-06-25 13:53:25 +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
Leandro Lanzieri
b9c1146e90
sys/net/sock_util: Accept null pointers in urlsplit
2019-06-12 10:03:11 +02:00
Martine Lenders
7e7e17c33f
Merge pull request #11640 from haukepetersen/add_bluetil_addrfromstr
...
sys/bluetil: add bluetil_addr_from_str()
2019-06-06 12:09:12 +02:00
Hauke Petersen
665b1d6528
sys/bluetil: add bluetil_addr_from_str()
2019-06-06 11:42:55 +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
Ken Bannister
8aa5258ba7
Merge pull request #11445 from miri64/gcoap/fix/rm-deprecated
...
gcoap: remove deprecated function gcoap_req_send()
2019-05-03 13:44:02 -04:00
0ec9c57b2b
add copyrights from IOTPUSH project
2019-05-02 12:09:37 +02:00
Martine Lenders
a11f817604
gcoap: rename gcoap_req_send2() to gcoap_req_send()
2019-04-25 13:40:32 +02:00
Martine Lenders
affd115405
gcoap: remove deprecated function gcoap_req_send()
2019-04-25 13:39:50 +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
chrysn
09dc930d3a
nanocoap: add some const qualifiers
2019-04-12 11:04:47 +02:00
chrysn
a51460984b
nanocoap: Add coap_opt_add_opaque
...
This option complements the existing coap_opt_add_{uint,string} and even
more special-purpose functions; its implementation is trivial given the
existing static _add_opt_pkt function.
The method is useful when working with ETags (ETag, If-Match options).
2019-04-12 11:04:47 +02:00
88171698e0
Merge pull request #10931 from kb2ma/nanocoap/pktapi_opt_enospc
...
net/nanocoap: Packet API return error if buffer full
2019-04-03 14:49:44 +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
78247d9e35
Merge pull request #10464 from haukepetersen/opt_cordepsim_addrhandling
...
examples/cord_epsim: change default RD server addr handling
2019-03-27 18:57:54 +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
Martine Lenders
c3efb91181
gnrc_ipv6: allow sending empty IPv6 packets
2019-03-27 18:45:04 +01:00
Martine Lenders
aa8e760e46
Merge pull request #11182 from miri64/gnrc_ipv6_nib/fix/pkt-null-on-error
...
gnrc_ipv6_nib: check if pkt is NULL on error
2019-03-27 18:38:32 +01:00
Hauke Petersen
840c8aeba2
cord/epsim: remove standalone submodule
2019-03-27 18:26:37 +01:00
Hauke Petersen
ec461661d8
net/cord_epsim: pass RD endpoint on runtime
2019-03-27 18:26:37 +01:00
Hauke Petersen
f2df22ed99
Merge pull request #10589 from miri64/l2util/feat/initial
...
l2util: initial import of a general IPv6 over X helper module
2019-03-27 11:46:12 +01:00
Martine Lenders
e9cd9584a4
Merge pull request #11288 from haukepetersen/opt_skald_movetoblefolder
...
ble/skald: move to sys/net/ble and fix doxygen groups
2019-03-26 23:56:28 +01:00
Hauke Petersen
aad15751ad
ble/skald: adapt doxygen groups
2019-03-26 21:56:05 +01:00
Martine Lenders
2e0203eb3e
Merge pull request #11271 from haukepetersen/add_bluetil_addr
...
ble/bluetil: add generic address to string module
2019-03-26 21:47:47 +01:00
Hauke Petersen
0c5929c185
ble/skald: move module to sys/net/ble
2019-03-26 21:37:35 +01:00
Martine Lenders
39fe2a30e4
gnrc_netif: use l2util for some functions
...
The following functions can now be wrapped around the more generalized
approach:
- gnrc_netif_ipv6_iid_from_addr()
- gnrc_netif_ipv6_iid_to_addr()
- gnrc_netif_ndp_addr_len_from_l2ao()
- gnrc_netif_eui64_from_addr()
2019-03-26 21:37:20 +01:00
Martine Lenders
573549c41f
l2util: initial import
...
This module provide stack independently (just dependent on netdev's
network device types) several helper functions to get IPv6 over X
specific values.
2019-03-26 21:37:20 +01:00
Peter Kietzmann
f6efecc3f0
Merge pull request #11063 from miri64/gnrc_sixlowpan_frag/enh/msg-send-to-6lo
...
gnrc_sixlowpan_frag: encapsulate msg_send_to_self()
2019-03-26 21:26:04 +01:00
Martine Lenders
add337cff9
Merge pull request #10769 from miri64/gnrc_ipv6/enh/ipv6-sending-debug
...
gnrc_ipv6: add sending DEBUG output
2019-03-26 21:17:16 +01:00
Simon Brummer
5d1ab9b34c
gnrc_tcp: Fix packet-flood while probing
2019-03-26 21:05:53 +01:00
Hauke Petersen
81ff7ff65a
ble/bluetil: add ble address helper submodule
2019-03-26 21:05:11 +01:00
Martine Lenders
3f2e0e70cb
gnrc_ipv6: add sending DEBUG output
2019-03-26 20:19:35 +01:00
Martine Lenders
83b9f72f83
Merge pull request #11011 from miri64/ndp/enh/add-hop-limit-define
...
ndp: provide define for common hop-limit
2019-03-26 20:18:07 +01:00
Martine Lenders
1d2ccb243e
Merge pull request #11233 from haukepetersen/opt_bluetilad_find_and_cmp
...
net/bluetil/ad: add bluetil_ad_find_and_cmp()
2019-03-26 19:34:46 +01:00
Martine Lenders
05bca5b2cf
gnrc_netif: fix DEBUG output on error
...
`res` is an integer that is always negative in the given case, so using
`%u` here might be a little bit confusing.
2019-03-26 18:23:56 +01:00
Martine Lenders
116642f1de
Merge pull request #11164 from miri64/gnrc_sixlowpan_iphc/fix/check-NULL-ptr-for-compressible
...
gnrc_sixlowpan_iphc: check ptr != NULL in compressible check
2019-03-26 17:49:10 +01:00
Martine Lenders
06e244c963
ndp: provide define for common hop-limit
2019-03-26 12:00:52 +01:00
Hauke Petersen
f5467ef9f1
net/ble: cleanup doxygen grouping
2019-03-25 19:04:05 +01:00
Martine Lenders
bcb6b921d3
Merge pull request #11255 from aabadie/pr/gnrc_netif_nrfmin_fix
...
net/gnrc_netif/nrfmin: put NETOPT_PROTO assert at the right place
2019-03-24 15:01:50 +01:00
5fa2528185
net/gnrc_netif/nrfmin: put NETOPT assert at the right place
...
NETOPT depends on GNRC_SIXLOWPAN and should be moved inside the corresponding preprocessor conditional code
2019-03-24 14:34:12 +01:00
Jose Alamos
83ba971412
gnrc_netif: add NETDEV_TYPE_LORA to L2ADDR check
2019-03-24 11:10:41 +01:00
Hauke Petersen
d293d3ece0
net/bluetil/ad: add bluetil_ad_find_and_cmp()
2019-03-21 21:50:34 +01:00
Martine Lenders
fb5a298c1f
Merge pull request #11193 from haukepetersen/rm_pkbuf_getiovec
...
net/gnrc_pktbuf: rm deprecated _pktbuf_get_iovec()
2019-03-19 11:52:14 +01:00
Ken Bannister
5bf2fc6227
net/nanocoap: return error from coap_opt_finish if no space
2019-03-19 05:30:04 -04:00
Ken Bannister
3cdf43607c
net/nanocoap: Return error from coap_opt_add_xxx() if no space
2019-03-19 05:30:04 -04:00
Leandro Lanzieri
6bb4158c31
sys/net/application_layer/nanocoap: Add path prefix opt
...
This adds a prefix option for the methods field of a coap resource and
modifies the way the path is matched on a request to accept prefix
matching.
2019-03-17 14:26:11 +01:00
Semjon Kerner
db589365f0
Merge pull request #11161 from miri64/gnrc_pktbuf/fix/start-write-size-0
...
gnrc_pktbuf: allow write-protect of size 0 snips
2019-03-15 15:10:59 +01:00
ccc09d9ed4
Merge pull request #11023 from miri64/gnrc_netif_ieee802154/enh/propagate-pend-frames
...
gnrc_netif_ieee802154: propagate pend. frame flag to stack
2019-03-15 12:51:50 +01:00
Hauke Petersen
9fb2f541ba
net/gnrc_pktbuf: rm deprecated _pktbuf_get_iovec()
2019-03-15 10:21:22 +01:00
Martine Lenders
b970d00064
gnrc_ipv6_nib: check if pkt is NULL on error
...
According to the documentation of `gnrc_ipv6_nib_get_next_hop_l2addr()`
`pkt` may be `NULL`. However, whenever that function sends an error
message (the methods for that require `orig_pkt` not to be NULL) `pkt`
is not checked, which may lead to failed assertions.
2019-03-14 14:29:13 +01:00
Ken Bannister
34e880499e
examples/cord_ep: use coap_opt_finish()
2019-03-13 00:24:29 -04:00
Ken Bannister
682c1e9a7d
examples/cord_epsim: use coap_opt_finish()
2019-03-13 00:24:29 -04:00
297efdd5b2
Merge pull request #10892 from kb2ma/gcoap/use_opt_finish
...
net/gcoap: Replace use of gcoap_finish() with coap_opt_finish()
2019-03-12 22:16:32 +01:00
Martine Lenders
3582dedd4e
gnrc_sixlowpan_iphc: check ptr != NULL in compressible check
...
Not only does this leave open a risk to crash the node for the check
in `_compressible()` but also is the `tmp` check below getting confused
when `ptr` is `NULL`, since `gnrc_pktbuf_start_write()` returns `NULL`
in that case.
2019-03-12 16:48:33 +01:00