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

140 Commits

Author SHA1 Message Date
Martine S. Lenders
e980405cbc
gnrc_sixlowpan_frag_sfr: provide statistics sub-module 2020-12-14 13:00:37 +01:00
Martine S. Lenders
1cd1716280
gnrc_sixlowpan_frag: initial import of Selective Fragment Recovery 2020-12-14 13:00:36 +01:00
Martine S. Lenders
ec436e99d9
gnrc_sixlowpan_frag_rb: add handling for RFRAG packets 2020-12-14 10:17:57 +01:00
Martine S. Lenders
d393008b9f
gnrc_sixlowpan_frag_rb: externalize get_by_tag function 2020-12-14 09:30:04 +01:00
Martine S. Lenders
bd300a3cc0
gnrc_sixlowpan_frag_rb: add check function for empty interval pool 2020-12-14 09:30:04 +01:00
Martine S. Lenders
27f4939211
gnrc_sixlowpan_frag_vrb: add reverse look-up
To label switch ACKs for fragments back to the originator, a reverse
look-up in the VRB is required.
2020-12-14 09:00:25 +01:00
benpicco
b18cbd8c2a
Merge pull request #11068 from miri64/gnrc_sixlowpan_frag/new/minfwd
gnrc_sixlowpan_frag: initial import of minimal forwarding
2020-12-01 18:55:51 +01:00
Martine Lenders
27e123608f
gnrc_sixlowpan_iphc: forward received fragments 2020-12-01 16:25:30 +01:00
Martine Lenders
d9be79b266
gnrc_sixlowpan_iphc/minfwd: put only IPHC dispatch in first fragment
This is only the case when minfwd is compiled in.
2020-12-01 16:25:29 +01:00
Martine Lenders
7fe07e35a3
gnrc_sixlowpan_frag_rb: add VRB and use minfwd handling
When a VRB entry exists use minfwd to forward.

When a route exist for the first fragment received in reassembly create
a virtual reassembly buffer entry.
2020-12-01 16:25:29 +01:00
Martine Lenders
df1171a069
gnrc_sixlowpan_frag_rb: make rbuf pointer generic 2020-12-01 16:25:29 +01:00
Martine Lenders
4ce2d01cb9
gnrc_sixlowpan_frag: initial import of minimal forwarding
See https://tools.ietf.org/html/draft-ietf-6lo-minimal-fragment-04
2020-12-01 15:08:08 +01:00
1d5e2e9cd9 all: remove traces of kernel_types.h
Automatically removed using:

    $ git grep -l kernel_types | xargs sed -i '/^#include .kernel_types/d'
2020-11-25 17:52:34 +01:00
Bas Stottelaar
a76cb4ea2f sys/*: ENABLE_DEBUG not needed for inttypes.h 2020-11-02 21:49:39 +01:00
Martine Lenders
d135721ad9
gnrc_sixlowpan_rb: remove GNRC_SIXLOWPAN_FRAG_RBUF_AGGRESSIVE_OVERRIDE
Deprecated in c7b6dc587c.
2020-10-28 11:03:15 +01:00
Bas Stottelaar
1b35d06a51 sys/*: realign ENABLE_DEBUG 2020-10-23 11:27:48 +02:00
Bas Stottelaar
80d9da90df sys/*: add missing include of assert.h 2020-10-22 11:13:09 +02:00
Martine Lenders
45144fb4a4
treewide: use new gnrc_pkt API functions instead of utlist.h macros 2020-10-13 13:32:53 +02:00
11aa30625f
sys/net/gnrc: fix typos
- 'Busses' -> 'Buses'
- 'wether' -> 'whether'
- 'inferface' -> 'interface'
- 'registartion' -> 'registration'
- 'divisable' -> 'dividable'
- 'anounce' -> 'announce'
2020-10-02 08:13:18 +02:00
Leandro Lanzieri
d25fc243c4
treewide: change prefix for generated Kconfig symbols.
This changes the prefixes of the symbols generated from USEMODULE and
USEPKG variables. The changes are as follow:

   KCONFIG_MODULE_ => KCONFIG_USEMODULE_
   KCONFIG_PKG_ => KCONFIG_USEPKG_
   MODULE_ => USEMODULE_
   PKG_ => USEPKG_
2020-08-31 09:37:09 +02:00
Marian Buschsieweke
3b6fa61829
sys: Cleanup access to internal variables
Replace direct accesses to sched_active_thread and sched_active_pid with
the helper functions thread_getpid() and thread_get_active(). This serves
two purposes:

1. It makes accidental writes to those variable from outside core less likely.
2. Casting off the volatile qualifier is now well contained to those two
   functions
2020-08-24 20:28:11 +02:00
Martine Lenders
66de39a20a
gnrc_sixlowpan_frag_rb: Check possibly uninitialized pointers 2020-08-20 23:51:38 +02:00
Martine S. Lenders
5885293e9e
gnrc_sixlowpan_frag_vrb: fix cppcheck warning
... which wasn't a false positive after all.
2020-08-03 12:29:06 +02:00
Martine S. Lenders
ed9f43ab3a
gnrc_sixlowpan_frag_stats: add average fragments per datagram statistic 2020-02-06 13:40:23 +01:00
Martine S. Lenders
90ed5bf4af
gnrc_sixlowpan_frag_rb: fix doc on DO_NOT_OVERRIDE 2020-02-03 12:48:19 +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
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
de99b99b35 Kconfig: Expose gnrc/sixlowpan configurations 2020-01-17 18:09:14 +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
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
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
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
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 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
796d6a3167 gnrc_sixlowpan: move garbage collect msg type to reassembly buffer 2019-10-24 12:41:29 +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 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