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

873 Commits

Author SHA1 Message Date
Martine S. Lenders
db8415b5b6 gnrc_netif_pktq: add function to check usage 2021-03-15 15:13:27 +01:00
Marian Buschsieweke
9e55c2d9e9
sys/net/gnrc/lwmac: add missing const qualifier
The name of the thread running the MAC can be stored in ROM.
2021-03-02 17:12:01 +01:00
Marian Buschsieweke
f7f739046d
sys/net/gnrc/gomach: add missing const qualifier
The name of the thread running the MAC can be stored in ROM.
2021-03-02 17:10:58 +01: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 Lenders
8e47621e7c
Merge pull request #15839 from maribu/gnrc_pktbuf_release_error
sys/net/gnrc_pktbuf: deduplicate code
2021-01-26 15:23:50 +01:00
Marian Buschsieweke
3970b667aa
sys/net/gnrc_pktbuf: deduplicate code
Implement gnrc_pktbuf_release_error() in gnrc_pktbuf once, rather than providing
two implementations in gnrc_pktbuf_static and gnrc_pktbuf_malloc
2021-01-26 10:50:19 +01:00
fabian18
f7a77ebb04 drivers/nrf24l01p_ng: netdev driver for nrf24l01+
The driver uses the netdev interface. Due to the limited
capabilities of the transceiver (32 byte FIFO and no source address in the layer2 frame),
it relies on 6LowPAN compression and adds the source address to the frame for that.
2021-01-24 20:49:39 +01:00
Marian Buschsieweke
b50964f6fc
sys/net/gnrc: fix in-band signaling of no RSSI
Previously a value of 0 was used for the RSSI to signal that this value is not
present in `gnrc_netif_hdr_t`. However, an RSSI of 0 dBm is legal and even very
plausible data.

