Hi Michał, > On Jun 18, 2019, at 4:27 AM, Michał Lowas-Rzechonek <michal.lowas-rzechonek@xxxxxxxxxxx> wrote: > > This patch enables us to implement more I/O layers, particularly non-HCI > ones. > > As of Bluetooth 5.1, standard HCI commands don't allow precise control > over mesh-related advertising, making this I/O layer very inefficient. > Therefore, it is desirable to have an option to use a non-HCI transport > to talk to radio transceiver, at least until Bluetooth extends HCI so > that standard BLE Controllers achieve good performance. The intent if the architecture was to allow for finer control with future controllers, and thus a mesh-io.c which doesn’t assume anything about underlying controllers, and then an *initial* mesh-io-generic.c which is what gets used by 4.x controllers... as more controllers are supported with finer tuning available, then mesh-io-<bt5+>.c can be added to the abstracted list. > > Another use case would be a non-local radio: the mesh stack can run on a > secure device, but due to physical constraints it might need to use > radio transceiver located at a distance, connected e.g. via LAN. > > Michał Lowas-Rzechonek (1): > mesh: Move HCI handling to mesh-io-generic > > mesh/main.c | 4 +- > mesh/mesh-io-api.h | 3 +- > mesh/mesh-io-generic.c | 203 ++++++++++++++++++++++++++++++++++++----- > mesh/mesh-io.c | 17 ++-- > mesh/mesh-io.h | 2 +- > mesh/mesh.c | 189 +++----------------------------------- > mesh/mesh.h | 4 +- > 7 files changed, 209 insertions(+), 213 deletions(-) > > -- > 2.19.1 >