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" select BLE_SCAN_DUPLICATE select BLE_MESH_SCAN_DUPLICATE_EN default y help Enable this option to allow using specific duplicate scan filter in BLE Mesh, and Scan Duplicate Type must be set to 0x02. 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. config BLE_MESH_NODE bool "Support for BLE Mesh Node" help Enable the device to be provisioned into a node. config BLE_MESH_PROVISIONER bool "Support for BLE Mesh Provisioner" help Enable the device to be a provisioner. 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 20 range 1 100 help This option specifies how may unprovisioned devices can be added to device queue for provisioning. config BLE_MESH_MAX_STORED_NODES int "Maximum number of nodes whose information can be stored" default 20 range 1 1000 help This option specifies the maximum number of nodes whose information can be stored by a provisioner in its upper layer. config BLE_MESH_MAX_PROV_NODES int "Maximum number of devices that can be provisioned by provisioner" default 20 range 1 100 help This option specifies how many devices can be provisioned by provisioner. 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. 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. 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. config BLE_MESH_PROVISIONER_APP_KEY_COUNT int "Maximum number of application keys that can be owned by provisioner" default 9 range 1 4096 help This option specifies how many application keys the provisioner can have. 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. 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. # 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 bool "BLE Mesh GATT Proxy Service" select BLE_MESH_PROXY 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. config BLE_MESH_NODE_ID_TIMEOUT int "Node Identity advertising timeout" depends on BLE_MESH_GATT_PROXY 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. if BLE_MESH_PROXY config BLE_MESH_PROXY_FILTER_SIZE int "Maximum number of filter entries per Proxy Client" default 1 default 3 if BLE_MESH_GATT_PROXY range 1 32767 help This option specifies how many Proxy Filter entries the local node supports. endif # BLE_MESH_PROXY config BLE_MESH_NET_BUF_POOL_USAGE bool "BLE Mesh net buffer pool usage tracking" default y help Enable BLE Mesh net buffer pool tracking. config BLE_MESH_SETTINGS bool "Store BLE Mesh Node configuration persistently" default n help When selected, the BLE Mesh stack will take care of storing/restoring the BLE Mesh configuration persistently in flash. Currently this only supports storing BLE Mesh node configuration. 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. config BLE_MESH_SEQ_STORE_RATE int "How often the sequence number gets updated in storage" range 0 1000000 default 128 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 5 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 PRL 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. 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. 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. 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. 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. 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. 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_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. 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. 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 20 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" help Support for acting as a Mesh Relay Node. config BLE_MESH_LOW_POWER bool "Support for Low Power features" help Enable this option to operate as a Low Power Node. if BLE_MESH_LOW_POWER config BLE_MESH_LPN_ESTABLISHMENT bool "Perform Friendship establishment using low power" default y 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. config BLE_MESH_LPN_AUTO bool "Automatically start looking for Friend nodes once provisioned" default y 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). 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 8 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. 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. 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. 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. endif # BLE_MESH_LOW_POWER config BLE_MESH_FRIEND bool "Support for acting as a Friend Node" 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. 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. 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. 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. 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_IRQ_LOCK bool "Used the IRQ lock instead of task lock" help To improve the real-time requirements of bt controller in BLE Mesh, task lock is used to replace IRQ lock. 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. menu "Support for BLE Mesh Client 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_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. endmenu 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. 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_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