zephyr/subsys/net/ip
Robert Lubos 7b6e7d6088 net: ipv6: Improve Neighbor Discovery thread safety
Currently, the only thread-safe part of the IPv6 Neighbor processing
implementation are stale_counter related operation.

Fix this, by extending the mutex protection over all of the module, so
that message handlers, timers and API functions do not interfere with
each other.

As IPv6 Neighbor cache is tightly coupled with the Routing module, use
the same mutex to protect both, neighbor and routing tables, to prevent
deadlocks.

Also, replace the semaphore used with a mutex, as it seems more fit for
this particular job.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2024-02-09 16:34:34 -06:00
..
6lo.c net: ip: 6lo: Fix corner case with packet format after IPHC 2023-02-19 20:33:36 -05:00
6lo.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
6lo_private.h net: ip: 6lo (IPHC) uncompression rework 2019-07-25 15:19:28 +03:00
canbus_socket.c net: core: clean up inbound packet handling 2022-09-05 14:35:17 +00:00
canbus_socket.h net: can: Add CAN handling to net_context 2019-02-07 18:08:27 +02:00
CMakeLists.txt net: dhcpv6: Move DHCPv6 files to lib directory 2024-01-29 13:47:05 +01:00
connection.c net: conn: Improve thread safety in connection module 2023-12-06 09:23:54 +00:00
connection.h net: Add support for v4-mapping-to-v6 sockets 2023-10-23 09:57:22 -05:00
icmp.c net: ip: icmp: Cleanup packet on failed priority check 2023-11-27 19:59:26 +01:00
icmpv4.c net: icmp: Don't report error on ICMP messages w/o handler 2024-01-29 14:57:35 +00:00
icmpv4.h net: ip: Add option to force checksum calculation 2023-11-08 15:09:37 +00:00
icmpv6.c net: icmp: Don't report error on ICMP messages w/o handler 2024-01-29 14:57:35 +00:00
icmpv6.h net: ip: Add option to force checksum calculation 2023-11-08 15:09:37 +00:00
igmp.c net: ip: igmp: removed compiler warning when igmpv3 is enabled 2024-01-17 09:55:28 +01:00
ipv4.c net: dhcpv4: Move DHCPv4 files to lib directory 2024-01-29 13:47:05 +01:00
ipv4.h net: context: Add support for adjusting IPv4 multicast ttl 2023-12-04 15:07:43 +01:00
ipv4_autoconf.c random: Rename random header 2023-10-10 14:23:50 +03:00
ipv4_autoconf_internal.h includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
ipv4_fragment.c net: pkt: Add explicit flag to indicate packet is IP reassembled 2023-11-08 15:09:37 +00:00
ipv6.c net: ipv6: Check that received src address is not mine 2024-01-03 19:00:33 +00:00
ipv6.h net: ipv6: Improve Neighbor Discovery thread safety 2024-02-09 16:34:34 -06:00
ipv6_fragment.c net: pkt: Add explicit flag to indicate packet is IP reassembled 2023-11-08 15:09:37 +00:00
ipv6_mld.c net: ipv6_mld: Silently drop MLDv1 queries 2023-12-18 09:28:42 +01:00
ipv6_nbr.c net: ipv6: Improve Neighbor Discovery thread safety 2024-02-09 16:34:34 -06:00
Kconfig net: shell: Require float printf support from libc 2024-01-17 16:09:17 +00:00
Kconfig.debug kconfig: remove Enable from boolean prompts 2022-03-09 15:35:54 +01:00
Kconfig.ipv4 net: dhcpv4: Move DHCPv4 files to lib directory 2024-01-29 13:47:05 +01:00
Kconfig.ipv6 net: dhcpv6: Move DHCPv6 files to lib directory 2024-01-29 13:47:05 +01:00
Kconfig.mgmt net: ip: net_mgmt: Support system work queue and synchronous callbacks 2023-12-07 16:15:53 +00:00
Kconfig.stack kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.stats net: ip: stats: changed dependency for PPP stats 2023-09-15 15:13:06 -05:00
Kconfig.tcp net: ipv6: nbr: Add IPv6 reachability confirmation API 2024-01-31 14:50:53 +01:00
nbr.c all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
nbr.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_context.c net: context: Fix the v4 mapped address handling in sendto 2024-01-03 12:55:14 +01:00
net_core.c net: dhcpv6: Move DHCPv6 files to lib directory 2024-01-29 13:47:05 +01:00
net_if.c net: if: Do not join multicast address if IPv6 is not enabled 2024-01-29 10:58:24 +00:00
net_mgmt.c net: ip: net_mgmt: Support system work queue and synchronous callbacks 2023-12-07 16:15:53 +00:00
net_pkt.c net: pkt: Add function for allocating buffers w/o preconditions 2023-11-21 08:46:45 +00:00
net_private.h net: ipv4: Check localhost for incoming packet 2023-12-21 09:18:24 +01:00
net_stats.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_stats.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
net_tc.c net: fix thread function signatures 2023-10-30 12:24:34 +01:00
net_tc_mapping.h net: Enable running without TX or RX threads 2021-04-27 12:02:19 +03:00
net_timeout.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
packet_socket.c all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01:00
packet_socket.h net: socket: packet: using pckt sckt for passing the PPP dialup data 2021-04-01 09:43:56 +03:00
promiscuous.c subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
route.c net: ipv6: Improve Neighbor Discovery thread safety 2024-02-09 16:34:34 -06:00
route.h subsystems: migrate includes to <zephyr/...> 2022-05-09 12:07:35 +02:00
tcp.c net: tcp: Rate-limiting of neighbor reachability hints 2024-02-09 16:26:10 -06:00
tcp.h net: tcp: Rework data queueing API 2023-11-21 08:46:45 +00:00
tcp_internal.h net: tcp: Implement Keep-alive support 2023-12-11 10:11:10 +01:00
tcp_private.h net: tcp: Rate-limiting of neighbor reachability hints 2024-02-09 16:26:10 -06:00
tp.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
tp.h all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01:00
tp_priv.h includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
udp.c net: Verify L4 checksum unconditionally for reassembled packets 2023-11-08 15:09:37 +00:00
udp_internal.h net: ip: Add option to force checksum calculation 2023-11-08 15:09:37 +00:00
utils.c posix: Fix name collision with __bswap 2024-01-10 18:13:44 +00:00