Linux preempt-rt

Check our new training course

Real-Time Linux with PREEMPT_RT

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

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

menuconfig NET_L2_IEEE802154
	bool "Enable IEEE 802.15.4 Radio"
	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

config NET_L2_IEEE802154_SUB_GHZ
	bool
	help
	  Enable support for Sub-GHz devices. This will add a tiny bit more
	  logic in L2 code for channel management. This option is automatically
	  selected when relevant device driver is enabled.

module = NET_L2_IEEE802154
module-dep = NET_LOG
module-str = Log level for IEEE 802.15.4
module-help = Enables IEEE 802.15.4 code to output debug messages.
source "subsys/net/Kconfig.template.log_config.net"

config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET
	bool "Enable IEEE 802.15.4 packet display"
	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"
	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"
	select 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 y if NET_L2_IEEE802154_LOG_LEVEL_DBG

config NET_L2_IEEE802154_SECURITY
	bool "Enable IEEE 802.15.4 security [EXPERIMENTAL]"
	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/l2/ieee802154/Kconfig.radio"

endif