This commit defines `GNRC_NETIF_HDR_NO_RSSI` as `INT16_MIN`, which is below the
noise floor in the vacuum of outer space and hence impossible to receive.
For consistency, also GNRC_NETIF_HDR_NO_LQI is defined.
2021-01-13 08:53:33 +01:00
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
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
80ff517eba
gnrc_netif: 6lo.h: add flags to indicate SRF capability 2020-12-14 09:30:03 +01:00
Martine S. Lenders
82c4d263e8
gnrc_sixlowpan_config: rename SRF parameters for Kconfig 2020-12-14 09:30:03 +01:00
Martine S. Lenders
0af8a1600a
sixlowpan|gnrc_sixlowpan: change SFR draft to RFC in doc 2020-12-14 09:00:26 +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
Marian Buschsieweke
d95192e97b
sys/net/gnrc/sock: Add support for RX timestamp 2020-12-10 17:43:11 +01:00
benpicco
665c07eb53
Merge pull request #15120 from benpicco/driver/at86rf215-trim
driver/at86rf215: add functions to configure trim & clock output at run-time
2020-12-02 16:53:02 +01:00
Benjamin Valentin
b866b5ef2b sys/net/gnrc/netif: add gnrc_netif_get_netdev()
Add a function to retrieve a netdev from the list of interfaces.
2020-12-02 14:59:17 +01:00
Francisco
0a064806e3
Merge pull request #15443 from benpicco/l2util_addr
replace netif_addr_to/from_str() with l2util_addr_to/from_str()
2020-12-02 09:21:16 +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
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
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
0b801c4de0 all: adapt to moved sched defines 2020-11-23 16:56:34 +01:00
Benjamin Valentin
dbf6b1e25c sys/net: replace netif_addr_to/from_str with l2util_addr… 2020-11-17 10:51:22 +01:00
Martine Lenders
1070e287f4
Merge pull request #15342 from miri64/gnrc_pkt/enh/tests
gnrc_pkt: port to list.h
2020-11-03 17:49:40 +01:00
Martine Lenders
bbe4f3074b
gnrc_pkt: port to list.h 2020-11-03 13:15:29 +01:00
Martine S. Lenders
f1af602952
gnrc_sixlowpan_frag_fb: add missing frag/hint.h include 2020-10-30 14:54:25 +01:00
Martine Lenders
72821a502f
gnrc_pktbuf: drop gnrc_pktbuf_replace_snip()
The function was deprecated in e94aa40bf5
and is unused and untested in the current code base.
2020-10-29 17:20:12 +01:00
benpicco
9e4dd8e451
Merge pull request #15287 from miri64/ethernet/enh/join-leave-mcast-group
gnrc_netif: add capability to join or leave link layer multicast groups
2020-10-29 16:03:32 +01:00
Martine Lenders
d8c78a9910
gnrc_netif: add capability to join or leave link-layer multicast groups
The request is forwarded to the device.
2020-10-29 14:38:51 +01:00
Martine Lenders
ed64c603ab
Merge pull request #15323 from miri64/gnrc_nettype/cleanup/rm-IOVEC
gnrc_nettype: remove GNRC_NETTYPE_IOVEC
2020-10-28 23:50:09 +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
Martine Lenders
3cac6e0979
gnrc_nettype: remove GNRC_NETTYPE_IOVEC
NETTYPE is unused in the code base since
9fb2f541ba and deprecated since
744f078b3a
2020-10-28 10:37:31 +01:00
José Alamos
60b5a6b35e
Merge pull request #15268 from benpicco/gnrc_netif_ieee802154_create-const
drivers/at86rf215: give driver threads different names
2020-10-23 17:14:19 +02:00
Bas Stottelaar
ffb929d811 sys/*: remove unused assert.h include 2020-10-22 11:29:27 +02:00
Benjamin Valentin
671c882d4f gnrc_netif_ieee802154_create: make name argument const
`gnrc_netif_create()` already expects a `const` name parameter,
also make the name parameter in `gnrc_netif_ieee802154_create()` const.
2020-10-21 19:49:34 +02:00
János Brodbeck
5a75eb29c3
net/netif/gnrc_netif: allow larger IPv6 MTU than minimum for BLE 2020-10-20 14:20:51 +02:00
José Alamos
fc8961ec27
Merge pull request #15081 from akshaim/PR_LoRaWAN_IN_865
net/lorawan : Support for IN865 region, Improve debugging
2020-10-16 12:22:18 +02:00
Martine Lenders
d491e827fb
gnrc_pkt: introduce packet list operations
Up until now `utlist.h` is used to manipulate the packet list within a
GNRC pkt snip. Since I always wanted to see if there would be an
advantage when using `core`'s `list.h`, I provide this
`gnrc_pktsnip_t`-specific API to manipulate the packet list. It has the
additional advantage of type safety and that future steps could
encapsulate those operations.
2020-10-13 13:32:53 +02:00
Akshai M
35e9612d02 gnrc/lorawan : Add IN_865 channel frequencies 2020-10-13 13:38:19 +05:30
Martine Lenders
b11acf1940
Merge pull request #15155 from benpicco/gnrc/rpl-TODO
gnrc/rpl: document implementation status
2020-10-08 13:35:06 +02:00
Benjamin Valentin
868c07158e gnrc/rpl: document implementation status
This copies the information from #3662 to the documentation.
Makes it more discoverable and let's people manage their
expectations.
2020-10-08 12:10:05 +02:00
Leandro Lanzieri
e1418e0972
Merge pull request #14065 from jia200x/pr/improve_gnrc_lorawan
gnrc_lorawan: refactor
2020-10-05 15:56:00 +02:00
Simon Brummer
aec5586021 gnrc_tcp: Fix typo in config.h 2020-10-05 14:59:11 +02:00
benpicco
2cab6b9f18
Merge pull request #14500 from brummer-simon/gnrc_tcp-replace_xtimer_with_evtimer
gnrc_tcp: Replace xtimer with evtimer
2020-10-05 13:58:39 +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
Simon Brummer
132882df73 gnrc_tcp: Replace xtimer with evtimer 2020-10-01 11:30:00 +02:00
Jose Alamos
fda73fdf0a gnrc_lorawan: uncrustify files 2020-09-30 14:18:54 +02:00