# Copyright Runtime.io 2018. All rights reserved.
# Copyright Nordic Semiconductor ASA 2020-2022. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# The Kconfig file is dedicated to Stat management group of
# of MCUmgr subsystem and provides Kconfig options to configure
# group commands behaviour and other aspects.
#
# Options defined in this file should be prefixed:
#  MCUMGR_GRP_STAT_ -- general group options;
#
# When adding Kconfig options, that control the same feature,
# try to group them together by the same stem after prefix.

menuconfig MCUMGR_GRP_STAT
	bool "Mcumgr handlers for statistics management"
	depends on STATS
	select MCUMGR_SMP_CBOR_MIN_DECODING_LEVEL_2
	select MCUMGR_SMP_CBOR_MIN_ENCODING_LEVEL_3 if ZCBOR_CANONICAL
	help
	  Enables MCUmgr handlers for statistics management.

if MCUMGR_GRP_STAT

config MCUMGR_GRP_STAT_MAX_NAME_LEN
	int "Maximum stat group name length"
	default 32
	depends on MCUMGR_GRP_STAT
	help
	  Limits the maximum stat group name length in MCUmgr requests, in bytes.
	  A buffer of this size gets allocated on the stack during handling of all
	  stat read commands.  If a stat group's name exceeds this limit, it will
	  be impossible to retrieve its values with a stat show command.

module = MCUMGR_GRP_STAT
module-str = mcumgr_grp_stat
source "subsys/logging/Kconfig.template.log_config"

endif # MCUMGR_GRP_STAT
