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

64 Commits

Author SHA1 Message Date
Benjamin Valentin
b208db0f27 gnrc_ipv6_auto_subnets: auto-configuration for nested subnets
If we get a large (e.g. /62) prefix from e.g. DHCPv6, we can split it
into subnets automatically to configure downstream interfaces.

This allows for automatic configuration of daisy-chained nodes or
nodes connected in a tree topology.

To enable the feature, a new pseudo-module `gnrc_ipv6_auto_subnets` is
provided.
2021-09-02 15:35:14 +02:00
Simon Brummer
6fba0d970c gnrc_sock_tcp: integrate gnrc_tcp 2021-08-14 21:27:34 +02:00
Marian Buschsieweke
89c69c5450
sys/net/gnrc/tx_sync: new module
The new `gnrc_tx_sync` module allows users of the GNRC network stack to
synchronize with the actual transmission of outgoing packets. This is directly
integrated into gnrc_sock. Hence, if `gnrc_tx_sync` is used, calls to e.g.
sock_udp_send() will block until the network stack has processed the message.

Use cases:
1. Prevent packet drop when sending at high rate
    - If the application is sending faster than the stack can handle, the
      message queues will overflow and outgoing packets are lost
2. Passing auxiliary data about the transmission back the stack
    - When e.g. the number of required retransmissions, the transmission time
      stamp, etc. should be made available to a user of an UDP sock, a
      synchronization mechanism is needed
3. Simpler error reporting without footguns
    - The current approach of using `core/msg` for passing up error messages is
      difficult to use if other message come in. Currently, gnrc_sock is
      busy-waiting and fetching messages from the message queue until the number
      of expected status reports is received. It will enqueue all
      non-status-report messages again at the end of the queue. This has
      multiple issues:
        - Busy waiting is especially in lower power scenarios with time slotted
          MAC protocols harmful, as the CPU will remain active and consume
          power even though the it could sleep until the TX slot is reached
        - The status reports from the network stack are send to the user thread
          blocking. If the message queue of the user thread is full, the network
          stack would block until the user stack can fetch the messages. If
          another higher priority thread would start sending a message, it
          would busy wait for its status reports to completely come in. Hence,
          the first thread doesn't get CPU time to fetch messages and unblock
          the network stack. As a result, the system would lock up completely.
    - Just adding the error/status code to the gnrc_tx_sync_t would preallocate
      and reserve memory for the error reporting. That way gnrc_sock does not
      need to search through the message queue for status reports and the
      network stack does not need to block for the user thread fetching it.
2021-02-03 15:16:42 +01:00
Martine S. Lenders
1cd1716280
gnrc_sixlowpan_frag: initial import of Selective Fragment Recovery 2020-12-14 13:00:36 +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
Leandro Lanzieri
cdc252ab7b
net/gnrc/nettest: Remove module
This module has been deprecated and scheduled for removal in release
2020.07.
2020-07-10 15:58:54 +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
Sören Tempel
0e2a620788 gnrc_tftp: remove module
Has been deprecated for awhile (01fc3d8f0b).
2020-02-20 12:04:01 +01:00
Martine Lenders
15c828cf92
gnrc_dhcpv6_client: provide GNRC-specific DHCPv6 parts 2020-01-16 12:36:10 +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
Jose Alamos
39951b8f70 gnrc_lorawan: add initial support for LoRaWAN stack 2019-11-26 21:52:06 +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
1f7770da5c gnrc_sixlowpan_frag: move public rbuf functions to their own module 2019-09-27 19:09:52 +02:00
Martine Lenders
f4b8ba32f3 gnrc_ipv6_ext_frag: Initial import of IPv6 reassembly 2019-09-16 19:13:18 +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
Martine Lenders
7833141af1 gnrc_mac: rename directory in line with other modules 2019-05-09 14:46:35 +02:00
Martine Lenders
08524ca1d2 gnrc_netif_hdr: move path resolve to gnrc_netif submodule resolution
No that we introduced sub-modules to `gnrc_netif` we can move that here
as well.
2018-12-05 15:04:45 +01:00
Martine Lenders
72c5fd06b4 gnrc_netif: make link-layer specific operations proper submodules 2018-12-05 15:04:04 +01:00
Martine Lenders
c54ba49e82 gnrc_ipv6_ext: move ipv6_ext_rh (partly) to GNRC 2018-10-25 11:10:25 +02:00
zhuoshuguo
ea5aeeb10f gomach: a robust traffic adaptive multichannel MAC for IoT. 2017-11-30 18:51:49 +01:00
Martine Lenders
e65211db7d
Merge pull request #7195 from miri64/gnrc_pktbuf_malloc/feat/initial
gnrc_pktbuf_malloc: initial import of a malloc()-based pktbuf
2017-11-28 00:00:36 +01:00
Martine Lenders
f90a9a875f
gnrc_ndp2: rename to gnrc_ndp 2017-11-17 10:41:54 +01:00
Martine Lenders
31b1ceb440
gnrc_netif2: rename to gnrc_netif 2017-11-17 10:41:54 +01:00
Martine Lenders
636ef2a498
gnrc: remove legacy neighbor discovery code 2017-11-17 09:20:30 +01:00
Martine Lenders
71a7dbf918
gnrc: remove legacy network interface structures 2017-11-17 09:20:29 +01:00
Martine Lenders
b74ee8869b slip: port to be used with netdev 2017-10-10 23:14:12 +02:00
Martine Lenders
0b80c7ed17
gnrc_netif2: Introduction of a new GNRC network interface API 2017-10-10 10:36:28 +02:00
Cenk Gündoğan
43283ef16b Merge pull request #7064 from miri64/gnrc_ndp2/api/initial
gnrc_ndp2: Provide GNRC abstraction layer for NIB for sending
2017-10-06 13:33:36 +02:00
Martine Lenders
08447ed51e
gnrc_ndp2: Provide GNRC abstraction layer for NIB for sending 2017-10-06 12:11:05 +02:00
035d266d49 makefile: indentation cleanup 2017-09-22 12:00:47 +02:00
Martine Lenders
475e2bdc82 gnrc_pktbuf_malloc: initial import of a malloc()-based pktbuf
The main motivation for this is to valgrind the network stack.
2017-07-15 17:54:47 +02:00
Martine Lenders
d9bb94eff8 Merge pull request #7183 from miri64/gnrc_pktbuf/enh/fix-common-module
gnrc_pktbuf: move common auxiliary functions to common module
2017-07-15 17:07:26 +02:00
zhuoshuguo
a54655890e LWMAC: a simple duty cycling 802.15.4 MAC protocol. 2017-06-21 16:40:04 +02:00
Martine Lenders
d8336c38b6
gnrc_pktbuf: move common auxiliary functions to common module
The packet buffer was originally designed to have a replaceable
back-end. This is why the actual module is called `gnrc_pktbuf_static`.
However, since than some auxiliary functions snuck into the static
back-end, which should go into the common module (which is a
pseudo-module at the moment).

