[RFC PATCH BlueZ v2 0/7] Initial support for GATT Proxy Service

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

this is my 2nd RFC for adding GATT provisioning and GATT proxy service.
These patches should work on top of my latest Mesh series I just sent:

https://lore.kernel.org/linux-bluetooth/20250711173958.25689-1-ceggers@xxxxxxx/

Please don't forget to update the Ell library to the latest master revision.

Compared to the 1st RFC series, I have made a couple of cleanups and worked on
the following features:

- Proxy configuration messages / Proxy filtering
- Propagation of Beacons via GATT
- Relaying between ADV and GATT (after running 'relay-set' and 'proxy-set'
  in meshctl).

After provisioning two nodes via GATT (with meshctl), I can connect to one
of these nodes and control both from the 'onoff' client. So at least basic
proxy relaying should work now.


On Tuesday, 1 July 2025, 16:22:19 CEST, Christian Eggers wrote:
> This series adds initial support for the GATT Proxy Service feature.
> This allows provision and management of MESH devices from mobile phones.
> 
> Before continuing, I would be happy to get some feedback about this initial
> part (and about what has to be done in order to mainline it). Any help for 
> doing the missing features (e.g. relaying between GATT and ADV) would be 
> highly appreciated.
> 
> What seems to work:
> - Provisioning from another Linux computer via meshctl (sometimes I need
>   to repeatedly enter 'discover-unprovisioned on' and 'provision <uuid>'
>   if it doesn't work on the first try).
> - Reading the composition (composition-get in meshctl). It looks like
>   meshctl tries to connect to the GATT Proxy Service automatically after
>   provisioning, but I have to enter 'connect' several times in order to
>   get a connection. You also need to manually set the target unicast
>   address ('target' command in 'config' menu).
> - Adding extra network keys (Advertising for GATT Proxy Service cycles
>   between different network ids every 3 seconds).
> - Transferring and binding of application keys.
> - Using the OnOff client in meshctl (you again have to set the unicast
>   address in the 'onoff' menu).
> - Provisioning and configuration of an OnOff device from iOS (using
>   the SMART+ app from Ledvance). This app requires at least basic
>   support for proxy configuration messages (patch 4/4).
> 
> What maybe added later:
> - Proper selection of the output interface (GATT vs. ADV) when sending
>   messages.
> - Relaying of network messages / beacons between GATT and ADV
>   interfaces (in order to access further devices via the proxy).
> 
> Note: I don't use the test-join script, because python3-pygobject is
> (currently) not available on my (embedded) system. Instead, I use a
> custom C++ program for the 'Join' and 'Attach' D-Bus calls.

I just noticed that 'test-join' has been superseded by 'test-mesh'. I'll
do some testing with this tool next week.

Happy reviewing :-)
Christian






[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux