Bluetooth functionality undependable of node type (extender or gateway)

General

In previous OpenSync’s version (below OpenSync 4.4.0), the Bluetooth was tied to the extender node type from Connection Manager (CM2) point of view. In OpenSync 4.4, this feature removes CM2 limitation and Bluetooth can be controlled via Kconfig therefore it can be selected regardless of node types - gateway or extender.
This feature doesn’t cover Public Bluetooth manager (BLEM) which is coming in next OpenSync 5.2 release but only interaction between CM2 and BLEM plus updating northbound API.

Implementation

Kconfig Changes

We introduced a two new Kconfig options named CM2_BT_BEACON_HANDLER and CM2_BT_CONNECTABLE and they are enabled by default. In case your HW doesn’t support BT, please disable it for your target.
A node can use Bluetooth for two purposes:

  • Reading information only. The option CM2_BT_BEACON_HANDLER manages Bluetooth beaconing on a node. Beaconing makes the nodes discoverable and ready to be added to an OpenSync-enabled network.

  • Write and read information. The option CM2_BT_CONNECTABLE enables writing into OpenSync node. One of the use cases would be to write PPPoE settings over Bluetooth connection. The CM2_BT_CONNECTABLE option depends on CM2_BT_BEACON_HANDLER.

File Changes

We introduced new file cm2_blem.c which interacts with BT and is controlled by upper Kconfig options to enable or disable the compilation of the file within unit.mk.