Bluetooth: GATT: Add option to enforce client change-unware state

This adds BT_GATT_ENFORCE_CHANGE_UNAWARE option which when enable
returns -EAGAIN when notifying or indicating if the client is
change-unware to conform with following statement on the spec:

  'BLUETOOTH CORE SPECIFICATION Version 5.1 | Vol 3, Part G page 2350:
   Except for the Handle Value indication, the  server shall not send
   notifications and indications to such a client until it becomes
   change-aware.'

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
Luiz Augusto von Dentz 2019-02-08 14:10:50 +02:00 committed by Johan Hedberg
commit e919054155
2 changed files with 37 additions and 0 deletions

View file

@ -369,6 +369,19 @@ config BT_GATT_CACHING
characteristics which can be used by clients to detect if anything has
changed on the GATT database.
config BT_GATT_ENFORCE_CHANGE_UNAWARE
bool "GATT Enforce change-unaware state"
default n
depends on BT_GATT_CACHING
help
When enable this option blocks notification and indications to client
to conform to the following statement from the Bluetooth 5.1
specification:
'...the server shall not send notifications and indications to such
a client until it becomes change-aware."
In case the service cannot deal with sudden errors (-EAGAIN) then it
shall not use this option.
config BT_GATT_CLIENT
bool "GATT client support"
help