.. _bluetooth_mesh_models_priv_beacon_srv:

Private Beacon Server
#####################

The Private Beacon Server model is a foundation model defined by the Bluetooth
mesh specification. It is enabled with
:kconfig:option:`CONFIG_BT_MESH_PRIV_BEACON_SRV` option.

The Private Beacon Server model is introduced in the Bluetooth Mesh Profile
Specification version 1.1, and controls the mesh node's Private Beacon state,
Private GATT Proxy state and Private Node Identity state.

The Private Beacons feature adds privacy to the different Bluetooth mesh
beacons by periodically randomizing the beacon input data. This protects the
mesh node from being tracked by devices outside the mesh network, and hides the
network's IV index, IV update and the Key Refresh state. The Private Beacon Server
must be instantiated for the device to support sending of the private beacons,
but the node will process received private beacons without it.

The Private Beacon Server does not have an API of its own, but relies on a
:ref:`bluetooth_mesh_models_priv_beacon_cli` to control it. The Private Beacon
Server model only accepts messages encrypted with the node's device key.

The application can configure the initial parameters of the Private Beacon
Server model through the :c:struct:`bt_mesh_priv_beacon_srv` instance passed to
:c:macro:`BT_MESH_MODEL_PRIV_BEACON_SRV`. Note that if the mesh node stored
changes to this configuration in the settings subsystem, the initial values may
be overwritten upon loading.

The Private Beacon Server model is optional, and can only be instantiated in the
node's primary element.

API reference
*************

.. doxygengroup:: bt_mesh_priv_beacon_srv
   :project: Zephyr
   :members:
