If we receive an IPv4 that has broadcast destination address, then
properly handle it.
This means that for
* ICMPv4, if CONFIG_NET_ICMPV4_ACCEPT_BROADCAST is set (this is the
default value) and we receive echo-request then accept the packet.
Drop other ICMPv4 packets.
* TCP, drop the packet
* UDP, accept the packet if the destination address is the broadcast
address 255.255.255.255 or the subnet broadcast address.
Drop the packet if the packets broadcast address is not in our
configured subnet.
In sending side, make sure that we do not route broadcast address
IPv4 packets back to us. Also set Ethernet MAC destination address
properly if destination IPv4 address is broadcast one.
Fixes #10780
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
86 lines
2.1 KiB
Plaintext
86 lines
2.1 KiB
Plaintext
# Kconfig.ipv4 - IPv4 Options
|
|
|
|
#
|
|
# Copyright (c) 2016 Intel Corporation.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
menuconfig NET_IPV4
|
|
bool "IPv4"
|
|
help
|
|
Enable IPv4 support. If this is enabled then the device is
|
|
able to send and receive IPv4 network packets.
|
|
|
|
if NET_IPV4
|
|
|
|
config NET_INITIAL_TTL
|
|
int "Initial time to live for a connection"
|
|
default 64
|
|
help
|
|
The value should be > 0
|
|
|
|
config NET_IF_MAX_IPV4_COUNT
|
|
int "Max number of IPv4 network interfaces in the system"
|
|
default NET_VLAN_COUNT if NET_VLAN
|
|
default 1
|
|
help
|
|
This tells how many network interfaces there will be in the system
|
|
that will have IPv4 enabled.
|
|
|
|
config NET_IF_UNICAST_IPV4_ADDR_COUNT
|
|
int "Max number of unicast IPv4 addresses per network interface"
|
|
default 2 if NET_IPV4_AUTO
|
|
default 1
|
|
|
|
config NET_IF_MCAST_IPV4_ADDR_COUNT
|
|
int "Max number of multicast IPv4 addresses per network interface"
|
|
default 1
|
|
|
|
config NET_ICMPV4_ACCEPT_BROADCAST
|
|
bool "Accept broadcast ICMPv4 echo-request"
|
|
default y
|
|
help
|
|
If set, then respond to ICMPv4 echo-request that is sent to
|
|
broadcast address.
|
|
|
|
config NET_DHCPV4
|
|
bool "Enable DHCPv4 client"
|
|
depends on NET_IPV4
|
|
|
|
config NET_IPV4_AUTO
|
|
bool "Enable IPv4 autoconfiguration [EXPERIMENTAL]"
|
|
depends on NET_IPV4 && NET_ARP
|
|
help
|
|
Enables IPv4 auto IP address configuration (see RFC 3927)
|
|
|
|
module = NET_IPV4
|
|
module-dep = NET_LOG
|
|
module-str = Log level for core IPv4
|
|
module-help = Enables core IPv4 code to output debug messages.
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
|
|
module = NET_ICMPV4
|
|
module-dep = NET_LOG
|
|
module-str = Log level for ICMPv4
|
|
module-help = Enables ICMPv4 code to output debug messages.
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
|
|
if NET_DHCPV4
|
|
module = NET_DHCPV4
|
|
module-dep = NET_LOG
|
|
module-str = Log level for DHCPv4 client
|
|
module-help = Enable debug diagnostic from DHCPV4 client.
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
endif # NET_DHCPV4
|
|
|
|
if NET_IPV4_AUTO
|
|
module = NET_IPV4_AUTO
|
|
module-dep = NET_LOG
|
|
module-str = Log level for IPv4 autoconf client
|
|
module-help = Enable debug diagnostic from IPv4 autoconf client.
|
|
source "subsys/net/Kconfig.template.log_config.net"
|
|
endif # NET_IPV4_AUTO
|
|
|
|
endif # NET_IPV4
|