This rename makes it consistent with Core specification Vol. 3,
part C, 10.2.1 LE security mode 1. This level specifies security
requirements for both SC and legacy pairing, not only SC.
Updated description of this setting.
net_buf structure in Zephyr has field user_data, which was wrongly
ported as os_mbuf->om_data. To stick with porting net_buf as os_mbuf
we can base on old Zephyr's implementation, which was changed in commit
dd09cbc1c455ab1e067b53f46bee7b6d50689bbc. Before it, user_data was part
of data buffer of net_buf. We can implement this the same way, so
data_buf is last N octets of os_mbuf->om_data.
Accomodate mbuf allocation and freeing to NimBLE.
The old default of 1 makes provisioner devices useless, as they can only
provision themselves before they run out of space.
This is port of f2579cb3f26bde3050306401de9cd2837c94024f
Added mode allowing to enforce pairing only in SC mode 1 level 4. This mode is required to pass
GAP/SEC/SEM/BI testcases. Added BLE_SM_SC_LVL config to allow pairing only in selected levels.
Moves mesh feature configuration to a separate module, deprecating the
bt_mesh_cfg_srv structure. The initial values for the features should
now be enabled through KConfig, where new config entries have been added
for each feature.
This removes the upward dependency on the config server from the core
stack, and makes the config server a pure frontend for the configuration
states, as all spec mandated behavior around the feature states is now
encapsulated.
this is port of ad2fd44d7ad915e66765ba17ce53d4c5829a0efb
Encapsulates the Heartbeat state and functionality in a separate
heartbeat module, removing all manipulation of the heartbeat state from
the transport and config server modules.
this is port of 0dc9e5cd9695e4ab403bf13f4d51d84de6a5ebb9
Currently all provisioning procedure into common source
files call `prov.c`, that will not compile separately.
Add `BT_MESH_NODE` to control whether nodes are supported
and device provisioning is supported, this will be used in
provisioner role.
Add more provisioner OOB authentication method.
this is port of 5374245dd66e630932267663546d5f1108aff9b5 with patch
0bcd66ac36d8c02d2c3b3851c4086e8b692578a6
This is a major refactoring of the handling of the cryptographic
material of both the network and transport layers. The aim is to
encapsulate the key object manipulation, and improve overall modularity.
Pulls Applications and Subnets out of the bt_mesh and into separate
modules, with static storage types on the data. This has several
side-effects:
- The Config Server no longer operates directly on the bt_mesh.subs and
bt_mesh.apps lists, but goes through a public configuration interface,
following the pattern set in #27908.
- All iteration through the keys is done through iteration APIs
- Key resolution on RX and TX is centralized.
- Changes to the keys triggers events the other modules can register
handlers for.
- Friendship credentials are stored in the lpn and friend structures.
this is port of eca014115287bdb8a8a57355514fbd5e1d27b75b
Changes the local network interface to exclusively handle packets for
the local interface, duplicating the buffers in the process.
The loopback mechanism now operates its own packet pool for the local
interface queue. The loopback is moved ahead of encryption, allowing the
local interface packets to go back up the stack without network crypto,
saving a full round of encrypt/decrypt for self-send.
Packets for group addresses the local node subscribes to are now
duplicated, with one unencrypted variant going into the network
queue, and the network bound packets following the regular path to the
advertiser.
Introduces one new configuration for setting the number of loopback
buffers.
this is port of 9bd58062b9fc8272f2950a343bbcef6f3f79f481
and caa9dc7c032f8bfb96f3a6ea20618dd57e0b009f
1 Add Option to specifies the second interval when device
send Unprovisioned Beacon.
2 Move BT_MESH_LPN_SUB_ALL_NODES_ADDR to LPN subgroup.
this is port of 81fc15c4d64aab5f73f8d6ab755fa9688dd67734,
c86966719fef7564e7350cae5f0f2ab843f70eaa and
72315cf01e69ec2df802c6417f100a3777cd0345
Allocates segmented message buffers as slabs in a common pool for RX and
TX. This reduces memory requirements for both TX and RX, as TX messages
can be stored without the network and advertising buffer overhead, and
RX can use only the slabs it needs, instead of allocating a full size
segmented message. This approach also removes the need for decrypting
the segments for each retransmission, reducing overall processing load.
Slab based segmentation for tx also introduces queuing of segmented
messages, which allows the application layer to send multiple messages
to the same destination without violating Bluetooth Mesh specification
v1.0.1, section 3.6.4.1. This mechanism is provided through a flag that
blocks segmented messages to a destination which a message is already
being sent to until the previous message finishes.
This changes the SDU size configuration to a symmetrical
RX_SEG_MAX/TX_SEG_MAX pair of configurations, plus a new segment pool
side configuration. It also removes the binding between the TX_SEG_MAX
config and the advertising buffers, reducing the minimum advertising
buffer count from 6 to 3.
this is port of 901b5b2b2b0a33f5426f621277e7238e8b83740b and
7443c1bd3ded598b56db3c931614072098af84e1
Refactor the handling of network nodes and their keys into a separate
Mesh Configuration Database (CDB). This, not only creates a separation
of the local node and the other nodes, but also makes it possible to
implement functions to manage the whole, or at least parts of the mesh
network.
this is port of 29291bfe9ef5af4e6b7ae630812922f668fd0668