1# Copyright (c) 2016 Intel Corporation.
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig NET_L2_IEEE802154
5	bool "Enable IEEE 802.15.4 Radio"
6	help
7	  Add support for low rate WPAN IEEE 802.15.4 technology.
8
9if NET_L2_IEEE802154
10
11config NET_L2_IEEE802154_MGMT
12	bool
13	select NET_MGMT
14	select NET_MGMT_EVENT
15
16config NET_L2_IEEE802154_SUB_GHZ
17	bool
18	help
19	  Enable support for Sub-GHz devices. This will add a tiny bit more
20	  logic in L2 code for channel management. This option is automatically
21	  selected when relevant device driver is enabled.
22
23module = NET_L2_IEEE802154
24module-dep = NET_LOG
25module-str = Log level for IEEE 802.15.4
26module-help = Enables IEEE 802.15.4 code to output debug messages.
27source "subsys/net/Kconfig.template.log_config.net"
28
29config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET
30	bool "Enable IEEE 802.15.4 packet display"
31	depends on NET_LOG
32	help
33	  Enable printing out in/out 802.15.4 packets. This is extremely
34	  verbose, do not enable this unless you know what you are doing.
35
36choice
37	prompt "Which packet do you want to print-out?"
38	default NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_FULL
39	depends on NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET
40
41config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_FULL
42	bool "Print-out both RX and TX packets"
43	help
44	  This will print-out both received and transmitted packets.
45
46config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_RX
47	bool "Print-out only RX packets"
48	help
49	  This will print-out received packets only.
50
51config NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_TX
52	bool "Print-out only TX packets"
53	help
54	  This will print-out transmitted packets only.
55
56endchoice
57
58config NET_L2_IEEE802154_ACK_REPLY
59	bool "Enable IEEE 802.15.4 ACK reply logic"
60	help
61	  Enable inner stack's logic on handling ACK request. Note that
62	  if the hw driver has an AUTOACK feature, this is then unnecessary.
63
64choice
65	prompt "Device features level support"
66	default NET_L2_IEEE802154_RFD
67	help
68	  Select which features level you want on the device. Depending on it,
69	  the device might expose more or less 802.15.4 protocol features.
70	  Only RFD is supported for now.
71
72config NET_L2_IEEE802154_RFD
73	bool "Support Reduced Functionality Device level"
74	select NET_L2_IEEE802154_MGMT
75	help
76	  This is the level for PAN device, not PAN coordinator. This will make
77	  possible to do active and/or passive scans, as well as associating
78	  and disassociating to/from a PAN. Current support is very fragile,
79	  thus it is not set as the default level.
80endchoice
81
82config NET_L2_IEEE802154_SHELL
83	bool "Enable IEEE 802.15.4 shell module"
84	select SHELL
85	depends on NET_L2_IEEE802154_RFD
86	help
87	  This can be used for testing 15.4 through the console via exposing
88	  a shell module named "ieee15_4".
89
90config NET_L2_IEEE802154_FRAGMENT
91	bool "Enable 802.15.4 fragmentation support"
92	default y
93	depends on NET_6LO
94	help
95	  If IPv6 packets size more than 802.15.4 MTU, packet is fragmented
96	  and reassemble incoming packets according to RFC4944/6282.
97
98config NET_L2_IEEE802154_FRAGMENT_REASS_CACHE_SIZE
99	int "IEEE 802.15.4 Reassembly cache size"
100	depends on NET_L2_IEEE802154_FRAGMENT
101	default 1
102	help
103	  Simultaneously reassemble 802.15.4 fragments depending on
104	  cache size.
105
106config NET_L2_IEEE802154_REASSEMBLY_TIMEOUT
107	int "IEEE 802.15.4 Reassembly timeout in seconds"
108	depends on NET_L2_IEEE802154_FRAGMENT
109	default 5
110	range 1 60
111	help
112	  Reassembly timer will start as soon as first packet received
113	  from peer. Reassembly should be finished within a given time.
114	  Otherwise all accumulated fragments are dropped.
115
116config NET_L2_IEEE802154_SECURITY
117	bool "Enable IEEE 802.15.4 security [EXPERIMENTAL]"
118	help
119	  Enable 802.15.4 frame security handling, in order to bring data
120	  confidentiality and authenticity.
121
122config NET_L2_IEEE802154_SECURITY_CRYPTO_DEV_NAME
123	string "Crypto device name used for <en/de>cryption"
124	default ""
125	depends on NET_L2_IEEE802154_SECURITY
126	help
127	  This option should be used to set the crypto device name that
128	  IEEE 802.15.4 soft MAC will use to run authentication, encryption and
129	  decryption operations on incoming/outgoing frames.
130
131source "subsys/net/l2/ieee802154/Kconfig.radio"
132
133endif
134