# Kconfig - net stack configuration options

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

menu "Networking"

config NET_BUF
	bool "Network buffer support"
	help
	  This option enables support for generic network protocol
	  buffers.

if NET_BUF

config NET_BUF_USER_DATA_SIZE
	int "Size of user_data available in every network buffer"
	default 8 if BT
	default 4
	range 8 65535 if BT
	range 0 65535
	help
	  Amount of memory reserved in each network buffer for user data. In
	  most cases this can be left as the default value.

config NET_BUF_LOG
	bool "Network buffer logging"
	select LOG
	help
	  Enable logs and checks for the generic network buffers.

module = NET_BUF
module-str = net_buf
source "subsys/logging/Kconfig.template.log_config"

if NET_BUF_LOG

config NET_BUF_WARN_ALLOC_INTERVAL
	int "Interval of Network buffer allocation warnings"
	default 1
	range 0 60
	help
	  Interval in seconds of Network buffer allocation warnings which are
	  generated when a buffer cannot immediately be allocated with K_FOREVER
	  which may lead to deadlocks. Setting it to 0 makes warnings to be
	  printed only once per allocation.

config NET_BUF_SIMPLE_LOG
	bool "Network buffer memory debugging"
	select LOG
	help
	  Enable extra debug logs and checks for the generic network buffers.

endif # NET_BUF_LOG

config NET_BUF_POOL_USAGE
	bool "Network buffer pool usage tracking"
	help
	  Enable network buffer pool tracking. This means that:
	  * amount of free buffers in the pool is remembered
	  * total size of the pool is calculated
	  * pool name is stored and can be shown in debugging prints

endif # NET_BUF

config  NETWORKING
	bool "Link layer and IP networking support"
	select NET_BUF
	select POLL
	select ENTROPY_GENERATOR
	help
	  This option enabled generic link layer and IP networking support.

if NETWORKING

source "subsys/net/Kconfig.hostname"

source "subsys/net/l2/Kconfig"

source "subsys/net/ip/Kconfig"

source "subsys/net/lib/Kconfig"

endif

endmenu
