zephyr/subsys/net/ip/Kconfig.ipv4
Jukka Rissanen 7d83543379 net: Properly handle pkt IPv4 broadcast destination address
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>
2018-10-26 15:37:21 +03:00

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