On 7/3/2024 7:27 PM, Luiz Augusto von Dentz wrote:
Hi,
On Wed, Jul 3, 2024 at 3:02 AM <quic_prathm@xxxxxxxxxxx> wrote:
From: Prathibha Madugonde <quic_prathm@xxxxxxxxxxx>
Fix for GAP/DISC/NONM/BV-02-C
As per GAP.TS.p44 test spec
IUT does not contain General Discoverable mode and Limited Discoverable
mode in the AD Type Flag. IUT shall send AD Type Flag to PASS the test
case, thus added BR/EDR not supported bit in the AD Type Flag when
discoverable is off.
Signed-off-by: Prathibha Madugonde <quic_prathm@xxxxxxxxxxx>
---
src/advertising.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/advertising.c b/src/advertising.c
index 5d373e088..cfb239585 100644
--- a/src/advertising.c
+++ b/src/advertising.c
@@ -734,8 +734,7 @@ static bool set_flags(struct btd_adv_client *client, uint8_t flags)
/* Set BR/EDR Not Supported if adapter is not discoverable but the
* instance is.
*/
- if ((flags & (BT_AD_FLAG_GENERAL | BT_AD_FLAG_LIMITED)) &&
- !btd_adapter_get_discoverable(client->manager->adapter))
+ if (!btd_adapter_get_discoverable(client->manager->adapter))
flags |= BT_AD_FLAG_NO_BREDR;
if (!bt_ad_add_flags(client->data, &flags, 1))
@@ -1499,6 +1498,17 @@ static DBusMessage *parse_advertisement(struct btd_adv_client *client)
goto fail;
}
+ /* GAP.TS.p44 Test Spec GAP/DISC/NONM/BV-02-C
+ * page 158:
+ * IUT does not contain
+ * ‘LE General Discoverable Mode’ flag or the
+ * ‘LE Limited Discoverable Mode’ flag in the Flags AD Type
+ * But AD Flag Type should be there for the test case to
+ * PASS. Thus BR/EDR Not Supported BIT shall be included
+ * in the AD Type flag.
+ */
+ set_flags(client, bt_ad_get_flags(client->data));
Was there a bug or something that you are having to add this code here?
Hi Luiz,
Yes there is an issue when discoverable is off the parse_discoverable()
is not triggering when we do advertise on. Fixed this issue and sending
in next patch- [PATCH BlueZ] Set BREDR not supported bit in AD Flag when
discoverable is off. Please review.
Thanks
Prathibha Madugonde
err = refresh_advertisement(client, add_adv_callback);
if (!err)
--
2.17.1