1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
Commit Graph

549 Commits

Author SHA1 Message Date
Benjamin Valentin
300a936e42 gnrc: add comment about gnrc_pktbuf_hold() use 2024-11-15 16:59:08 +01:00
benpicco
3706589959
Merge pull request #20834 from derMihai/mir/nib/drop_for_unreachable_rebase
gnrc/ipv6/nib: don't queue packets on 6lo neighbors and drop/flush if…
2024-10-16 09:16:40 +00:00
Mihai Renea
3a5612ee57 gnrc/ipv6/nib: don't queue packets on 6lo neighbors and drop/flush if UNREACHABLE 2024-10-16 09:01:36 +02:00
benpicco
5c06502c4d
Merge pull request #20835 from xnumad/nib-route-hide-on-link-prefixes
gnrc/ipv6: `nib route`: hide off-link PLEs
2024-09-24 15:42:48 +00:00
xnumad
92b77ed944 gnrc_ipv6_nib: refactor
Co-Authored-By: benpicco <benpicco@googlemail.com>
2024-09-18 16:09:58 +02:00
benpicco
73e90c5049
Merge pull request #20371 from xnumad/nib-next-hop-addr
gnrc_ipv6_nib: Force unspecified next hop addresses
2024-09-02 12:13:28 +00:00
xnumad
8b73628dc8 gnrc_ipv6_nib: refactor
Invert condition, add assert
2024-08-31 10:40:17 +02:00
xnumad
606a11b87d gnrc_ipv6_nib: fix: offl-only: overwrite unspecified address
Co-Authored-By: fabian18 <15147337+fabian18@users.noreply.github.com>
2024-08-26 18:26:57 +02:00
xnumad
48a2417892 gnrc/ipv6: nib route: hide off-link PLEs 2024-08-26 16:30:58 +02:00
Daniel Lockau
7240d37fc2 nib.c: allow selection of interfaces for static link local addresses 2024-08-26 08:31:21 +02:00
xnumad
3ab7896b18 gnrc_ipv6_nib: Force unspecified next hop addresses 2024-07-29 20:10:13 +02:00
benpicco
9781bc0ad3
Merge pull request #20757 from xnumad/offl-lifetimes
gnrc/ipv6: Store all SLAAC prefixes
2024-07-29 14:06:22 +00:00
Benjamin Valentin
312a550f1a treewide: remove THREAD_CREATE_STACKTEST from thread creation 2024-07-29 11:45:58 +02:00
xnumad
e25066768b gnrc/ipv6: Store all SLAAC prefixes
Incl. off-link ones, since lifetimes for the autoconfigured addresses are managed by the prefix entry.
2024-07-28 09:53:55 +02:00
xnumad
81a1e997f0 gnrc/ipv6: fix: Overflow in sent packet 2024-07-03 20:15:04 +02:00
xnumad
1e4a85f1e6 gnrc/ipv6: fix: Avoid overflow if prefix already expired
Check similarly to `_handle_pfx_timeout`
2024-07-03 20:14:45 +02:00
fabian18
d6d9d5f3da
Merge pull request #20329 from fabian18/nib_rtr_fixes
nib: some fixes when a router or a prefix is deleted
2024-06-10 08:38:49 +00:00
Marian Buschsieweke
abd7205115
sys/net/grnc: fix NULL ptr dereferencing
This bug was spotted by GCC 14.1.0:

    In file included from /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-internal.h:27,
                     from /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-arsm.h:33,
                     from /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-6ln.h:30,
                     from /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-router.c:28:
    In function 'bf_isset',
        inlined from '_build_ext_opts' at /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-router.c:256:17,
        inlined from '_snd_ra' at /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-router.c:368:20,
        inlined from '_snd_rtr_advs' at /home/maribu/Repos/software/RIOT/master/sys/net/gnrc/network_layer/ipv6/nib/_nib-router.c:99:9:
    /home/maribu/Repos/software/RIOT/master/sys/include/bitfield.h:130:18: error: array subscript 0 is outside array bounds of 'uint8_t[0]' {aka 'unsigned char[]'} [-Werror=array-bounds=]
      130 |     return (field[idx / 8] & (1u << (7 - (idx % 8))));
          |             ~~~~~^~~~~~~~~
    In function '_snd_rtr_advs':
    cc1: note: source object is likely at address zero
    cc1: all warnings being treated as errors
