| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181 |
- 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
- select BTDM_BLE_MESH_SCAN_DUPL_EN
- 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.
- config BLE_MESH_MEM_ALLOC_MODE_INTERNAL
- bool "Internal DRAM"
- config BLE_MESH_MEM_ALLOC_MODE_EXTERNAL
- bool "External SPIRAM"
- depends on ESP32_SPIRAM_SUPPORT
- config BLE_MESH_MEM_ALLOC_MODE_DEFAULT
- bool "Default alloc mode"
- depends on ESP32_SPIRAM_SUPPORT
- 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 && (ESP32_SPIRAM_SUPPORT || ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY)
- 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 ESP32_SPIRAM_SUPPORT
- 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_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_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.
- 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.
- 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.
- 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
|