Message ID | 20240703070220.15246-1-quic_prathm@quicinc.com |
---|---|
State | New |
Headers | show |
Series | [v2] Added BREDR not supported bit in AD Flag when discoverable is off | expand |
On 7/3/2024 7:27 PM, Luiz Augusto von Dentz wrote: > Hi, > > On Wed, Jul 3, 2024 at 3:02 AM <quic_prathm@quicinc.com> wrote: >> >> From: Prathibha Madugonde <quic_prathm@quicinc.com> >> >> 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@quicinc.com> >> --- >> 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 >> > >
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)); + err = refresh_advertisement(client, add_adv_callback); if (!err)