#
#   Copyright (c) 2021 Project CHIP Authors
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#

menuconfig CHIP
	bool "Connected Home over IP protocol stack"
	default n
	select CPLUSPLUS
	imply LIB_CPLUSPLUS
	imply REQUIRES_FULL_LIBC
	imply CBPRINTF_LIBC_SUBSTS
	imply POSIX_API if !ARCH_POSIX
	imply EVENTFD if !ARCH_POSIX
	imply REBOOT
	imply ENTROPY_GENERATOR
	imply NET_UDP
	imply NET_IPV6
	imply NET_CONFIG_NEED_IPV6
	imply NET_SOCKETS
	imply NETWORKING
	help
	  This option enables Connected Home over IP libraries.

if CHIP

config CHIP_DEVICE_VENDOR_ID
	int "Device vendor ID"
	default 65521 # 0xFFF1
	range 0 65535
	help
	  Identifier of the device manufacturer, assigned by Connectivity Standards
	  Alliance. It is used in various CHIP areas, such as the Basic Information
	  cluster or OTA (Over-the-air update) image header.

config CHIP_DEVICE_PRODUCT_ID
	int "Device product ID"
	default 32768 # 0x8000
	range 0 65535
	help
	  Identifier of the product, assigned by the device manufacturer. It is used
	  in various CHIP areas, such as the Basic Information cluster or OTA
	  (Over-the-air update) image header.

config CHIP_DEVICE_SOFTWARE_VERSION
	int "Device software version"
	default 0
	range 0 4294967295
	help
	  A number identifying the software version. It is used in various CHIP
	  areas, such as the Basic Information cluster or OTA (Over-the-air update)
	  image header. Note that due to the rollback protection a device will only
	  accept a software update whose version is greater than the current one.

config CHIP_DEVICE_SOFTWARE_VERSION_STRING
	string "Device software version string"
	default "prerelease"
	help
	  A string between 1 and 64 characters that provides a user-friendly
	  description of the numeric software version specified in
	  CHIP_DEVICE_SOFTWARE_VERSION. It is used in various CHIP areas, such as
	  the Basic Information cluster or OTA (Over-the-air update) image header.

config CHIP_PROJECT_CONFIG
	string "Project configuration file for CHIP"
	help
	  Project configuration file for CHIP. If specified, CHIP generic
	  configuration files will include the project configuration file which can
	  be used to override any CHIP default or platform-specific settings.

config CHIP_OPENTHREAD_CONFIG
	string "Custom OpenThread configuration file"
	help
	  This option can be used to replace Zephyr-supplied OpenThread
	  configuration file with a custom one.

config CHIP_LIB_SHELL
	bool "Enable CHIP shell library"
	default n
	imply SHELL
	help
	  Link the application with the library containing CHIP shell commands.

config CHIP_PW_RPC
	bool "Enable Pigweed RPC library"
	default n
	help
	  Link the application with the library containing Pigweed RPC functionalities.

config CHIP_BUILD_TESTS
	bool "Build CHIP unit tests"
	default n
	help
	  This option enables building CHIP unit tests.

config CHIP_DISABLE_CHIPOBLE_ADVERTISING_WHEN_PROVISIONED
	bool "Disable CHIPoBLE advertising when device is fully provisioned"
	default y
	help
	  Disable CHIPoBLE advertising when the device achieves a fully provisioned state.

config CHIP_ENABLE_PAIRING_AUTOSTART
	bool "Enable pairing autostart"
	default n
	help
	  Open pairing window automatically at application boot time.

config CHIP_ENABLE_DNSSD_SRP
	bool "Enable support for service registration"
	default y
	imply OPENTHREAD_ECDSA
	imply OPENTHREAD_SRP_CLIENT
	help
	  Enables DNS-SD SRP client support

config CHIP_ENABLE_DNS_CLIENT
	bool "Enable support for DNS client"
	default y
	imply OPENTHREAD_DNS_CLIENT
	help
	  Enables DNS client support used for resolving and browsing services.

config CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT
	bool "Enable sleepy end device support"
	default n
	depends on OPENTHREAD_MTD
	imply OPENTHREAD_MTD_SED
	help
	  Enables Thread Sleepy End Device support in Matter.

if CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT

