# 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
	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
