# 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