This fix makes the `gnrc_pktbuf` pseudo-module an actual module and
moves the auxiliary functions to that module.
2017-06-14 12:24:56 +02:00
Martine Lenders
e92f97cb12 gnrc_ipv6_nib: initial import of internal NIB functions 2017-06-09 21:52:37 +02:00
Martine Lenders
13770361bb
net: remove conn API
conn was deprecated in 38217347. 3 Releases later and now that no module
is using it RIOT-internally anymore, I think it is time to say goodbye.
2017-04-28 15:23:54 +02:00
Hauke Petersen
05c4e314c9 net/gnrc: remove deprecated nomac 2017-02-15 10:07:34 +01:00
Martine Lenders
5e983db605 gnrc_zep: remove gnrc_zep
This ZEP implementation is based on `gnrc_netdev`, it is complicated to
use, I'm not even sure anyone used it except me or if it is working
still. See #6121 for a better port of ZEP.
2017-02-07 17:41:28 +01:00
Sebastian Meiling
7f7329ea71 Merge pull request #4744 from brummer-simon/devel-gnrc_tcp
gnrc_tcp: initial implementation
2017-01-23 09:32:34 +01:00
Simon Brummer
abd307b89d gnrc_tcp : initial implementation 2017-01-22 09:27:58 +01:00
Ken Bannister
fa815993ae gcoap: Move from gnrc directory up to net directory 2017-01-20 16:14:13 -05:00
zhuoshuguo
6a0ac75d2c gnrc_mac: add mac tx and rx internal types and API. 2017-01-04 13:59:16 +01:00
Martine Lenders
6dac4bd530 Merge pull request #5950 from zhuoshuguo/add_packet_queue_module_to_gnrc_mac
gnrc: Add priority packet queue module to gnrc
2016-11-01 07:45:31 +01:00
Ken Bannister
f3431fb49e gcoap: initial commit 2016-10-31 22:41:52 -04:00
zhuoshuguo
0ebe2a0309 gnrc: add priority packet queue module. 2016-10-31 16:53:01 +01:00
Martine Lenders
b971c575ad gnrc_sock_udp: provide port for sock_udp 2016-10-26 15:20:38 +02:00
Martine Lenders
a3f2cdd6ea csma_sender: port to netdev2 2016-06-05 13:57:26 +02:00
Martine Lenders
8426ca99ca Merge pull request #4178 from rousselk/csma-sender
New 'csma_sender' helper module
2016-06-04 14:49:21 +02:00
Cenk Gündoğan
b5c09bfc41 rpl: introducing p2p-rpl 2016-03-24 12:12:07 +01:00