config CHIP_SED_IDLE_INTERVAL
	int "Sleepy End Device idle interval (ms)"
	default 1000
	help
	  SED wake interval in milliseconds while the device is idle, meaning that
	  there is no active exchange to or from the device, and its commissioning
	  window is closed.

config CHIP_SED_ACTIVE_INTERVAL
	int "Sleepy End Device active interval (ms)"
	default 200
	help
	  SED wake interval in milliseconds while the device is active, meaning that
	  there is an active exchange to or from the device, or its commissioning
	  window is open.

endif # CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT

config CHIP_THREAD_SSED
	  bool "Enable Thread Synchronized Sleepy End Device support"
	  depends on OPENTHREAD_CSL_RECEIVER && CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT
	  help
		Enables Thread Synchronized Sleepy End Device support in Matter.

config CHIP_OTA_REQUESTOR
	bool "Enable OTA requestor"
	help
	  Enables OTA (Over-the-air) Requestor role that allows a device to perform
	  Device Firmware Upgrade by quering and downloading a new firmware image
	  from an external OTA Provider node.

config CHIP_ROTATING_DEVICE_ID
	bool "Enable rotating device ID support"
	help
	  Enables rotating device identifier that provides a non-trackable identifier
	  which is unique per device and rotates at pre-defined moments.

config CHIP_COMMISSIONABLE_DEVICE_TYPE
	bool "Enable the device type subtype in commissionable node discovery record"
	depends on CHIP_ENABLE_DNSSD_SRP
	help
	  Enables including device type subtype in the commissionable node discovery record,
	  which allows filtering of the results to find the nodes that match the device type.

config CHIP_DEVICE_TYPE
	int "Device type"
	default 65535
	range 0 65535
	help
	  Type of device that uses the CHIP Device Type Identifier. The default value means invalid device type.

config CHIP_OPERATIONAL_TIME_SAVE_INTERVAL
	int "Interval of saving node operation time to flash in hours unit"
	default 10
	range 1 4294967295
	help
	  Interval in hours with which the node operation time is saved to the flash
	  memory. Selected value is a trade off between performing frequent saves to know
	  precisely operation time in case of device reboot and maximizing flash memory
	  lifetime.

config CHIP_MALLOC_SYS_HEAP
	bool "Memory allocator based on Zephyr sys_heap"
	imply SYS_HEAP_RUNTIME_STATS
	help
	  Enable memory allocation functions, imitating with the default malloc,
	  calloc, realloc and free, based on sys_heap from Zephyr RTOS.

if CHIP_MALLOC_SYS_HEAP

config CHIP_MALLOC_SYS_HEAP_OVERRIDE
	bool "Override default allocator with custom one based on Zephyr sys_heap"
	default y
	help
	  Replace the default memory allocation functions, such as malloc, calloc,
	  realloc, free and their reentrant versions, with their counterparts based
	  on sys_heap from Zephyr RTOS.

config CHIP_MALLOC_SYS_HEAP_SIZE
	int "Heap size used by memory allocator based on Zephyr sys_heap"
	default 16384 # 16kB
	help
	  This value controls how much of the device RAM is reserved for the heap
	  used by the memory allocation functions based on sys_heap from Zephyr
	  RTOS.

endif

config APP_LINK_WITH_CHIP
	bool "Link 'app' with Connected Home over IP"
	default y
	help
	  Add Connected Home over IP header files to the 'app' include path
	  and link the 'app' with Connected Home over IP libraries.

config CHIP_OTA_IMAGE_BUILD
	bool "Generate OTA image"
	help
	  Enable building Matter OTA (Over-the-air update) image.

if CHIP_OTA_IMAGE_BUILD

config CHIP_OTA_IMAGE_FILE_NAME
	string "OTA image file name"
	default "matter.ota"
	help
	  File name of the generated Matter OTA image.

config CHIP_OTA_IMAGE_EXTRA_ARGS
	string "OTA image creator extra arguments"
	help
	  This option allows one to pass optional arguments to the ota_image_tool.py
	  script, used for building OTA image.

endif

config CHIP_EXTENDED_DISCOVERY
	bool "Enable extended discovery"
	help
	  Enables the device to advertise commissionable service when not in the
	  commissioning mode.

module = MATTER
module-str = Matter
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"

endif
