Re: [PATCH v1] Added BREDR not supported bit in AD Flag when discoverable is off

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

 



Hi,

On Mon, Jul 1, 2024 at 7:03 AM Prathibha Madugonde
<quic_prathm@xxxxxxxxxxx> wrote:
>
>
>
> On 6/28/2024 7:08 PM, Luiz Augusto von Dentz wrote:
> > Hi,
> >
> > On Fri, Jun 28, 2024 at 3:24 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 | 16 ++++++++++++++++
> >>   1 file changed, 16 insertions(+)
> >>
> >> diff --git a/src/advertising.c b/src/advertising.c
> >> index 5d373e088..9857ceceb 100644
> >> --- a/src/advertising.c
> >> +++ b/src/advertising.c
> >> @@ -1444,6 +1444,7 @@ static DBusMessage *parse_advertisement(struct btd_adv_client *client)
> >>   {
> >>          struct adv_parser *parser;
> >>          int err;
> >> +       uint8_t flags;
> >>
> >>          for (parser = parsers; parser && parser->name; parser++) {
> >>                  DBusMessageIter iter;
> >> @@ -1499,6 +1500,21 @@ static DBusMessage *parse_advertisement(struct btd_adv_client *client)
> >>                  goto fail;
> >>          }
> >>
> >> +       if (!btd_adapter_get_discoverable(client->manager->adapter)) {
> >> +               /* 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.
> >> +                */
> >> +               flags = bt_ad_get_flags(client->data);
> >> +               flags |= BT_AD_FLAG_NO_BREDR;
> >> +               bt_ad_add_flags(client->data, &flags, 1);
> >> +       }
> >
> > I think we would be much better off using broadcaster role for such a
> > test case or does it require to be connectable? Anyway I don't think
> > there is a requirement to disable BR/EDR when not discoverable, so if
> > we really need to pass specific flags then perhaps it would be better
> > to create a Flags property so clients can set themselves.
> >
> Hi,
> This particular test case require IUT to be in connectable. There is
> already code snippet to disable BR/EDR when adapter is not discoverable
> in the set_flags() like below.
>         /* 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))
>                 flags |= BT_AD_FLAG_NO_BREDR;
>
> Hence using the same logic. Currently AD flags(BT_AD_FLAG_LIMITED,
> BT_AD_FLAG_GENERAL & BT_AD_FLAG_NO_BREDR) is managed based on properties
> discoverable, discoverable timeout and adapter discoverable.

Oh, in that case why didn't you change that statement? Anyway, the PTS
requiring the use of flags is rather unconventional here but I think
it should be fine not marking BR/EDR support if it is not
discoverable.

> --
> Prathibha Madugonde
>
>
> >>          err = refresh_advertisement(client, add_adv_callback);
> >>
> >>          if (!err)
> >> --
> >> 2.17.1
> >>
> >
> >



-- 
Luiz Augusto von Dentz





[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