I think people might be reading differences into 'if' and 'depends on'
that aren't there, like maybe 'if' being needed to "hide" a symbol,
while 'depends on' just adds a dependency.
There are no differences between 'if' and 'depends on'. 'if' is just a
shorthand for 'depends on'. They work the same when it comes to creating
implicit menus too.
The way symbols get "hidden" is through their dependencies not being
satisfied ('if'/'depends on' get copied up as a dependency on the
prompt).
Since 'if' and 'depends on' are the same, an 'if' with just a single
symbol in it can be replaced with a 'depends on'. IMO, it's best to
avoid 'if' there as a style choice too, because it confuses people into
thinking there's deep Kconfig magic going on that requires 'if'.
Going for 'depends on' can also remove some nested 'if's, which
generates nicer symbol information and docs, because nested 'if's really
are so simple/dumb that they just add the dependencies from both 'if's
to all symbols within.
Replace a bunch of single-symbol 'if's with 'depends on' to despam the
Kconfig files a bit and make it clearer how things work. Also do some
other minor related dependency refactoring.
The replacement isn't complete. Will fix up the rest later. Splitting it
a bit to make it more manageable.
(Everything above is true for choices, menus, and comments as well.)
Detected by tweaking the Kconfiglib parsing code. It's impossible to
detect after parsing, because 'if' turns into 'depends on'.
Signed-off-by: Ulf Magnusson <Ulf.Magnusson@nordicsemi.no>
134 lines
4.0 KiB
Plaintext
134 lines
4.0 KiB
Plaintext
# 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.
|
|
|
|
choice
|
|
prompt "Which packet do you want to print-out?"
|
|
default NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET_FULL
|
|
depends on NET_DEBUG_L2_IEEE802154_DISPLAY_PACKET
|
|
|
|
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
|
|
|
|
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_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
|