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