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

938 Commits

Author SHA1 Message Date
Jose Alamos
71ddd3bd61
gnrc_lorawan: fix undefined state when PSDU is NULL 2021-06-24 15:51:04 +02:00
Benjamin Valentin
9fbab8f0f8 drivers/slipdev: report NETOPT_ADDRESS to simulate l2 address
A lot of things break if `GNRC_NETIF_FLAGS_HAS_L2ADDR` is not set.
In order to handle router advertisements and auto-configureation,
generate a faux l2 address based on the netdev ID.
2021-06-21 12:42:03 +02:00
Benjamin Valentin
68afd9d900 gnrc_ndp: add route information option 2021-06-18 00:13:08 +02:00
Leandro Lanzieri
ae81b808a1
Merge pull request #16080 from jia200x/pr/gnrc_lorawan_netif
gnrc_lorawan: encode LoRaWAN port in netif header
2021-06-17 11:30:09 +02:00
Francisco
a20790b0ef
Merge pull request #16530 from benpicco/gnrc_dhcpv6_client_6lbr-generic
gnrc_dhcpv6_client_6lbr: choose downstream if as !upstream
2021-06-17 08:37:30 +02:00
Francisco
629cecb625
Merge pull request #14558 from jia200x/pr/gnrc_lorawan_rtt_support
gnrc_lorawan: add support for RTT (ztimer)
2021-06-17 08:34:59 +02:00
Hauke Petersen
7c6b72d3b4 net/gnrc/rpl: use ztimer_msec if available 2021-06-16 20:39:32 +02:00
Jose Alamos
7343c1c503
gnrc_netif_lorawan: add netif hdr support 2021-06-16 13:18:04 +02:00
Jose Alamos
dfacff9568
gnrc_lorawan: add support for RTT 2021-06-16 13:13:37 +02:00
Jose Alamos
2f680eaf01
gnrc_lorawan: remove xtimer and msg dependency
This commit removes the dependency to xtimer and RIOT messages.
This step is required to use other sources of events (e.g event_queue)
and timers (RTT)
2021-06-16 13:03:28 +02:00
Benjamin Valentin
056dcd8ae1 gnrc_dhcpv6_client_6lbr: choose downstream if as !upstream 2021-06-15 15:35:10 +02:00
Mumpfie
185570b034 gnrc tx-sync: add cast for c++ compatibility 2021-05-04 16:59:56 +02:00
Leandro Lanzieri
99c7ec57cf
Merge pull request #15943 from jia200x/pr/gnrc_lorawan_channel_mask
net/gnrc_lorawan: implement channel mask support
2021-03-19 16:23:13 +01:00
Jose Alamos
166ee57a5a
net/gnrc_lorawan: implement funcion to set channel mask 2021-03-19 12:15:03 +01:00
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
Jose Alamos
71bda3bcd8 gnrc_lorawan: remove GNRC specific dependencies 2020-09-30 14:18:54 +02:00
Jose Alamos
2e6ba90435 gnrc_lorawan: refactor rx_done callback 2020-09-30 14:18:54 +02:00
Jose Alamos
5146261f03 gnrc_lorawan: rename radio event functions 2020-09-30 14:18:54 +02:00
Juergen Fitschen
838d1007b3 gnrc/mac/timeout: add missing include 2020-09-24 13:06:47 +02:00
Martine Lenders
a72d0ef3e8
gnrc_netif: add packet to queue when device is busy
... and also send on send error (i.e. when *medium* was busy)
2020-09-02 12:30:23 +02:00
Martine Lenders
7c7f667108
gnrc_netif: add a send queue 2020-09-02 12:30:22 +02:00
Martine S. Lenders
3b7bab1108
gnrc_ipv6_nib_nc: error on non-link-local address without ARSM 2020-09-01 11:12:55 +02:00
Martine Lenders
4ba5367755
Merge pull request #7664 from zhuoshuguo/lwmac_radio_reinit
LWMAC: add re-initialize radio support.
2020-08-26 18:58:56 +02:00
benpicco
9f2475dc14
Merge pull request #14832 from maribu/sys-cleanup
sys: Cleanup access to internal variables
2020-08-26 17:07:19 +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
Benjamin Valentin
39951a948e net/netif: move gnrc_netif_addr_to/from_str() to netif
These functions are independent from GNRC and can be used by stack-agnistoc
code.
Avoid pulling in a GNRC dependency by moving those two helper functions to
`netif`.

