zephyr/subsys/net/ip
Tobias Frauenschläger dcc63120cf net: sockets: add support for SO_REUSEPORT
This commits adds support for the SO_REUSEPORT socket option.

The implementation follows the behavior of BSD and tries to also follow
the specific additional features of linux with the following
limitations:
* SO_REUSEADDR and SO_REUSEPORT are not "the same" for client sockets,
  as we do not have a trivial way so identify a socket as "client"
  during binding. To get the Linux behavior, one has to use SO_REUSEPORT
  with Zephyr
* No prevention of "port hijacking"
* No support for the load balancing stuff for incoming
  packets/connections

There is also a new Kconfig option to control this feature, which is
enabled by default if TCP or UDP is enabled.

Signed-off-by: Tobias Frauenschläger <t.frauenschlaeger@me.com>
2023-09-20 08:56:31 +02:00
..
6lo_private.h
6lo.c
6lo.h
canbus_socket.c
canbus_socket.h
CMakeLists.txt
connection.c net: sockets: add support for SO_REUSEPORT 2023-09-20 08:56:31 +02:00
connection.h
dhcpv4.c
dhcpv4.h
icmpv4.c net: Add configuration option to allow any priority 2023-09-12 21:26:28 -04:00
icmpv4.h net: Add priority to ping 2023-09-12 21:26:28 -04:00
icmpv6.c net: Add configuration option to allow any priority 2023-09-12 21:26:28 -04:00
icmpv6.h net: Add priority to ping 2023-09-12 21:26:28 -04:00
igmp.c
ipv4_autoconf_internal.h
ipv4_autoconf.c
ipv4_fragment.c net: fix few mismatched CONTAINER_OF 2023-08-30 10:21:31 +02:00
ipv4.c
ipv4.h
ipv6_fragment.c net: fix few mismatched CONTAINER_OF 2023-08-30 10:21:31 +02:00
ipv6_mld.c
ipv6_nbr.c
ipv6.c
ipv6.h
Kconfig net: sockets: add support for SO_REUSEPORT 2023-09-20 08:56:31 +02:00
Kconfig.debug
Kconfig.ipv4
Kconfig.ipv6
Kconfig.mgmt
Kconfig.stack
Kconfig.stats net: ip: stats: changed dependency for PPP stats 2023-09-15 15:13:06 -05:00
nbr.c
nbr.h
net_context.c net: sockets: add support for SO_REUSEPORT 2023-09-20 08:56:31 +02:00
net_core.c
net_if.c net: ip: use default interface while matching LL src address 2023-09-19 15:24:04 +01:00
net_mgmt.c net: mgmt: Fix memory corruption in wait_on_iface 2023-09-07 09:44:06 +02:00
net_pkt.c kernel: Modify the signature of k_mem_slab_free() 2023-09-03 18:20:59 -04:00
net_private.h net: sockets: add support for SO_REUSEPORT 2023-09-20 08:56:31 +02:00
net_shell.c net: Add priority to ping 2023-09-12 21:26:28 -04:00
net_shell.h
net_stats.c
net_stats.h
net_tc_mapping.h
net_tc.c
net_timeout.c
packet_socket.c
packet_socket.h
promiscuous.c
route.c net: fix few mismatched CONTAINER_OF 2023-08-30 10:21:31 +02:00
route.h
tcp_internal.h
tcp_private.h
tcp.c net: sockets: add support for SO_REUSEADDR 2023-09-20 08:56:31 +02:00
tcp.h
tp_priv.h
tp.c
tp.h
trickle.c
udp_internal.h
udp.c
utils.c