2024-05-09 12:03:54 +02:00
MrKevinWeiss
e0fdc3c16c
*Kconfig*: Modify Kconfig to remove dep model 2024-03-27 10:28:12 +01:00
Fabian Hüßler
96480008ca ipv6/nib: _handle_rtr_timeout() do not blindly delete offlink entry 2024-03-09 11:02:12 +01:00
Fabian Hüßler
1d3b320c2e ipv6/nib: _nib_offl_clear() delete offlink entry when mode is not zero 2024-03-09 11:02:12 +01:00
xnumad
23d3ccde6b gnrc_ipv6_nib: Ignore PIO with on-link flag 2024-02-22 17:52:17 +01:00
Fabian Hüßler
d5d4fc869a ipv6/nib: delete DC entries, referencing a deleted DR 2024-02-07 10:12:14 +01:00
benpicco
83f3c4a396
Merge pull request #20342 from fabian18/pr/fix_router_lifetime_and_ft_add_api
ipv6/nib: fix router lifetime handling in RIO and fix gnrc_ipv6_nib_ft_add() api
2024-02-06 19:38:12 +00:00
Fabian Hüßler
fef5c8c5d8 ipv6/nib: fix lifetime handling in RIO handling 2024-02-06 18:35:05 +01:00
Fabian Hüßler
c4ae9063e9 ipv6/nib: fix gnrc_ipv6_nib_ft_add API and catch overflovs 2024-02-06 18:35:05 +01:00
Martine Lenders
a16199f846
Merge pull request #20343 from fabian18/pr/fix_ipv6_nib_cancel_timers
ipv6/nib: cancel timers when NIB entry gets deleted
2024-02-06 16:24:11 +00:00
Fabian Hüßler
2b8b828a53 ipv6/nib: move internal event timer API up 2024-02-06 10:30:59 +01:00
Fabian Hüßler
eb1a827e21 ipv6/nib: delete router timeout when router is deleted 2024-02-06 10:29:48 +01:00
Fabian Hüßler
f8a64e74c4 ipv6/nib: delete route timeout when forward table entry is deleted 2024-02-06 10:29:40 +01:00
Fabian Hüßler
de4142de37 ipv6/nib: delete prefix timeout when prefix list entry is deleted 2024-02-06 10:29:30 +01:00
Jose Alamos
8dc5e9109e
gnrc_ipv6: fix double free when pinging TNT loopback address 2024-01-29 14:34:41 +01:00
Benjamin Valentin
616a5d69f6 gnrc/ipv6: only send link-local loopback if it's on the same interface 2024-01-22 20:03:41 +01:00
benpicco
c1ae2ecb9f
Merge pull request #20259 from fabian18/pr/gnrc/ipv6/nib_rejoin_ip6_mcast
gnrc/ipv6/nib: rejoin ipv6_addr_all_nodes_link_local on interface up
2024-01-16 15:11:53 +00:00
Fabian Hüßler
ab3f77e673 gnrc/ipv6/nib: rejoin ipv6_addr_all_nodes_link_local on interface up 2024-01-16 12:34:37 +01:00
Benjamin Valentin
433438c924 gnrc/nib: allow prefix to be on-link without being used for address 2024-01-10 14:49:03 +01:00
Benjamin Valentin
4a5757b9af gnrc/ipv6/nib: add Kconfig for static link-local address 2024-01-04 17:45:23 +01:00
Benjamin Valentin
7196b0a2ae gnrc/ipv6/nib: allow for predictable static link-local addresses 2024-01-04 16:13:37 +01:00
Frederik Haxel
64ba553d1f sys: Use size_t print format specifier
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
2023-12-21 12:02:19 +01:00
Benjamin Valentin
9ceb7cd30c gnrc/ipv6/nib: fix GNRC_IPV6_STATIC_LLADDR when link state changes 2023-12-19 18:33:59 +01:00
Marian Buschsieweke
d252eb7395
Merge pull request #19998 from fabian18/gnrc_static_messge_queues
gnrc: make message queues static
2023-12-04 11:21:08 +00:00
Benjamin Valentin
75f10a5725 gnrc/ipv6/nib: don't do multicast neighbor solicitation on 6LoWPAN 2023-11-10 12:11:49 +01:00
Benjamin Valentin
8779b5edde nib/_nib-6ln: don't check twice if address is assigned 2023-10-24 16:47:47 +02:00
Benjamin Valentin
7c6b367035 nib/_nib-6ln: bail out early if address is no longer assigned 2023-10-24 16:44:25 +02:00
Fabian Hüßler
975f8959ce gnrc/ipv6: make message queue static 2023-10-19 17:45:08 +02:00
Martine Lenders
988db6923d
gnrc_ipv6_ext_frag: _completed: Add comment why list head is not checked
... for NULL pointer dereference.
2023-10-12 16:24:18 +02:00
Benjamin Valentin
d38379688d gnrc_ipv6_nib: fix for border router with non-6lo interfaces
A border router should not send router advertisements on it's 6LoWPAN
interfaces, but if it also has classic IPv6 downstream interfaces it
should very much do so.
2023-08-24 12:05:03 +02:00
Benjamin Valentin
ae28f11e3a gnrc_static: fix static PID assignment 2023-08-01 23:27:20 +02:00
bors[bot]
ddf1fe252d
Merge #19733 #19747 #19769 #19782
19733: cpu/msp430: reorganize code r=maribu a=maribu

### Contribution description

