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_private.h
6lo.c
6lo.h
canbus_socket.c
canbus_socket.h
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_autoconf_internal.h
ipv4_autoconf.c random: Rename random header 2023-10-10 14:23:50 +03:00
ipv4_fragment.c net: pkt: Add explicit flag to indicate packet is IP reassembled 2023-11-08 15:09:37 +00: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
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
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
Kconfig net: shell: Require float printf support from libc 2024-01-17 16:09:17 +00:00
Kconfig.debug
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.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
nbr.h
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
net_stats.h
net_tc_mapping.h
net_tc.c net: fix thread function signatures 2023-10-30 12:24:34 +01:00
net_timeout.c
packet_socket.c
packet_socket.h
promiscuous.c
route.c net: ipv6: Improve Neighbor Discovery thread safety 2024-02-09 16:34:34 -06:00
route.h
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
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
tp_priv.h
tp.c
tp.h
udp_internal.h net: ip: Add option to force checksum calculation 2023-11-08 15:09:37 +00:00
udp.c net: Verify L4 checksum unconditionally for reassembled packets 2023-11-08 15:09:37 +00:00
utils.c posix: Fix name collision with __bswap 2024-01-10 18:13:44 +00:00