mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 00:51:42 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1243 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1243 lines
		
	
	
		
			53 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
if BLE_MESH
 | 
						|
 | 
						|
    config BLE_MESH_HCI_5_0
 | 
						|
        bool "Support sending 20ms non-connectable adv packets"
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            It is a temporary solution and needs further modifications.
 | 
						|
 | 
						|
    config BLE_MESH_USE_DUPLICATE_SCAN
 | 
						|
        bool "Support Duplicate Scan in BLE Mesh"
 | 
						|
        depends on BT_BLUEDROID_ENABLED
 | 
						|
        select BTDM_BLE_SCAN_DUPL if IDF_TARGET_ESP32
 | 
						|
        select BTDM_BLE_MESH_SCAN_DUPL_EN if IDF_TARGET_ESP32
 | 
						|
        select BT_CTRL_BLE_SCAN_DUPL if IDF_TARGET_ESP32C3
 | 
						|
        select BT_CTRL_BLE_MESH_SCAN_DUPL_EN if IDF_TARGET_ESP32C3
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Enable this option to allow using specific duplicate scan filter
 | 
						|
            in BLE Mesh, and Scan Duplicate Type must be set by choosing the
 | 
						|
            option in the Bluetooth Controller section in menuconfig, which is
 | 
						|
            "Scan Duplicate By Device Address and Advertising Data".
 | 
						|
 | 
						|
    choice BLE_MESH_MEM_ALLOC_MODE
 | 
						|
        prompt "Memory allocation strategy"
 | 
						|
        default BLE_MESH_MEM_ALLOC_MODE_INTERNAL
 | 
						|
        help
 | 
						|
            Allocation strategy for BLE Mesh stack, essentially provides ability to
 | 
						|
            allocate all required dynamic allocations from,
 | 
						|
 | 
						|
            - Internal DRAM memory only
 | 
						|
            - External SPIRAM memory only
 | 
						|
            - Either internal or external memory based on default malloc()
 | 
						|
              behavior in ESP-IDF
 | 
						|
            - Internal IRAM memory wherever applicable else internal DRAM
 | 
						|
 | 
						|
            Recommended mode here is always internal (*), since that is most preferred
 | 
						|
            from security perspective. But if application requirement does not
 | 
						|
            allow sufficient free internal memory then alternate mode can be
 | 
						|
            selected.
 | 
						|
 | 
						|
            (*) In case of ESP32-S2/ESP32-S3, hardware allows encryption of external
 | 
						|
            SPIRAM contents provided hardware flash encryption feature is enabled.
 | 
						|
            In that case, using external SPIRAM allocation strategy is also safe choice
 | 
						|
            from security perspective.
 | 
						|
 | 
						|
        config BLE_MESH_MEM_ALLOC_MODE_INTERNAL
 | 
						|
            bool "Internal DRAM"
 | 
						|
 | 
						|
        config BLE_MESH_MEM_ALLOC_MODE_EXTERNAL
 | 
						|
            bool "External SPIRAM"
 | 
						|
            depends on SPIRAM_USE_CAPS_ALLOC || SPIRAM_USE_MALLOC
 | 
						|
 | 
						|
        config BLE_MESH_MEM_ALLOC_MODE_DEFAULT
 | 
						|
            bool "Default alloc mode"
 | 
						|
            help
 | 
						|
                Enable this option to use the default memory allocation strategy when
 | 
						|
                external SPIRAM is enabled. See the SPIRAM options for more details.
 | 
						|
 | 
						|
        config BLE_MESH_MEM_ALLOC_MODE_IRAM_8BIT
 | 
						|
            bool "Internal IRAM"
 | 
						|
            depends on ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY
 | 
						|
            help
 | 
						|
                Allows to use IRAM memory region as 8bit accessible region. Every
 | 
						|
                unaligned (8bit or 16bit) access will result in an exception and
 | 
						|
                incur penalty of certain clock cycles per unaligned read/write.
 | 
						|
 | 
						|
    endchoice # BLE_MESH_MEM_ALLOC_MODE
 | 
						|
 | 
						|
    config BLE_MESH_FREERTOS_STATIC_ALLOC
 | 
						|
        bool "Enable FreeRTOS static allocation"
 | 
						|
        depends on FREERTOS_SUPPORT_STATIC_ALLOCATION && ((IDF_TARGET_ESP32 && SPIRAM) || ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY) # NOERROR
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            Enable this option to use FreeRTOS static allocation APIs for BLE Mesh,
 | 
						|
            which provides the ability to use different dynamic memory (i.e. SPIRAM
 | 
						|
            or IRAM) for FreeRTOS objects.
 | 
						|
            If this option is disabled, the FreeRTOS static allocation APIs will not
 | 
						|
            be used, and internal DRAM will be allocated for FreeRTOS objects.
 | 
						|
 | 
						|
    choice BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
 | 
						|
        prompt "Memory allocation for FreeRTOS objects"
 | 
						|
        depends on BLE_MESH_FREERTOS_STATIC_ALLOC
 | 
						|
        help
 | 
						|
            Choose the memory to be used for FreeRTOS objects.
 | 
						|
 | 
						|
        config BLE_MESH_FREERTOS_STATIC_ALLOC_EXTERNAL
 | 
						|
            bool "External SPIRAM"
 | 
						|
            depends on IDF_TARGET_ESP32 && SPIRAM
 | 
						|
            help
 | 
						|
                If enabled, BLE Mesh allocates dynamic memory from external SPIRAM for
 | 
						|
                FreeRTOS objects, i.e. mutex, queue, and task stack. External SPIRAM
 | 
						|
                can only be used for task stack when SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
 | 
						|
                is enabled. See the SPIRAM options for more details.
 | 
						|
 | 
						|
        config BLE_MESH_FREERTOS_STATIC_ALLOC_IRAM_8BIT
 | 
						|
            bool "Internal IRAM"
 | 
						|
            depends on ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY
 | 
						|
            help
 | 
						|
                If enabled, BLE Mesh allocates dynamic memory from internal IRAM for
 | 
						|
                FreeRTOS objects, i.e. mutex, queue. Note: IRAM region cannot be used
 | 
						|
                as task stack.
 | 
						|
 | 
						|
    endchoice # BLE_MESH_FREERTOS_STATIC_ALLOC_MODE
 | 
						|
 | 
						|
    config BLE_MESH_DEINIT
 | 
						|
        bool "Support de-initialize BLE Mesh stack"
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            If enabled, users can use the function esp_ble_mesh_deinit() to de-initialize
 | 
						|
            the whole BLE Mesh stack.
 | 
						|
 | 
						|
    menu "BLE Mesh and BLE coexistence support"
 | 
						|
 | 
						|
        config BLE_MESH_SUPPORT_BLE_ADV
 | 
						|
            bool "Support sending normal BLE advertising packets"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When selected, users can send normal BLE advertising packets
 | 
						|
                with specific API.
 | 
						|
 | 
						|
        if BLE_MESH_SUPPORT_BLE_ADV
 | 
						|
 | 
						|
            config BLE_MESH_BLE_ADV_BUF_COUNT
 | 
						|
                int "Number of advertising buffers for BLE advertising packets"
 | 
						|
                default 3
 | 
						|
                range 1 255
 | 
						|
                help
 | 
						|
                    Number of advertising buffers for BLE packets available.
 | 
						|
 | 
						|
        endif # BLE_MESH_SUPPORT_BLE_ADV
 | 
						|
 | 
						|
        config BLE_MESH_SUPPORT_BLE_SCAN
 | 
						|
            bool "Support scanning normal BLE advertising packets"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When selected, users can register a callback and receive normal BLE
 | 
						|
                advertising packets in the application layer.
 | 
						|
 | 
						|
    endmenu # BLE Mesh and BLE coexistence support
 | 
						|
 | 
						|
    config BLE_MESH_FAST_PROV
 | 
						|
        bool "Enable BLE Mesh Fast Provisioning"
 | 
						|
        select BLE_MESH_NODE
 | 
						|
        select BLE_MESH_PROVISIONER
 | 
						|
        select BLE_MESH_PB_ADV
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            Enable this option to allow BLE Mesh fast provisioning solution to be used.
 | 
						|
            When there are multiple unprovisioned devices around, fast provisioning can
 | 
						|
            greatly reduce the time consumption of the whole provisioning process.
 | 
						|
            When this option is enabled, and after an unprovisioned device is provisioned
 | 
						|
            into a node successfully, it can be changed to a temporary Provisioner.
 | 
						|
 | 
						|
    config BLE_MESH_NODE
 | 
						|
        bool "Support for BLE Mesh Node"
 | 
						|
        help
 | 
						|
            Enable the device to be provisioned into a node. This option should be
 | 
						|
            enabled when an unprovisioned device is going to be provisioned into a
 | 
						|
            node and communicate with other nodes in the BLE Mesh network.
 | 
						|
 | 
						|
    config BLE_MESH_PROVISIONER
 | 
						|
        bool "Support for BLE Mesh Provisioner"
 | 
						|
        help
 | 
						|
            Enable the device to be a Provisioner. The option should be enabled when
 | 
						|
            a device is going to act as a Provisioner and provision unprovisioned
 | 
						|
            devices into the BLE Mesh network.
 | 
						|
 | 
						|
    if BLE_MESH_PROVISIONER
 | 
						|
 | 
						|
        config BLE_MESH_WAIT_FOR_PROV_MAX_DEV_NUM
 | 
						|
            int "Maximum number of unprovisioned devices that can be added to device queue"
 | 
						|
            default 10
 | 
						|
            range 1 100
 | 
						|
            help
 | 
						|
                This option specifies how many unprovisioned devices can be added to device
 | 
						|
                queue for provisioning. Users can use this option to define the size of the
 | 
						|
                queue in the bottom layer which is used to store unprovisioned device
 | 
						|
                information (e.g. Device UUID, address).
 | 
						|
 | 
						|
        config BLE_MESH_MAX_PROV_NODES
 | 
						|
            int "Maximum number of devices that can be provisioned by Provisioner"
 | 
						|
            default 10
 | 
						|
            range 1 1000
 | 
						|
            help
 | 
						|
                This option specifies how many devices can be provisioned by a Provisioner.
 | 
						|
                This value indicates the maximum number of unprovisioned devices which can be
 | 
						|
                provisioned by a Provisioner. For instance, if the value is 6, it means the
 | 
						|
                Provisioner can provision up to 6 unprovisioned devices.
 | 
						|
                Theoretically a Provisioner without the limitation of its memory can provision
 | 
						|
                up to 32766 unprovisioned devices, here we limit the maximum number to 100
 | 
						|
                just to limit the memory used by a Provisioner. The bigger the value is, the
 | 
						|
                more memory it will cost by a Provisioner to store the information of nodes.
 | 
						|
 | 
						|
        if BLE_MESH_PB_ADV
 | 
						|
            config BLE_MESH_PBA_SAME_TIME
 | 
						|
                int "Maximum number of PB-ADV running at the same time by Provisioner"
 | 
						|
                default 2
 | 
						|
                range 1 10
 | 
						|
                help
 | 
						|
                    This option specifies how many devices can be provisioned at the same time
 | 
						|
                    using PB-ADV. For examples, if the value is 2, it means a Provisioner can
 | 
						|
                    provision two unprovisioned devices with PB-ADV at the same time.
 | 
						|
 | 
						|
        endif # BLE_MESH_PB_ADV
 | 
						|
 | 
						|
        if BLE_MESH_PB_GATT
 | 
						|
            config BLE_MESH_PBG_SAME_TIME
 | 
						|
                int "Maximum number of PB-GATT running at the same time by Provisioner"
 | 
						|
                default 1
 | 
						|
                range 1 5
 | 
						|
                help
 | 
						|
                    This option specifies how many devices can be provisioned at the same
 | 
						|
                    time using PB-GATT. For example, if the value is 2, it means a Provisioner
 | 
						|
                    can provision two unprovisioned devices with PB-GATT at the same time.
 | 
						|
 | 
						|
        endif # BLE_MESH_PB_GATT
 | 
						|
 | 
						|
        config BLE_MESH_PROVISIONER_SUBNET_COUNT
 | 
						|
            int "Maximum number of mesh subnets that can be created by Provisioner"
 | 
						|
            default 3
 | 
						|
            range 1 4096
 | 
						|
            help
 | 
						|
                This option specifies how many subnets per network a Provisioner can create.
 | 
						|
                Indeed, this value decides the number of network keys which can be added by a Provisioner.
 | 
						|
 | 
						|
        config BLE_MESH_PROVISIONER_APP_KEY_COUNT
 | 
						|
            int "Maximum number of application keys that can be owned by Provisioner"
 | 
						|
            default 3
 | 
						|
            range 1 4096
 | 
						|
            help
 | 
						|
                This option specifies how many application keys the Provisioner can have.
 | 
						|
                Indeed, this value decides the number of the application keys which can be added by a Provisioner.
 | 
						|
 | 
						|
        config BLE_MESH_PROVISIONER_RECV_HB
 | 
						|
            bool "Support receiving Heartbeat messages"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When this option is enabled, Provisioner can call specific functions to enable
 | 
						|
                or disable receiving Heartbeat messages and notify them to the application layer.
 | 
						|
 | 
						|
        if BLE_MESH_PROVISIONER_RECV_HB
 | 
						|
 | 
						|
            config BLE_MESH_PROVISIONER_RECV_HB_FILTER_SIZE
 | 
						|
                int "Maximum number of filter entries for receiving Heartbeat messages"
 | 
						|
                default 3
 | 
						|
                range 1 1000
 | 
						|
                help
 | 
						|
                    This option specifies how many heartbeat filter entries Provisioner supports.
 | 
						|
                    The heartbeat filter (acceptlist or rejectlist) entries are used to store a
 | 
						|
                    list of SRC and DST which can be used to decide if a heartbeat message will
 | 
						|
                    be processed and notified to the application layer by Provisioner.
 | 
						|
                    Note: The filter is an empty rejectlist by default.
 | 
						|
 | 
						|
        endif # BLE_MESH_PROVISIONER_RECV_HB
 | 
						|
 | 
						|
    endif # BLE_MESH_PROVISIONER
 | 
						|
 | 
						|
    # Virtual option enabled whenever Generic Provisioning layer is needed
 | 
						|
    config BLE_MESH_PROV
 | 
						|
        bool "BLE Mesh Provisioning support"
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Enable this option to support BLE Mesh Provisioning functionality. For
 | 
						|
            BLE Mesh, this option should be always enabled.
 | 
						|
 | 
						|
    config BLE_MESH_PB_ADV
 | 
						|
        bool "Provisioning support using the advertising bearer (PB-ADV)"
 | 
						|
        select BLE_MESH_PROV
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Enable this option to allow the device to be provisioned over the
 | 
						|
            advertising bearer. This option should be enabled if PB-ADV is
 | 
						|
            going to be used during provisioning procedure.
 | 
						|
 | 
						|
    config BLE_MESH_UNPROVISIONED_BEACON_INTERVAL
 | 
						|
        int "Interval between two consecutive Unprovisioned Device Beacon"
 | 
						|
        depends on BLE_MESH_NODE && BLE_MESH_PB_ADV
 | 
						|
        default 5
 | 
						|
        default 3 if BLE_MESH_FAST_PROV
 | 
						|
        range 1 100
 | 
						|
        help
 | 
						|
            This option specifies the interval of sending two consecutive unprovisioned
 | 
						|
            device beacon, users can use this option to change the frequency of sending
 | 
						|
            unprovisioned device beacon. For example, if the value is 5, it means the
 | 
						|
            unprovisioned device beacon will send every 5 seconds. When the option of
 | 
						|
            BLE_MESH_FAST_PROV is selected, the value is better to be 3 seconds, or less.
 | 
						|
 | 
						|
    config BLE_MESH_PB_GATT
 | 
						|
        bool "Provisioning support using GATT (PB-GATT)"
 | 
						|
        select BLE_MESH_PROXY
 | 
						|
        select BLE_MESH_PROV
 | 
						|
        help
 | 
						|
            Enable this option to allow the device to be provisioned over GATT.
 | 
						|
            This option should be enabled if PB-GATT is going to be used during
 | 
						|
            provisioning procedure.
 | 
						|
 | 
						|
            # Virtual option enabled whenever any Proxy protocol is needed
 | 
						|
    config BLE_MESH_PROXY
 | 
						|
        bool "BLE Mesh Proxy protocol support"
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Enable this option to support BLE Mesh Proxy protocol used by PB-GATT
 | 
						|
            and other proxy pdu transmission.
 | 
						|
 | 
						|
    config BLE_MESH_GATT_PROXY_SERVER
 | 
						|
        bool "BLE Mesh GATT Proxy Server"
 | 
						|
        select BLE_MESH_PROXY
 | 
						|
        depends on BLE_MESH_NODE
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            This option enables support for Mesh GATT Proxy Service, i.e. the
 | 
						|
            ability to act as a proxy between a Mesh GATT Client and a Mesh network.
 | 
						|
            This option should be enabled if a node is going to be a Proxy Server.
 | 
						|
 | 
						|
    config BLE_MESH_NODE_ID_TIMEOUT
 | 
						|
        int "Node Identity advertising timeout"
 | 
						|
        depends on BLE_MESH_GATT_PROXY_SERVER
 | 
						|
        range 1 60
 | 
						|
        default 60
 | 
						|
        help
 | 
						|
            This option determines for how long the local node advertises using
 | 
						|
            Node Identity. The given value is in seconds. The specification limits
 | 
						|
            this to 60 seconds and lists it as the recommended value as well.
 | 
						|
            So leaving the default value is the safest option.
 | 
						|
            When an unprovisioned device is provisioned successfully and becomes a
 | 
						|
            node, it will start to advertise using Node Identity during the time
 | 
						|
            set by this option. And after that, Network ID will be advertised.
 | 
						|
 | 
						|
    config BLE_MESH_PROXY_FILTER_SIZE
 | 
						|
        int "Maximum number of filter entries per Proxy Client"
 | 
						|
        depends on BLE_MESH_GATT_PROXY_SERVER
 | 
						|
        default 4
 | 
						|
        range 1 32767
 | 
						|
        help
 | 
						|
            This option specifies how many Proxy Filter entries the local node supports.
 | 
						|
            The entries of Proxy filter (whitelist or blacklist) are used to store a
 | 
						|
            list of addresses which can be used to decide which messages will be forwarded
 | 
						|
            to the Proxy Client by the Proxy Server.
 | 
						|
 | 
						|
    config BLE_MESH_GATT_PROXY_CLIENT
 | 
						|
        bool "BLE Mesh GATT Proxy Client"
 | 
						|
        select BLE_MESH_PROXY
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            This option enables support for Mesh GATT Proxy Client. The Proxy Client
 | 
						|
            can use the GATT bearer to send mesh messages to a node that supports the
 | 
						|
            advertising bearer.
 | 
						|
 | 
						|
    config BLE_MESH_NET_BUF_POOL_USAGE
 | 
						|
        bool
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Enable BLE Mesh net buffer pool tracking. This option is used to introduce another
 | 
						|
            variable in the bottom layer to record the usage of advertising buffers of BLE Mesh
 | 
						|
            devices. Recommend to enable this option as default.
 | 
						|
 | 
						|
    config BLE_MESH_SETTINGS
 | 
						|
        bool "Store BLE Mesh configuration persistently"
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            When selected, the BLE Mesh stack will take care of storing/restoring the BLE
 | 
						|
            Mesh configuration persistently in flash.
 | 
						|
            If the device is a BLE Mesh node, when this option is enabled, the configuration
 | 
						|
            of the device will be stored persistently, including unicast address, NetKey,
 | 
						|
            AppKey, etc.
 | 
						|
            And if the device is a BLE Mesh Provisioner, the information of the device will
 | 
						|
            be stored persistently, including the information of provisioned nodes, NetKey,
 | 
						|
            AppKey, etc.
 | 
						|
 | 
						|
    if BLE_MESH_SETTINGS
 | 
						|
 | 
						|
        config BLE_MESH_STORE_TIMEOUT
 | 
						|
            int "Delay (in seconds) before storing anything persistently"
 | 
						|
            range 0 1000000
 | 
						|
            default 0
 | 
						|
            help
 | 
						|
                This value defines in seconds how soon any pending changes are actually
 | 
						|
                written into persistent storage (flash) after a change occurs.
 | 
						|
                The option allows nodes to delay a certain period of time to save proper
 | 
						|
                information to flash. The default value is 0, which means information
 | 
						|
                will be stored immediately once there are updates.
 | 
						|
 | 
						|
        config BLE_MESH_SEQ_STORE_RATE
 | 
						|
            int "How often the sequence number gets updated in storage"
 | 
						|
            range 0 1000000
 | 
						|
            default 0
 | 
						|
            help
 | 
						|
                This value defines how often the local sequence number gets updated in
 | 
						|
                persistent storage (i.e. flash). e.g. a value of 100 means that the
 | 
						|
                sequence number will be stored to flash on every 100th increment.
 | 
						|
                If the node sends messages very frequently a higher value makes more
 | 
						|
                sense, whereas if the node sends infrequently a value as low as 0
 | 
						|
                (update storage for every increment) can make sense. When the stack
 | 
						|
                gets initialized it will add sequence number to the last stored one,
 | 
						|
                so that it starts off with a value that's guaranteed to be larger than
 | 
						|
                the last one used before power off.
 | 
						|
 | 
						|
        config BLE_MESH_RPL_STORE_TIMEOUT
 | 
						|
            int "Minimum frequency that the RPL gets updated in storage"
 | 
						|
            range 0 1000000
 | 
						|
            default 0
 | 
						|
            help
 | 
						|
                This value defines in seconds how soon the RPL (Replay Protection List)
 | 
						|
                gets written to persistent storage after a change occurs. If the node
 | 
						|
                receives messages frequently, then a large value is recommended. If the
 | 
						|
                node receives messages rarely, then the value can be as low as 0 (which
 | 
						|
                means the RPL is written into the storage immediately).
 | 
						|
                Note that if the node operates in a security-sensitive case, and there is
 | 
						|
                a risk of sudden power-off, then a value of 0 is strongly recommended.
 | 
						|
                Otherwise, a power loss before RPL being written into the storage may
 | 
						|
                introduce message replay attacks and system security will be in a
 | 
						|
                vulnerable state.
 | 
						|
 | 
						|
        config BLE_MESH_SETTINGS_BACKWARD_COMPATIBILITY
 | 
						|
            bool "A specific option for settings backward compatibility"
 | 
						|
            depends on BLE_MESH_NODE
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                This option is created to solve the issue of failure in recovering
 | 
						|
                node information after mesh stack updates. In the old version mesh
 | 
						|
                stack, there is no key of "mesh/role" in nvs. In the new version
 | 
						|
                mesh stack, key of "mesh/role" is added in nvs, recovering node
 | 
						|
                information needs to check "mesh/role" key in nvs and implements
 | 
						|
                selective recovery of mesh node information. Therefore, there may
 | 
						|
                be failure in recovering node information during node restarting
 | 
						|
                after OTA.
 | 
						|
 | 
						|
                The new version mesh stack adds the option of "mesh/role" because
 | 
						|
                we have added the support of storing Provisioner information, while
 | 
						|
                the old version only supports storing node information.
 | 
						|
 | 
						|
                If users are updating their nodes from old version to new version,
 | 
						|
                we recommend enabling this option, so that system could set the flag
 | 
						|
                in advance before recovering node information and make sure the node
 | 
						|
                information recovering could work as expected.
 | 
						|
 | 
						|
        config BLE_MESH_SPECIFIC_PARTITION
 | 
						|
            bool "Use a specific NVS partition for BLE Mesh"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When selected, the mesh stack will use a specified NVS partition instead of
 | 
						|
                default NVS partition. Note that the specified partition must be registered
 | 
						|
                with NVS using nvs_flash_init_partition() API, and the partition must exists
 | 
						|
                in the csv file.
 | 
						|
                When Provisioner needs to store a large amount of nodes' information in the
 | 
						|
                flash (e.g. more than 20), this option is recommended to be enabled.
 | 
						|
 | 
						|
        config BLE_MESH_PARTITION_NAME
 | 
						|
            string "Name of the NVS partition for BLE Mesh"
 | 
						|
            depends on BLE_MESH_SPECIFIC_PARTITION
 | 
						|
            default "ble_mesh"
 | 
						|
            help
 | 
						|
                This value defines the name of the specified NVS partition used by the
 | 
						|
                mesh stack.
 | 
						|
 | 
						|
        config BLE_MESH_USE_MULTIPLE_NAMESPACE
 | 
						|
            bool "Support using multiple NVS namespaces by Provisioner"
 | 
						|
            depends on BLE_MESH_PROVISIONER
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When selected, Provisioner can use different NVS namespaces to store
 | 
						|
                different instances of mesh information.
 | 
						|
                For example, if in the first room, Provisioner uses NetKey A, AppKey
 | 
						|
                A and provisions three devices, these information will be treated as
 | 
						|
                mesh information instance A. When the Provisioner moves to the second
 | 
						|
                room, it uses NetKey B, AppKey B and provisions two devices, then the
 | 
						|
                information will be treated as mesh information instance B.
 | 
						|
                Here instance A and instance B will be stored in different namespaces.
 | 
						|
                With this option enabled, Provisioner needs to use specific functions
 | 
						|
                to open the corresponding NVS namespace, restore the mesh information,
 | 
						|
                release the mesh information or erase the mesh information.
 | 
						|
 | 
						|
        config BLE_MESH_MAX_NVS_NAMESPACE
 | 
						|
            int "Maximum number of NVS namespaces"
 | 
						|
            depends on BLE_MESH_USE_MULTIPLE_NAMESPACE
 | 
						|
            default 2
 | 
						|
            range 1 255
 | 
						|
            help
 | 
						|
                This option specifies the maximum NVS namespaces supported by Provisioner.
 | 
						|
 | 
						|
    endif  # if BLE_MESH_SETTINGS
 | 
						|
 | 
						|
    config BLE_MESH_SUBNET_COUNT
 | 
						|
        int "Maximum number of mesh subnets per network"
 | 
						|
        default 3
 | 
						|
        range 1 4096
 | 
						|
        help
 | 
						|
            This option specifies how many subnets a Mesh network can have at the same time.
 | 
						|
            Indeed, this value decides the number of the network keys which can be owned by a node.
 | 
						|
 | 
						|
    config BLE_MESH_APP_KEY_COUNT
 | 
						|
        int "Maximum number of application keys per network"
 | 
						|
        default 3
 | 
						|
        range 1 4096
 | 
						|
        help
 | 
						|
            This option specifies how many application keys the device can store per network.
 | 
						|
            Indeed, this value decides the number of the application keys which can be owned by a node.
 | 
						|
 | 
						|
    config BLE_MESH_MODEL_KEY_COUNT
 | 
						|
        int "Maximum number of application keys per model"
 | 
						|
        default 3
 | 
						|
        range 1 4096
 | 
						|
        help
 | 
						|
            This option specifies the maximum number of application keys to which each model
 | 
						|
            can be bound.
 | 
						|
 | 
						|
    config BLE_MESH_MODEL_GROUP_COUNT
 | 
						|
        int "Maximum number of group address subscriptions per model"
 | 
						|
        default 3
 | 
						|
        range 1 4096
 | 
						|
        help
 | 
						|
            This option specifies the maximum number of addresses to which each model can
 | 
						|
            be subscribed.
 | 
						|
 | 
						|
    config BLE_MESH_LABEL_COUNT
 | 
						|
        int "Maximum number of Label UUIDs used for Virtual Addresses"
 | 
						|
        default 3
 | 
						|
        range 0 4096
 | 
						|
        help
 | 
						|
            This option specifies how many Label UUIDs can be stored.
 | 
						|
            Indeed, this value decides the number of the Virtual Addresses can be supported by a node.
 | 
						|
 | 
						|
    config BLE_MESH_CRPL
 | 
						|
        int "Maximum capacity of the replay protection list"
 | 
						|
        default 10
 | 
						|
        range 2 65535
 | 
						|
        help
 | 
						|
            This option specifies the maximum capacity of the replay protection list.
 | 
						|
            It is similar to Network message cache size, but has a different purpose.
 | 
						|
            The replay protection list is used to prevent a node from replay attack,
 | 
						|
            which will store the source address and sequence number of the received
 | 
						|
            mesh messages.
 | 
						|
            For Provisioner, the replay protection list size should not be smaller than
 | 
						|
            the maximum number of nodes whose information can be stored. And the element
 | 
						|
            number of each node should also be taken into consideration. For example, if
 | 
						|
            Provisioner can provision up to 20 nodes and each node contains two elements,
 | 
						|
            then the replay protection list size of Provisioner should be at least 40.
 | 
						|
 | 
						|
    config BLE_MESH_MSG_CACHE_SIZE
 | 
						|
        int "Network message cache size"
 | 
						|
        default 10
 | 
						|
        range 2 65535
 | 
						|
        help
 | 
						|
            Number of messages that are cached for the network. This helps prevent
 | 
						|
            unnecessary decryption operations and unnecessary relays. This option
 | 
						|
            is similar to Replay protection list, but has a different purpose.
 | 
						|
            A node is not required to cache the entire Network PDU and may cache
 | 
						|
            only part of it for tracking, such as values for SRC/SEQ or others.
 | 
						|
 | 
						|
    config BLE_MESH_ADV_BUF_COUNT
 | 
						|
        int "Number of advertising buffers"
 | 
						|
        default 60
 | 
						|
        range 6 256
 | 
						|
        help
 | 
						|
            Number of advertising buffers available. The transport layer reserves
 | 
						|
            ADV_BUF_COUNT - 3 buffers for outgoing segments. The maximum outgoing
 | 
						|
            SDU size is 12 times this value (out of which 4 or 8 bytes are used
 | 
						|
            for the Transport Layer MIC). For example, 5 segments means the maximum
 | 
						|
            SDU size is 60 bytes, which leaves 56 bytes for application layer data
 | 
						|
            using a 4-byte MIC, or 52 bytes using an 8-byte MIC.
 | 
						|
 | 
						|
    config BLE_MESH_IVU_DIVIDER
 | 
						|
        int "Divider for IV Update state refresh timer"
 | 
						|
        default 4
 | 
						|
        range 2 96
 | 
						|
        help
 | 
						|
            When the IV Update state enters Normal operation or IV Update
 | 
						|
            in Progress, we need to keep track of how many hours has passed
 | 
						|
            in the state, since the specification requires us to remain in
 | 
						|
            the state at least for 96 hours (Update in Progress has an
 | 
						|
            additional upper limit of 144 hours).
 | 
						|
 | 
						|
            In order to fulfill the above requirement, even if the node might
 | 
						|
            be powered off once in a while, we need to store persistently
 | 
						|
            how many hours the node has been in the state. This doesn't
 | 
						|
            necessarily need to happen every hour (thanks to the flexible
 | 
						|
            duration range). The exact cadence will depend a lot on the
 | 
						|
            ways that the node will be used and what kind of power source it
 | 
						|
            has.
 | 
						|
 | 
						|
            Since there is no single optimal answer, this configuration
 | 
						|
            option allows specifying a divider, i.e. how many intervals
 | 
						|
            the 96 hour minimum gets split into. After each interval the
 | 
						|
            duration that the node has been in the current state gets
 | 
						|
            stored to flash. E.g. the default value of 4 means that the
 | 
						|
            state is saved every 24 hours (96 / 4).
 | 
						|
 | 
						|
    config BLE_MESH_IVU_RECOVERY_IVI
 | 
						|
        bool "Recovery the IV index when the latest whole IV update procedure is missed"
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            According to Section 3.10.5 of Mesh Specification v1.0.1.
 | 
						|
            If a node in Normal Operation receives a Secure Network beacon with an IV index
 | 
						|
            equal to the last known IV index+1 and the IV Update Flag set to 0, the node may
 | 
						|
            update its IV without going to the IV Update in Progress state, or it may initiate
 | 
						|
            an IV Index Recovery procedure (Section 3.10.6), or it may ignore the Secure
 | 
						|
            Network beacon. The node makes the choice depending on the time since last IV
 | 
						|
            update and the likelihood that the node has missed the Secure Network beacons
 | 
						|
            with the IV update Flag.
 | 
						|
            When the above situation is encountered, this option can be used to decide whether
 | 
						|
            to perform the IV index recovery procedure.
 | 
						|
 | 
						|
    config BLE_MESH_TX_SEG_MSG_COUNT
 | 
						|
        int "Maximum number of simultaneous outgoing segmented messages"
 | 
						|
        default 1
 | 
						|
        range 1 BLE_MESH_ADV_BUF_COUNT
 | 
						|
        help
 | 
						|
            Maximum number of simultaneous outgoing multi-segment and/or reliable messages.
 | 
						|
            The default value is 1, which means the device can only send one segmented
 | 
						|
            message at a time. And if another segmented message is going to be sent, it
 | 
						|
            should wait for the completion of the previous one.
 | 
						|
            If users are going to send multiple segmented messages at the same time, this
 | 
						|
            value should be configured properly.
 | 
						|
 | 
						|
    config BLE_MESH_RX_SEG_MSG_COUNT
 | 
						|
        int "Maximum number of simultaneous incoming segmented messages"
 | 
						|
        default 1
 | 
						|
        range 1 255
 | 
						|
        help
 | 
						|
            Maximum number of simultaneous incoming multi-segment and/or reliable messages.
 | 
						|
            The default value is 1, which means the device can only receive one segmented
 | 
						|
            message at a time. And if another segmented message is going to be received,
 | 
						|
            it should wait for the completion of the previous one.
 | 
						|
            If users are going to receive multiple segmented messages at the same time, this
 | 
						|
            value should be configured properly.
 | 
						|
 | 
						|
    config BLE_MESH_RX_SDU_MAX
 | 
						|
        int "Maximum incoming Upper Transport Access PDU length"
 | 
						|
        default 384
 | 
						|
        range 36 384
 | 
						|
        help
 | 
						|
            Maximum incoming Upper Transport Access PDU length. Leave this to the default
 | 
						|
            value, unless you really need to optimize memory usage.
 | 
						|
 | 
						|
    config BLE_MESH_TX_SEG_MAX
 | 
						|
        int "Maximum number of segments in outgoing messages"
 | 
						|
        default 32
 | 
						|
        range 2 32
 | 
						|
        help
 | 
						|
            Maximum number of segments supported for outgoing messages.
 | 
						|
            This value should typically be fine-tuned based on what
 | 
						|
            models the local node supports, i.e. what's the largest
 | 
						|
            message payload that the node needs to be able to send.
 | 
						|
            This value affects memory and call stack consumption, which
 | 
						|
            is why the default is lower than the maximum that the
 | 
						|
            specification would allow (32 segments).
 | 
						|
 | 
						|
            The maximum outgoing SDU size is 12 times this number (out of
 | 
						|
            which 4 or 8 bytes is used for the Transport Layer MIC). For
 | 
						|
            example, 5 segments means the maximum SDU size is 60 bytes,
 | 
						|
            which leaves 56 bytes for application layer data using a
 | 
						|
            4-byte MIC and 52 bytes using an 8-byte MIC.
 | 
						|
 | 
						|
            Be sure to specify a sufficient number of advertising buffers
 | 
						|
            when setting this option to a higher value. There must be at
 | 
						|
            least three more advertising buffers (BLE_MESH_ADV_BUF_COUNT)
 | 
						|
            as there are outgoing segments.
 | 
						|
 | 
						|
    config BLE_MESH_RELAY
 | 
						|
        bool "Relay support"
 | 
						|
        depends on BLE_MESH_NODE
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            Support for acting as a Mesh Relay Node. Enabling this option will allow
 | 
						|
            a node to support the Relay feature, and the Relay feature can still
 | 
						|
            be enabled or disabled by proper configuration messages. Disabling this
 | 
						|
            option will let a node not support the Relay feature.
 | 
						|
 | 
						|
    if BLE_MESH_RELAY
 | 
						|
 | 
						|
        config BLE_MESH_RELAY_ADV_BUF
 | 
						|
            bool "Use separate advertising buffers for relay packets"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                When selected, self-send packets will be put in a high-priority
 | 
						|
                queue and relay packets will be put in a low-priority queue.
 | 
						|
 | 
						|
        if BLE_MESH_RELAY_ADV_BUF
 | 
						|
 | 
						|
            config BLE_MESH_RELAY_ADV_BUF_COUNT
 | 
						|
                int "Number of advertising buffers for relay packets"
 | 
						|
                default 60
 | 
						|
                range 6 256
 | 
						|
                help
 | 
						|
                    Number of advertising buffers for relay packets available.
 | 
						|
 | 
						|
        endif # BLE_MESH_RELAY_ADV_BUF
 | 
						|
 | 
						|
    endif # BLE_MESH_RELAY
 | 
						|
 | 
						|
    config BLE_MESH_LOW_POWER
 | 
						|
        bool "Support for Low Power features"
 | 
						|
        depends on BLE_MESH_NODE
 | 
						|
        help
 | 
						|
            Enable this option to operate as a Low Power Node. If low power consumption
 | 
						|
            is required by a node, this option should be enabled. And once the node
 | 
						|
            enters the mesh network, it will try to find a Friend node and establish a
 | 
						|
            friendship.
 | 
						|
 | 
						|
    if BLE_MESH_LOW_POWER
 | 
						|
 | 
						|
        config BLE_MESH_LPN_ESTABLISHMENT
 | 
						|
            bool "Perform Friendship establishment using low power"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                Perform the Friendship establishment using low power with the help of a
 | 
						|
                reduced scan duty cycle. The downside of this is that the node may miss
 | 
						|
                out on messages intended for it until it has successfully set up Friendship
 | 
						|
                with a Friend node.
 | 
						|
                When this option is enabled, the node will stop scanning for a period of
 | 
						|
                time after a Friend Request or Friend Poll is sent, so as to reduce more
 | 
						|
                power consumption.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_AUTO
 | 
						|
            bool "Automatically start looking for Friend nodes once provisioned"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                Once provisioned, automatically enable LPN functionality and start looking
 | 
						|
                for Friend nodes. If this option is disabled LPN mode needs to be manually
 | 
						|
                enabled by calling bt_mesh_lpn_set(true).
 | 
						|
                When an unprovisioned device is provisioned successfully and becomes a node,
 | 
						|
                enabling this option will trigger the node starts to send Friend Request at
 | 
						|
                a certain period until it finds a proper Friend node.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_AUTO_TIMEOUT
 | 
						|
            int "Time from last received message before going to LPN mode"
 | 
						|
            default 15
 | 
						|
            range 0 3600
 | 
						|
            depends on BLE_MESH_LPN_AUTO
 | 
						|
            help
 | 
						|
                Time in seconds from the last received message, that the node waits out
 | 
						|
                before starting to look for Friend nodes.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_RETRY_TIMEOUT
 | 
						|
            int "Retry timeout for Friend requests"
 | 
						|
            default 6
 | 
						|
            range 1 3600
 | 
						|
            help
 | 
						|
                Time in seconds between Friend Requests, if a previous Friend Request did
 | 
						|
                not yield any acceptable Friend Offers.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_RSSI_FACTOR
 | 
						|
            int "RSSIFactor, used in Friend Offer Delay calculation"
 | 
						|
            range 0 3
 | 
						|
            default 0
 | 
						|
            help
 | 
						|
                The contribution of the RSSI, measured by the Friend node, used in Friend
 | 
						|
                Offer Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
 | 
						|
                RSSIFactor, one of the parameters carried by Friend Request sent by Low Power
 | 
						|
                node, which is used to calculate the Friend Offer Delay.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_RECV_WIN_FACTOR
 | 
						|
            int "ReceiveWindowFactor, used in Friend Offer Delay calculation"
 | 
						|
            range 0 3
 | 
						|
            default 0
 | 
						|
            help
 | 
						|
                The contribution of the supported Receive Window used in Friend Offer
 | 
						|
                Delay calculations. 0 = 1, 1 = 1.5, 2 = 2, 3 = 2.5.
 | 
						|
                ReceiveWindowFactor, one of the parameters carried by Friend Request sent by
 | 
						|
                Low Power node, which is used to calculate the Friend Offer Delay.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_MIN_QUEUE_SIZE
 | 
						|
            int "Minimum size of the acceptable friend queue (MinQueueSizeLog)"
 | 
						|
            range 1 7
 | 
						|
            default 1
 | 
						|
            help
 | 
						|
                The MinQueueSizeLog field is defined as log_2(N), where N is the minimum
 | 
						|
                number of maximum size Lower Transport PDUs that the Friend node can store
 | 
						|
                in its Friend Queue. As an example, MinQueueSizeLog value 1 gives N = 2,
 | 
						|
                and value 7 gives N = 128.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_RECV_DELAY
 | 
						|
            int "Receive delay requested by the local node"
 | 
						|
            range 10 255
 | 
						|
            default 100
 | 
						|
            help
 | 
						|
                The ReceiveDelay is the time between the Low Power node sending a
 | 
						|
                request and listening for a response. This delay allows the Friend
 | 
						|
                node time to prepare the response. The value is in units of milliseconds.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_POLL_TIMEOUT
 | 
						|
            int "The value of the PollTimeout timer"
 | 
						|
            range 10 244735
 | 
						|
            default 300
 | 
						|
            help
 | 
						|
                PollTimeout timer is used to measure time between two consecutive
 | 
						|
                requests sent by a Low Power node. If no requests are received
 | 
						|
                the Friend node before the PollTimeout timer expires, then the
 | 
						|
                friendship is considered terminated. The value is in units of 100
 | 
						|
                milliseconds, so e.g. a value of 300 means 30 seconds.
 | 
						|
                The smaller the value, the faster the Low Power node tries to get
 | 
						|
                messages from corresponding Friend node and vice versa.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_INIT_POLL_TIMEOUT
 | 
						|
            int "The starting value of the PollTimeout timer"
 | 
						|
            range 10 BLE_MESH_LPN_POLL_TIMEOUT
 | 
						|
            default BLE_MESH_LPN_POLL_TIMEOUT
 | 
						|
            help
 | 
						|
                The initial value of the PollTimeout timer when Friendship is to be
 | 
						|
                established for the first time. After this, the timeout gradually
 | 
						|
                grows toward the actual PollTimeout, doubling in value for each iteration.
 | 
						|
                The value is in units of 100 milliseconds, so e.g. a value of 300 means
 | 
						|
                30 seconds.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_SCAN_LATENCY
 | 
						|
            int "Latency for enabling scanning"
 | 
						|
            range 0 50
 | 
						|
            default 10
 | 
						|
            help
 | 
						|
                Latency (in milliseconds) is the time it takes to enable scanning. In
 | 
						|
                practice, it means how much time in advance of the Receive Window, the
 | 
						|
                request to enable scanning is made.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_GROUPS
 | 
						|
            int "Number of groups the LPN can subscribe to"
 | 
						|
            range 0 16384
 | 
						|
            default 8
 | 
						|
            help
 | 
						|
                Maximum number of groups to which the LPN can subscribe.
 | 
						|
 | 
						|
        config BLE_MESH_LPN_SUB_ALL_NODES_ADDR
 | 
						|
            bool "Automatically subscribe all nodes address"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                Automatically subscribe all nodes address when friendship
 | 
						|
                established.
 | 
						|
 | 
						|
    endif # BLE_MESH_LOW_POWER
 | 
						|
 | 
						|
    config BLE_MESH_FRIEND
 | 
						|
        bool "Support for Friend feature"
 | 
						|
        help
 | 
						|
            Enable this option to be able to act as a Friend Node.
 | 
						|
 | 
						|
    if BLE_MESH_FRIEND
 | 
						|
 | 
						|
        config BLE_MESH_FRIEND_RECV_WIN
 | 
						|
            int "Friend Receive Window"
 | 
						|
            range 1 255
 | 
						|
            default 255
 | 
						|
            help
 | 
						|
                Receive Window in milliseconds supported by the Friend node.
 | 
						|
 | 
						|
        config BLE_MESH_FRIEND_QUEUE_SIZE
 | 
						|
            int "Minimum number of buffers supported per Friend Queue"
 | 
						|
            range 2 65536
 | 
						|
            default 16
 | 
						|
            help
 | 
						|
                Minimum number of buffers available to be stored for each local Friend Queue.
 | 
						|
                This option decides the size of each buffer which can be used by a Friend node
 | 
						|
                to store messages for each Low Power node.
 | 
						|
 | 
						|
        config BLE_MESH_FRIEND_SUB_LIST_SIZE
 | 
						|
            int "Friend Subscription List Size"
 | 
						|
            range 0 1023
 | 
						|
            default 3
 | 
						|
            help
 | 
						|
                Size of the Subscription List that can be supported by a Friend node for a
 | 
						|
                Low Power node. And Low Power node can send Friend Subscription List Add or
 | 
						|
                Friend Subscription List Remove messages to the Friend node to add or remove
 | 
						|
                subscription addresses.
 | 
						|
 | 
						|
        config BLE_MESH_FRIEND_LPN_COUNT
 | 
						|
            int "Number of supported LPN nodes"
 | 
						|
            range 1 1000
 | 
						|
            default 2
 | 
						|
            help
 | 
						|
                Number of Low Power Nodes with which a Friend can have Friendship simultaneously.
 | 
						|
                A Friend node can have friendship with multiple Low Power nodes at the same time,
 | 
						|
                while a Low Power node can only establish friendship with only one Friend node at
 | 
						|
                the same time.
 | 
						|
 | 
						|
        config BLE_MESH_FRIEND_SEG_RX
 | 
						|
            int "Number of incomplete segment lists per LPN"
 | 
						|
            range 1 1000
 | 
						|
            default 1
 | 
						|
            help
 | 
						|
                Number of incomplete segment lists tracked for each Friends' LPN.
 | 
						|
                In other words, this determines from how many elements can segmented
 | 
						|
                messages destined for the Friend queue be received simultaneously.
 | 
						|
 | 
						|
    endif # BLE_MESH_FRIEND
 | 
						|
 | 
						|
    config BLE_MESH_NO_LOG
 | 
						|
        bool "Disable BLE Mesh debug logs (minimize bin size)"
 | 
						|
        depends on BLE_MESH
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            Select this to save the BLE Mesh related rodata code size. Enabling this option
 | 
						|
            will disable the output of BLE Mesh debug log.
 | 
						|
 | 
						|
    menu "BLE Mesh STACK DEBUG LOG LEVEL"
 | 
						|
        depends on BLE_MESH && !BLE_MESH_NO_LOG
 | 
						|
 | 
						|
        choice BLE_MESH_STACK_TRACE_LEVEL
 | 
						|
            prompt "BLE_MESH_STACK"
 | 
						|
            default BLE_MESH_TRACE_LEVEL_WARNING
 | 
						|
            depends on BLE_MESH && !BLE_MESH_NO_LOG
 | 
						|
            help
 | 
						|
                Define BLE Mesh trace level for BLE Mesh stack.
 | 
						|
 | 
						|
            config BLE_MESH_TRACE_LEVEL_NONE
 | 
						|
                bool "NONE"
 | 
						|
            config BLE_MESH_TRACE_LEVEL_ERROR
 | 
						|
                bool "ERROR"
 | 
						|
            config BLE_MESH_TRACE_LEVEL_WARNING
 | 
						|
                bool "WARNING"
 | 
						|
            config BLE_MESH_TRACE_LEVEL_INFO
 | 
						|
                bool "INFO"
 | 
						|
            config BLE_MESH_TRACE_LEVEL_DEBUG
 | 
						|
                bool "DEBUG"
 | 
						|
            config BLE_MESH_TRACE_LEVEL_VERBOSE
 | 
						|
                bool "VERBOSE"
 | 
						|
        endchoice
 | 
						|
 | 
						|
        config BLE_MESH_STACK_TRACE_LEVEL
 | 
						|
            int
 | 
						|
            depends on BLE_MESH
 | 
						|
            default 0 if BLE_MESH_TRACE_LEVEL_NONE
 | 
						|
            default 1 if BLE_MESH_TRACE_LEVEL_ERROR
 | 
						|
            default 2 if BLE_MESH_TRACE_LEVEL_WARNING
 | 
						|
            default 3 if BLE_MESH_TRACE_LEVEL_INFO
 | 
						|
            default 4 if BLE_MESH_TRACE_LEVEL_DEBUG
 | 
						|
            default 5 if BLE_MESH_TRACE_LEVEL_VERBOSE
 | 
						|
            default 2
 | 
						|
 | 
						|
    endmenu #BLE Mesh DEBUG LOG LEVEL
 | 
						|
 | 
						|
    menu "BLE Mesh NET BUF DEBUG LOG LEVEL"
 | 
						|
        depends on BLE_MESH && !BLE_MESH_NO_LOG
 | 
						|
 | 
						|
        choice BLE_MESH_NET_BUF_TRACE_LEVEL
 | 
						|
            prompt "BLE_MESH_NET_BUF"
 | 
						|
            default BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
 | 
						|
            depends on BLE_MESH && !BLE_MESH_NO_LOG
 | 
						|
            help
 | 
						|
                Define BLE Mesh trace level for BLE Mesh net buffer.
 | 
						|
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
 | 
						|
                bool "NONE"
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
 | 
						|
                bool "ERROR"
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
 | 
						|
                bool "WARNING"
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
 | 
						|
                bool "INFO"
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
 | 
						|
                bool "DEBUG"
 | 
						|
            config BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
 | 
						|
                bool "VERBOSE"
 | 
						|
        endchoice
 | 
						|
 | 
						|
        config BLE_MESH_NET_BUF_TRACE_LEVEL
 | 
						|
            int
 | 
						|
            depends on BLE_MESH
 | 
						|
            default 0 if BLE_MESH_NET_BUF_TRACE_LEVEL_NONE
 | 
						|
            default 1 if BLE_MESH_NET_BUF_TRACE_LEVEL_ERROR
 | 
						|
            default 2 if BLE_MESH_NET_BUF_TRACE_LEVEL_WARNING
 | 
						|
            default 3 if BLE_MESH_NET_BUF_TRACE_LEVEL_INFO
 | 
						|
            default 4 if BLE_MESH_NET_BUF_TRACE_LEVEL_DEBUG
 | 
						|
            default 5 if BLE_MESH_NET_BUF_TRACE_LEVEL_VERBOSE
 | 
						|
            default 2
 | 
						|
 | 
						|
    endmenu #BLE Mesh NET BUF DEBUG LOG LEVEL
 | 
						|
 | 
						|
    config BLE_MESH_CLIENT_MSG_TIMEOUT
 | 
						|
        int "Timeout(ms) for client message response"
 | 
						|
        range 100 1200000
 | 
						|
        default 4000
 | 
						|
        help
 | 
						|
            Timeout value used by the node to get response of the acknowledged
 | 
						|
            message which is sent by the client model.
 | 
						|
            This value indicates the maximum time that a client model waits for
 | 
						|
            the response of the sent acknowledged messages. If a client model
 | 
						|
            uses 0 as the timeout value when sending acknowledged messages, then
 | 
						|
            the default value will be used which is four seconds.
 | 
						|
 | 
						|
    menu "Support for BLE Mesh Foundation models"
 | 
						|
 | 
						|
        config BLE_MESH_CFG_CLI
 | 
						|
            bool "Configuration Client model"
 | 
						|
            help
 | 
						|
                Enable support for Configuration Client model.
 | 
						|
 | 
						|
        config BLE_MESH_HEALTH_CLI
 | 
						|
            bool "Health Client model"
 | 
						|
            help
 | 
						|
                Enable support for Health Client model.
 | 
						|
 | 
						|
        config BLE_MESH_HEALTH_SRV
 | 
						|
            bool "Health Server model"
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                Enable support for Health Server model.
 | 
						|
 | 
						|
    endmenu #Support for BLE Mesh Foundation models
 | 
						|
 | 
						|
    menu "Support for BLE Mesh Client/Server models"
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_ONOFF_CLI
 | 
						|
            bool "Generic OnOff Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic OnOff Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_LEVEL_CLI
 | 
						|
            bool "Generic Level Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Level Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_DEF_TRANS_TIME_CLI
 | 
						|
            bool "Generic Default Transition Time Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Default Transition Time Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_POWER_ONOFF_CLI
 | 
						|
            bool "Generic Power OnOff Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Power OnOff Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_POWER_LEVEL_CLI
 | 
						|
            bool "Generic Power Level Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Power Level Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_BATTERY_CLI
 | 
						|
            bool "Generic Battery Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Battery Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_LOCATION_CLI
 | 
						|
            bool "Generic Location Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Location Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_PROPERTY_CLI
 | 
						|
            bool "Generic Property Client model"
 | 
						|
            help
 | 
						|
                Enable support for Generic Property Client model.
 | 
						|
 | 
						|
        config BLE_MESH_SENSOR_CLI
 | 
						|
            bool "Sensor Client model"
 | 
						|
            help
 | 
						|
                Enable support for Sensor Client model.
 | 
						|
 | 
						|
        config BLE_MESH_TIME_CLI
 | 
						|
            bool "Time Client model"
 | 
						|
            help
 | 
						|
                Enable support for Time Client model.
 | 
						|
 | 
						|
        config BLE_MESH_SCENE_CLI
 | 
						|
            bool "Scene Client model"
 | 
						|
            help
 | 
						|
                Enable support for Scene Client model.
 | 
						|
 | 
						|
        config BLE_MESH_SCHEDULER_CLI
 | 
						|
            bool "Scheduler Client model"
 | 
						|
            help
 | 
						|
                Enable support for Scheduler Client model.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHT_LIGHTNESS_CLI
 | 
						|
            bool "Light Lightness Client model"
 | 
						|
            help
 | 
						|
                Enable support for Light Lightness Client model.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHT_CTL_CLI
 | 
						|
            bool "Light CTL Client model"
 | 
						|
            help
 | 
						|
                Enable support for Light CTL Client model.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHT_HSL_CLI
 | 
						|
            bool "Light HSL Client model"
 | 
						|
            help
 | 
						|
                Enable support for Light HSL Client model.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHT_XYL_CLI
 | 
						|
            bool "Light XYL Client model"
 | 
						|
            help
 | 
						|
                Enable support for Light XYL Client model.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHT_LC_CLI
 | 
						|
            bool "Light LC Client model"
 | 
						|
            help
 | 
						|
                Enable support for Light LC Client model.
 | 
						|
 | 
						|
        config BLE_MESH_GENERIC_SERVER
 | 
						|
            bool "Generic server models"
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                Enable support for Generic server models.
 | 
						|
 | 
						|
        config BLE_MESH_SENSOR_SERVER
 | 
						|
            bool "Sensor server models"
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                Enable support for Sensor server models.
 | 
						|
 | 
						|
        config BLE_MESH_TIME_SCENE_SERVER
 | 
						|
            bool "Time and Scenes server models"
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                Enable support for Time and Scenes server models.
 | 
						|
 | 
						|
        config BLE_MESH_LIGHTING_SERVER
 | 
						|
            bool "Lighting server models"
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                Enable support for Lighting server models.
 | 
						|
 | 
						|
    endmenu #Support for BLE Mesh Client/Server models
 | 
						|
 | 
						|
    config BLE_MESH_IV_UPDATE_TEST
 | 
						|
        bool "Test the IV Update Procedure"
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            This option removes the 96 hour limit of the IV Update Procedure and
 | 
						|
            lets the state to be changed at any time.
 | 
						|
            If IV Update test mode is going to be used, this option should be enabled.
 | 
						|
 | 
						|
    config BLE_MESH_DISCARD_OLD_SEQ_AUTH
 | 
						|
        bool
 | 
						|
        default y
 | 
						|
        help
 | 
						|
            This option is used to decide whether discarding the old SeqAuth when
 | 
						|
            receiving a segmented message.
 | 
						|
 | 
						|
    menu "BLE Mesh specific test option"
 | 
						|
 | 
						|
        config BLE_MESH_SELF_TEST
 | 
						|
            bool "Perform BLE Mesh self-tests"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                This option adds extra self-tests which are run every time BLE Mesh
 | 
						|
                networking is initialized.
 | 
						|
 | 
						|
        config BLE_MESH_BQB_TEST
 | 
						|
            bool "Enable BLE Mesh specific internal test"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                This option is used to enable some internal functions for auto-pts test.
 | 
						|
 | 
						|
        config BLE_MESH_BQB_TEST_LOG
 | 
						|
            bool
 | 
						|
            depends on BLE_MESH_BQB_TEST
 | 
						|
            default y
 | 
						|
            help
 | 
						|
                This option is used to enable the log of auto-pts test.
 | 
						|
 | 
						|
        if BLE_MESH_SELF_TEST
 | 
						|
 | 
						|
            config BLE_MESH_TEST_AUTO_ENTER_NETWORK
 | 
						|
                bool "Unprovisioned device enters mesh network automatically"
 | 
						|
                default y
 | 
						|
                help
 | 
						|
                    With this option enabled, an unprovisioned device can automatically
 | 
						|
                    enters mesh network using a specific test function without the pro-
 | 
						|
                    visioning procedure. And on the Provisioner side, a test function
 | 
						|
                    needs to be invoked to add the node information into the mesh stack.
 | 
						|
 | 
						|
            config BLE_MESH_TEST_USE_WHITE_LIST
 | 
						|
                bool "Use white list to filter mesh advertising packets"
 | 
						|
                default n
 | 
						|
                help
 | 
						|
                    With this option enabled, users can use white list to filter mesh
 | 
						|
                    advertising packets while scanning.
 | 
						|
 | 
						|
        endif # BLE_MESH_SELF_TEST
 | 
						|
 | 
						|
        config BLE_MESH_SHELL
 | 
						|
            bool "Enable BLE Mesh shell"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                Activate shell module that provides BLE Mesh commands to the console.
 | 
						|
 | 
						|
        config BLE_MESH_DEBUG
 | 
						|
            bool "Enable BLE Mesh debug logs"
 | 
						|
            default n
 | 
						|
            help
 | 
						|
                Enable debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
        if BLE_MESH_DEBUG
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_NET
 | 
						|
                bool "Network layer debug"
 | 
						|
                help
 | 
						|
                    Enable Network layer debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_TRANS
 | 
						|
                bool "Transport layer debug"
 | 
						|
                help
 | 
						|
                    Enable Transport layer debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_BEACON
 | 
						|
                bool "Beacon debug"
 | 
						|
                help
 | 
						|
                    Enable Beacon-related debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_CRYPTO
 | 
						|
                bool "Crypto debug"
 | 
						|
                help
 | 
						|
                    Enable cryptographic debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_PROV
 | 
						|
                bool "Provisioning debug"
 | 
						|
                help
 | 
						|
                    Enable Provisioning debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_ACCESS
 | 
						|
                bool "Access layer debug"
 | 
						|
                help
 | 
						|
                    Enable Access layer debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_MODEL
 | 
						|
                bool "Foundation model debug"
 | 
						|
                help
 | 
						|
                    Enable Foundation Models debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_ADV
 | 
						|
                bool "Advertising debug"
 | 
						|
                help
 | 
						|
                    Enable advertising debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_LOW_POWER
 | 
						|
                bool "Low Power debug"
 | 
						|
                help
 | 
						|
                    Enable Low Power debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_FRIEND
 | 
						|
                bool "Friend debug"
 | 
						|
                help
 | 
						|
                    Enable Friend debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
            config BLE_MESH_DEBUG_PROXY
 | 
						|
                bool "Proxy debug"
 | 
						|
                depends on BLE_MESH_PROXY
 | 
						|
                help
 | 
						|
                    Enable Proxy protocol debug logs for the BLE Mesh functionality.
 | 
						|
 | 
						|
        endif # BLE_MESH_DEBUG
 | 
						|
 | 
						|
    endmenu
 | 
						|
 | 
						|
endif # BLE_MESH
 |