RIOT supports two distinct families of the MSP430: The [MSP430 x1xx] MCU family and the [MSP430 F2xx/G2xx] MCU family. For both incompatible MCU families the code was located in the msp430fxyz folder, resulting in case of the UART driver in particularly bizarre code looking roughly like this:

```C
#ifndef UART_USE_USCI
/* implementation of x1xx peripheral ... */
#else
/* implementation of F2xx/G2xx peripheral ... */
#endif
/* zero shared code between both variants */
```

This moves peripheral drivers shared between the two families to msp430_common and splits the SPI and UART driver into two MCU families.

In addition, it cleans up the `msp430_regs.h` by dropping most of it and using the macros and symbols provided by the vendor header files. There is little reason for us to maintain constants when TI is already doing that.

[MSP430 x1xx]: https://www.ti.com/lit/ug/slau049f/slau049f.pdf
[MSP430 F2xx/G2xx]: https://www.ti.com/lit/ug/slau144k/slau144k.pdf


19747: gnrc/ipv6/nib: reset rs_sent counter also for not-6LN interfaces r=maribu a=fabian18



19769: cpu/nrf53: add initial support with nRF5340DK-APP board r=maribu a=dylad

### Contribution description

This PR adds support for nRF5340 MCU and its associated Nordic development board, nRF5340DK.
This MCU provides a dual Cortex-M33, one application core running at up to 128MHz, and one network core running at up to 64MHz.
Peripherals are inherited from others Nordic MCUs families so it shouldn't be hard to add more of them in followup PRs.

For now, only the minimal set of peripherals is supported:
- GPIO / GPIO_IRQ
- UART
- TIMER

### Testing procedure
Build the usual test application for the supported peripherals and flash the board.
nRF5340DK provides two serial ports on its embedded debugger. RIOT's shell should be available on the first one (/dev/ttyACM0)


### Issues/PRs references
#18576
#19267 


19782: cpu/msp430: fix for ti's msp430-gcc-opensource package ld version r=maribu a=hugueslarrive

### Contribution description
My msp430 toolchain (https://www.ti.com/tool/MSP430-GCC-OPENSOURCE) was broken by #19484:
```
hugues@p700:~/github/cpu_msp430_common/RIOT$ BOARD=msb-430 make -j64 -C examples/hello-world
make : on entre dans le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
Building application "hello-world" for "msb-430" with MCU "msp430fxyz".

"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core/lib
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers/periph_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/auto_init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/div
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/libc
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/malloc_thread_safe
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/newlib_syscalls_default
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz/periph
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/preprocessor
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/stdio_uart
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common/periph
/opt/ti/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: .rodata not found for insert
collect2: error: ld returned 1 exit status
make: *** [/home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/../../Makefile.include:761 : /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/bin/msb-430/hello-world.elf] Erreur 1
make : on quitte le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version
GNU ld (Mitto Systems Limited - msp430-gcc 9.3.1.11) 2.34
Copyright (C) 2020 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version | grep -Eo '[0-9]\.[0-9]+'
9.3
1.11
2.34
hugues@p700:~/github/cpu_msp430_common/RIOT$ /opt/ti/msp430-gcc/msp430-elf/bin/ld --version | grep -Eo '[0-9]\.[0-9]+$'
2.34
```


### Testing procedure
```
hugues@p700:~/github/cpu_msp430_common/RIOT$ BOARD=msb-430 make -j64 -C examples/hello-world
make : on entre dans le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
Building application "hello-world" for "msb-430" with MCU "msp430fxyz".

"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/core/lib
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/boards/common/msb-430
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/drivers/periph_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/auto_init
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/div
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/libc
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/malloc_thread_safe
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/newlib_syscalls_default
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/preprocessor
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/sys/stdio_uart
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430fxyz/periph
"make" -C /home/hugues/github/cpu_msp430_common/RIOT/cpu/msp430_common/periph
   text	   data	    bss	    dec	    hex	filename
   8612	    722	    866	  10200	   27d8	/home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world/bin/msb-430/hello-world.elf
make : on quitte le répertoire « /home/hugues/github/cpu_msp430_common/RIOT/examples/hello-world »
```


### Issues/PRs references
Introduced by #19484, highlighted in #16727.


Co-authored-by: Marian Buschsieweke <marian.buschsieweke@posteo.net>
Co-authored-by: Fabian Hüßler <fabian.huessler@ml-pa.com>
Co-authored-by: Dylan Laduranty <dylan.laduranty@mesotic.com>
Co-authored-by: Hugues Larrive <hlarrive@pm.me>
2023-07-04 18:43:26 +00:00
Mingjie Shen
51ff6c3675 all/gnrc: fix null pointer dereference
Check return values of following functions for null:
    - gnrc_netif_iter
    - gnrc_netif_hdr_build
    - gnrc_pktsnip_search_type
    - gnrc_netif_get_by_pid
    - gnrc_netif_hdr_get_netif
    - _nib_drl_get
2023-06-22 19:43:30 -04:00