The old function names are kept as `static inline` wrapper functions to avoid
breaking API users.
2020-08-16 23:52:32 +02:00
zhuoshuguo
d3c87d7bb9 lwmac: add re-initialize radio support. 2020-08-15 22:12:36 +08:00
Jannes
7f0a099256 net: Add the possibility to use custom ethertype 2020-08-06 13:04:58 +02:00
Benjamin Valentin
0c06694f72 gnrc_netif: replace GNRC_NETIF_SINGLE with gnrc_netif_single pseudo-module 2020-07-28 13:59:20 +02:00
Akshai M
bcb42e2166 mac/types.h : Remove ifndef for 'GNRC_MAC_TYPE_GET_DUTYCYCLE'
Removed ifndef guards for GNRC_MAC_TYPE_GET_DUTYCYCLE as its
an IPC message type and is also not intended as a configuration.
2020-07-21 16:36:27 +05:30
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
Akshai M
a05eb3b4ad gnrc/lwmac : Move GNRC_LWMAC_MAX_DATA_TX_RETRIES to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
cda7791a4b gnrc/lwmac : Move GNRC_LWMAC_DATA_CSMA_RETRIES to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
e241141a92 gnrc/lwmac : Move GNRC_LWMAC_DATA_DELAY_US to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
1fe5acddc6 gnrc/lwmac : Move GNRC_LWMAC_WR_PREPARATION_US to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
85948925ba gnrc/lwmac : Move GNRC_LWMAC_TIMEOUT_COUNT to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
3bd8dd4aa2 gnrc/lwmac : Move GNRC_LWMAC_BROADCAST_CSMA_RETRIES to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
65fa832e40 gnrc/lwmac : Move GNRC_LWMAC_MAX_RX_EXTENSION_NUM to 'CONFIG' 2020-07-08 10:04:45 +05:30
Akshai M
e38dca5d42 gnrc/lwmac : Move GNRC_LWMAC_TIME_BETWEEN_WR_US to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
1be3264ab3 gnrc/lwmac : Move GNRC_LWMAC_WAKEUP_INTERVAL_US to 'CONFIG_' 2020-07-08 10:04:45 +05:30
Akshai M
c15bd805af gnrc/lwmac : Update documentation
Add compile time parameters to group 'net_gnrc_conf' and modify
documentation to stick to 80 character limit per line.
2020-07-08 10:04:45 +05:30
Simon Brummer
122616ae7d gnrc_tcp: add retransmission timer 2020-07-06 21:18:23 +02:00
Simon Brummer
67b22d8783 gnrc_tcp: requested changes 2020-07-04 09:21:50 +02:00
Simon Brummer
aa1c2e9cba gnrc_tcp: rewrite API internal messaging 2020-07-04 09:20:43 +02:00
Jean Pierre Dudey
7a991f8ecc
net/gnrc/ipv6/nib: fix ref to net_gnrc_ipv6_nib_nc_info
This fixes a bug with the link as newlines can't be inside of a link
on Doxygen documentation.

Signed-off-by: Jean Pierre Dudey <jeandudey@hotmail.com>
2020-07-01 16:16:16 -05:00
Leandro Lanzieri
1f33c43fd4
net/gnrc/lwmac: Remove unused queue size configuration option 2020-06-19 10:20:15 +02:00
Leandro Lanzieri
d9ba720cc0
net/gnrc/gomach: Remove unused queue size configuration option 2020-06-19 10:19:31 +02:00
Akshai M
676a39cebb gnrc/gomach : Move GNRC_GOMACH_MAX_T2U_RETYR_THRESHOLD to 'CONFIG_' 2020-06-18 21:21:50 +05:30
Akshai M
89360577a0 gnrc/gomach : Move GNRC_GOMACH_T2U_RETYR_THRESHOLD to 'CONFIG_' 2020-06-18 21:21:50 +05:30
Akshai M
b9773263c0 gnrc/gomach : Move GNRC_GOMACH_REPHASELOCK_THRESHOLD to 'CONFIG_' 2020-06-18 21:21:50 +05:30
Akshai M
6b10059b8a gnrc/gomach : Move GNRC_GOMACH_MAX_ALLOC_SENDER_NUM to 'CONFIG_' 2020-06-18 21:21:50 +05:30