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

menu "Link layer options"

config NET_L2_DUMMY
	bool "Dummy l2 layer"
	default y if !NET_L2_ETHERNET && NET_TEST
	help
	  Add a dummy L2 layer driver. This is usually only needed when
	  simulating a network interface when running network stack inside QEMU.

if NET_L2_DUMMY

source "subsys/net/l2/dummy/Kconfig"

endif

source "subsys/net/l2/virtual/Kconfig"

source "subsys/net/l2/ethernet/Kconfig"

source "subsys/net/l2/ppp/Kconfig"

config NET_L2_PHY_IEEE802154
	bool
	help
	  A common config for all IEEE 802.15.4 based L2 implementations.

source "subsys/net/l2/ieee802154/Kconfig"

source "subsys/net/l2/openthread/Kconfig"

config NET_L2_CUSTOM_IEEE802154
	bool "Custom IEEE802154 L2"
	select NET_L2_PHY_IEEE802154
	help
	  Enable custom IEEE802154 based L2. Zephyr does not provide
	  implementation for this L2 - users can implement their own L2 using
	  this symbol, on top of the IEEE802154 radio driver.

config NET_L2_CUSTOM_IEEE802154_MTU
	int "MTU for the custom IEEE802154 L2"
	depends on NET_L2_CUSTOM_IEEE802154
	default 127

source "subsys/net/l2/canbus/Kconfig"

config NET_L2_WIFI_UTILS
	bool
	help
	  This provides utility functions for Wi-Fi subsystem.

config NET_L2_WIFI_MGMT
	bool "Wi-Fi Management support"
	select NET_MGMT
	select NET_MGMT_EVENT
	select NET_MGMT_EVENT_INFO
	select NET_L2_WIFI_UTILS
	help
	  Enable support for Wi-Fi Management interface.

if NET_L2_WIFI_MGMT

module = NET_L2_WIFI_MGMT
module-dep = NET_LOG
module-str = Log level for Wi-Fi management layer
module-help = Enables Wi-Fi management interface to output debug messages.
source "subsys/net/Kconfig.template.log_config.net"
source "subsys/net/l2/wifi/Kconfig"

endif # NET_L2_WIFI_MGMT

config NET_L2_WIFI_SHELL
	bool "Wi-Fi shell module"
	select NET_L2_WIFI_MGMT
	select NET_L2_WIFI_UTILS
	select SHELL_GETOPT
	select GETOPT_LONG
	help
	  This can be used for controlling Wi-Fi through the console via
	  exposing a shell module named "wifi".

config NET_L2_PTP
	bool "PTP L2 support [DEPRECATED]"
	select DEPRECATED
	select PTP_CLOCK
	select NET_L2_PTP_TIMESTAMPING
	help
	  This Kconfig is deprecated. Use NET_L2_PTP_TIMESTAMPING instead.

config NET_L2_PTP_TIMESTAMPING
	bool "PTP timestamping support on L2"
	select NET_PKT_TIMESTAMP
	select NET_PKT_TIMESTAMP_THREAD
	depends on PTP_CLOCK
	help
	  Enable PTP timestamping support on L2.

endmenu
