# Kconfig.ipv4 - IPv4 Options

#
# Copyright (c) 2016 Intel Corporation.
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig NET_IPV4
	bool "IPv4"
	default n
	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_UNICAST_IPV4_ADDR_COUNT
	int "Max number of unicast IPv4 addresses per network interface"
	default 1

config NET_IF_MCAST_IPV4_ADDR_COUNT
	int "Max number of multicast IPv4 addresses per network interface"
	default 1

config NET_DHCPV4
	bool "Enable DHCPv4 client"
	depends on NET_IPV4
	default n

if NET_LOG

config NET_DEBUG_IPV4
	bool "Debug core IPv4"
	default n
	help
	Enables core IPv4 code part to output debug messages

config NET_DEBUG_ICMPV4
	bool "Debug ICMPv4"
	default n
	help
	Enables ICMPv4 code part to output debug messages

config NET_DEBUG_DHCPV4
	bool "Debug DHCPv4 client"
	depends on NET_DHCPV4
	default n
	help
	Enable debug diagnostic from DHCPV4 client.

endif # NET_LOG

endif # NET_IPV4
