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

menuconfig NET_L2_IEEE802154
	bool "Enable IEEE 802.15.4 Radio"
	default n
	help
	  Add support for low rate WPAN IEEE 802.15.4 technology.

if NET_L2_IEEE802154

config NET_L2_IEEE802154_MGMT
	bool
	select NET_MGMT
	select NET_MGMT_EVENT
	default n

config NET_DEBUG_L2_IEEE802154
	bool "Enable IEEE 802.15.4 stack debug messages"
	default n
	default y if NET_LOG_GLOBAL
	depends on NET_LOG
	help
	  Enable it if you want to see what's happening. Only useful
	  for developers.

config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET
	bool "Enable IEEE 802.15.4 packet display"
	default n
	depends on NET_LOG
	help
	  Enable printing out in/out 802.15.4 packets. This is extremely
	  verbose, do not enable this unless you know what you are doing.

if NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET

choice
	prompt "Which packet do you want to print-out?"
	default NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_FULL

config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_FULL
	bool "Print-out both RX and TX packets"
	help
	  This will print-out both received and transmitted packets.

config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_RX
	bool "Print-out only RX packets"
	help
	  This will print-out received packets only.

config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_TX
	bool "Print-out only TX packets"
	help
	  This will print-out transmitted packets only.

endchoice

endif # NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET

config NET_L2_IEEE802154_ACK_REPLY
	bool "Enable IEEE 802.15.4 ACK reply logic"
	default n
	help
	  Enable inner stack's logic on handling ACK request. Note that
	  if the hw driver has an AUTOACK feature, this is then unnecessary.

choice
	prompt "Device features level support"
	default NET_L2_IEEE802154_RFD
	help
	  Select which features level you want on the device. Depending on it,
	  the device might expose more or less 802.15.4 protocol features.
	  Only RFD is supported for now.

config NET_L2_IEEE802154_RFD
	bool "Support Reduced Functionality Device level"
	select NET_L2_IEEE802154_MGMT
	help
	  This is the level for PAN device, not PAN coordinator. This will make
	  possible to do active and/or passive scans, as well as associating
	  and disassociating to/from a PAN. Current support is very fragile,
	  thus it is not set as the default level.
endchoice

config NET_L2_IEEE802154_SHELL
	bool "Enable IEEE 802.15.4 shell module"
	default n
	select CONSOLE_SHELL
	depends on NET_L2_IEEE802154_RFD
	help
	This can be used for testing 15.4 through the console via exposing
	a shell module named "ieee15_4".

config NET_L2_IEEE802154_FRAGMENT
	bool "Enable 802.15.4 fragmentation support"
	default y
	depends on NET_6LO
	help
	  If IPv6 packets size more than 802.15.4 MTU, packet is fragmented
	  and reassemble incoming packets according to RFC4944/6282.

config NET_L2_IEEE802154_FRAGMENT_REASS_CACHE_SIZE
	int "IEEE 802.15.4 Reassembly cache size"
	depends on NET_L2_IEEE802154_FRAGMENT
	default 1
	help
	  Simultaneously reassemble 802.15.4 fragments depending on
	  cache size.

config NET_L2_IEEE802154_REASSEMBLY_TIMEOUT
	int "IEEE 802.15.4 Reassembly timeout in seconds"
	depends on NET_L2_IEEE802154_FRAGMENT
	default 5
	range 1 60
	help
	  Reassembly timer will start as soon as first packet received
	  from peer. Reassembly should be finished within a given time.
	  Otherwise all accumulated fragments are dropped.

config  NET_DEBUG_L2_IEEE802154_FRAGMENT
	bool "Enable debug support for IEEE 802.15.4 fragmentation"
	depends on NET_L2_IEEE802154_FRAGMENT && NET_LOG
	default n
	default y if NET_LOG_GLOBAL

config NET_L2_IEEE802154_SECURITY
	bool "Enable IEEE 802.15.4 security [EXPERIMENTAL]"
	default n
	help
	Enable 802.15.4 frame security handling, in order to bring data
	confidentiality and authenticity.

config NET_L2_IEEE802154_SECURITY_CRYPTO_DEV_NAME
	string "Crypto device name used for <en/de>cryption"
	default ""
	depends on NET_L2_IEEE802154_SECURITY
	help
	This option should be used to set the crypto device name that
	IEEE 802.15.4 soft MAC will use to run authentication, encryption and
	decryption operations on incoming/outgoing frames.

source "subsys/net/ip/l2/ieee802154/Kconfig.radio"

endif
