If the Bluetooth controller supports LL privacy this command will be
used to test the same.
"sudo btmgmt power off"
"sudo btmgmt llprivacy on"
"sudo btmgmt power on"
Signed-off-by: Sathish Narasimman <[email protected]>
---
tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/tools/btmgmt.c b/tools/btmgmt.c
index 93d244ff8ec8..4a53c3768fe9 100644
--- a/tools/btmgmt.c
+++ b/tools/btmgmt.c
@@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
cmd_setting(MGMT_OP_SET_BREDR, argc, argv);
}
+static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void *param,
+ void *user_data)
+{
+ if (status != 0)
+ error("Could not set LL RPA resolution with status 0x%02x (%s)",
+ status, mgmt_errstr(status));
+ else
+ print("LL RPA Resolution successfully set");
+
+ bt_shell_noninteractive_quit(EXIT_SUCCESS);
+}
+
+static void cmd_set_ll_rpa_resoln(int argc, char **argv)
+{
+ /* 15c0a148-c273-11ea-b3de-0242ac130004 */
+ static const uint8_t rpa_resolution_uuid[16] = {
+ 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
+ 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
+ };
+ struct mgmt_cp_set_exp_feature cp;
+ uint16_t index;
+
+ memset(&cp, 0, sizeof(cp));
+ memcpy(cp.uuid, rpa_resolution_uuid, 16);
+
+ index = mgmt_index;
+ if (index == MGMT_INDEX_NONE)
+ index = 0;
+
+ if (parse_setting(argc, argv, &cp.action) == false)
+ return bt_shell_noninteractive_quit(EXIT_FAILURE);
+
+ mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
+ sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL);
+}
+
static void cmd_privacy(int argc, char **argv)
{
struct mgmt_cp_set_privacy cp;
@@ -5243,6 +5279,8 @@ static const struct bt_shell_menu main_menu = {
cmd_bredr, "Toggle BR/EDR support", },
{ "privacy", "<on/off>",
cmd_privacy, "Toggle privacy support" },
+ { "llprivacy", "<on/off>",
+ cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
{ "class", "<major> <minor>",
cmd_class, "Set device major/minor class" },
{ "disconnect", "[-t type] <remote address>",
--
2.17.1
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=460883
---Test result---
##############################
Test: CheckPatch - PASS
##############################
Test: CheckGitLint - PASS
##############################
Test: CheckBuild: Setup ELL - PASS
##############################
Test: CheckBuild: Setup - PASS
##############################
Test: CheckBuild - PASS
##############################
Test: MakeCheck - PASS
##############################
Test: CheckBuild w/external ell - PASS
---
Regards,
Linux Bluetooth
Hi Luiz,
>> If the Bluetooth controller supports LL privacy this command will be
>> used to test the same.
>> "sudo btmgmt power off"
>> "sudo btmgmt llprivacy on"
>> "sudo btmgmt power on"
>>
>> Signed-off-by: Sathish Narasimman <[email protected]>
>> ---
>> tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 38 insertions(+)
>>
>> diff --git a/tools/btmgmt.c b/tools/btmgmt.c
>> index 93d244ff8ec8..4a53c3768fe9 100644
>> --- a/tools/btmgmt.c
>> +++ b/tools/btmgmt.c
>> @@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
>> cmd_setting(MGMT_OP_SET_BREDR, argc, argv);
>> }
>>
>> +static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void *param,
>> + void *user_data)
>> +{
>> + if (status != 0)
>> + error("Could not set LL RPA resolution with status 0x%02x (%s)",
>> + status, mgmt_errstr(status));
>> + else
>> + print("LL RPA Resolution successfully set");
>> +
>> + bt_shell_noninteractive_quit(EXIT_SUCCESS);
>> +}
>> +
>> +static void cmd_set_ll_rpa_resoln(int argc, char **argv)
>> +{
>> + /* 15c0a148-c273-11ea-b3de-0242ac130004 */
>> + static const uint8_t rpa_resolution_uuid[16] = {
>> + 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
>> + 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
>> + };
>> + struct mgmt_cp_set_exp_feature cp;
>> + uint16_t index;
>> +
>> + memset(&cp, 0, sizeof(cp));
>> + memcpy(cp.uuid, rpa_resolution_uuid, 16);
>> +
>> + index = mgmt_index;
>> + if (index == MGMT_INDEX_NONE)
>> + index = 0;
>> +
>> + if (parse_setting(argc, argv, &cp.action) == false)
>> + return bt_shell_noninteractive_quit(EXIT_FAILURE);
>> +
>> + mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
>> + sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL);
>> +}
>> +
>> static void cmd_privacy(int argc, char **argv)
>> {
>> struct mgmt_cp_set_privacy cp;
>> @@ -5243,6 +5279,8 @@ static const struct bt_shell_menu main_menu = {
>> cmd_bredr, "Toggle BR/EDR support", },
>> { "privacy", "<on/off>",
>> cmd_privacy, "Toggle privacy support" },
>> + { "llprivacy", "<on/off>",
>> + cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
>
> Let's have it as a parameter of privacy command <on/off/ll> so when a
> user enters ll it enables link-layer privacy.
please don’t. The privacy setting means that we start using RPAs.
Also what is wrong with exp-privacy command that I already added.
Regards
Marcel
Hi Sathish,
On Mon, Apr 5, 2021 at 3:40 PM Sathish Narasimman
<[email protected]> wrote:
>
> If the Bluetooth controller supports LL privacy this command will be
> used to test the same.
> "sudo btmgmt power off"
> "sudo btmgmt llprivacy on"
> "sudo btmgmt power on"
>
> Signed-off-by: Sathish Narasimman <[email protected]>
> ---
> tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/tools/btmgmt.c b/tools/btmgmt.c
> index 93d244ff8ec8..4a53c3768fe9 100644
> --- a/tools/btmgmt.c
> +++ b/tools/btmgmt.c
> @@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
> cmd_setting(MGMT_OP_SET_BREDR, argc, argv);
> }
>
> +static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void *param,
> + void *user_data)
> +{
> + if (status != 0)
> + error("Could not set LL RPA resolution with status 0x%02x (%s)",
> + status, mgmt_errstr(status));
> + else
> + print("LL RPA Resolution successfully set");
> +
> + bt_shell_noninteractive_quit(EXIT_SUCCESS);
> +}
> +
> +static void cmd_set_ll_rpa_resoln(int argc, char **argv)
> +{
> + /* 15c0a148-c273-11ea-b3de-0242ac130004 */
> + static const uint8_t rpa_resolution_uuid[16] = {
> + 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
> + 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
> + };
> + struct mgmt_cp_set_exp_feature cp;
> + uint16_t index;
> +
> + memset(&cp, 0, sizeof(cp));
> + memcpy(cp.uuid, rpa_resolution_uuid, 16);
> +
> + index = mgmt_index;
> + if (index == MGMT_INDEX_NONE)
> + index = 0;
> +
> + if (parse_setting(argc, argv, &cp.action) == false)
> + return bt_shell_noninteractive_quit(EXIT_FAILURE);
> +
> + mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
> + sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL);
> +}
> +
> static void cmd_privacy(int argc, char **argv)
> {
> struct mgmt_cp_set_privacy cp;
> @@ -5243,6 +5279,8 @@ static const struct bt_shell_menu main_menu = {
> cmd_bredr, "Toggle BR/EDR support", },
> { "privacy", "<on/off>",
> cmd_privacy, "Toggle privacy support" },
> + { "llprivacy", "<on/off>",
> + cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
Let's have it as a parameter of privacy command <on/off/ll> so when a
user enters ll it enables link-layer privacy.
> { "class", "<major> <minor>",
> cmd_class, "Set device major/minor class" },
> { "disconnect", "[-t type] <remote address>",
> --
> 2.17.1
>
--
Luiz Augusto von Dentz
Hi
> -----Original Message-----
> From: Marcel Holtmann <[email protected]>
> Sent: Tuesday, April 6, 2021 1:31 PM
> To: Luiz Augusto von Dentz <[email protected]>
> Cc: Narasimman, Sathish <[email protected]>; linux-
> [email protected]; Tumkur Narayan, Chethan
> <[email protected]>; Srivatsa, Ravishankar
> <[email protected]>
> Subject: Re: [Bluez PATCH] btmgmt: Add support to enable LL privacy
>
> Hi Luiz,
>
> >> If the Bluetooth controller supports LL privacy this command will be
> >> used to test the same.
> >> "sudo btmgmt power off"
> >> "sudo btmgmt llprivacy on"
> >> "sudo btmgmt power on"
> >>
> >> Signed-off-by: Sathish Narasimman <[email protected]>
> >> ---
> >> tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
> >> 1 file changed, 38 insertions(+)
> >>
> >> diff --git a/tools/btmgmt.c b/tools/btmgmt.c index
> >> 93d244ff8ec8..4a53c3768fe9 100644
> >> --- a/tools/btmgmt.c
> >> +++ b/tools/btmgmt.c
> >> @@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
> >> cmd_setting(MGMT_OP_SET_BREDR, argc, argv); }
> >>
> >> +static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void *param,
> >> + void *user_data) {
> >> + if (status != 0)
> >> + error("Could not set LL RPA resolution with status 0x%02x (%s)",
> >> + status, mgmt_errstr(status));
> >> + else
> >> + print("LL RPA Resolution successfully set");
> >> +
> >> + bt_shell_noninteractive_quit(EXIT_SUCCESS);
> >> +}
> >> +
> >> +static void cmd_set_ll_rpa_resoln(int argc, char **argv) {
> >> + /* 15c0a148-c273-11ea-b3de-0242ac130004 */
> >> + static const uint8_t rpa_resolution_uuid[16] = {
> >> + 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
> >> + 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
> >> + };
> >> + struct mgmt_cp_set_exp_feature cp;
> >> + uint16_t index;
> >> +
> >> + memset(&cp, 0, sizeof(cp));
> >> + memcpy(cp.uuid, rpa_resolution_uuid, 16);
> >> +
> >> + index = mgmt_index;
> >> + if (index == MGMT_INDEX_NONE)
> >> + index = 0;
> >> +
> >> + if (parse_setting(argc, argv, &cp.action) == false)
> >> + return bt_shell_noninteractive_quit(EXIT_FAILURE);
> >> +
> >> + mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
> >> + sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL); }
> >> +
> >> static void cmd_privacy(int argc, char **argv) {
> >> struct mgmt_cp_set_privacy cp; @@ -5243,6 +5279,8 @@ static
> >> const struct bt_shell_menu main_menu = {
> >> cmd_bredr, "Toggle BR/EDR support", },
> >> { "privacy", "<on/off>",
> >> cmd_privacy, "Toggle privacy support" },
> >> + { "llprivacy", "<on/off>",
> >> + cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
> >
> > Let's have it as a parameter of privacy command <on/off/ll> so when a
> > user enters ll it enables link-layer privacy.
>
> please don’t. The privacy setting means that we start using RPAs.
>
> Also what is wrong with exp-privacy command that I already added.
Gentle Reminder.
>
> Regards
>
> Marcel
Regards
Sathish N
Hi Sathish,
>>>> If the Bluetooth controller supports LL privacy this command will be
>>>> used to test the same.
>>>> "sudo btmgmt power off"
>>>> "sudo btmgmt llprivacy on"
>>>> "sudo btmgmt power on"
>>>>
>>>> Signed-off-by: Sathish Narasimman <[email protected]>
>>>> ---
>>>> tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
>>>> 1 file changed, 38 insertions(+)
>>>>
>>>> diff --git a/tools/btmgmt.c b/tools/btmgmt.c index
>>>> 93d244ff8ec8..4a53c3768fe9 100644
>>>> --- a/tools/btmgmt.c
>>>> +++ b/tools/btmgmt.c
>>>> @@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
>>>> cmd_setting(MGMT_OP_SET_BREDR, argc, argv); }
>>>>
>>>> +static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void *param,
>>>> + void *user_data) {
>>>> + if (status != 0)
>>>> + error("Could not set LL RPA resolution with status 0x%02x (%s)",
>>>> + status, mgmt_errstr(status));
>>>> + else
>>>> + print("LL RPA Resolution successfully set");
>>>> +
>>>> + bt_shell_noninteractive_quit(EXIT_SUCCESS);
>>>> +}
>>>> +
>>>> +static void cmd_set_ll_rpa_resoln(int argc, char **argv) {
>>>> + /* 15c0a148-c273-11ea-b3de-0242ac130004 */
>>>> + static const uint8_t rpa_resolution_uuid[16] = {
>>>> + 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
>>>> + 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
>>>> + };
>>>> + struct mgmt_cp_set_exp_feature cp;
>>>> + uint16_t index;
>>>> +
>>>> + memset(&cp, 0, sizeof(cp));
>>>> + memcpy(cp.uuid, rpa_resolution_uuid, 16);
>>>> +
>>>> + index = mgmt_index;
>>>> + if (index == MGMT_INDEX_NONE)
>>>> + index = 0;
>>>> +
>>>> + if (parse_setting(argc, argv, &cp.action) == false)
>>>> + return bt_shell_noninteractive_quit(EXIT_FAILURE);
>>>> +
>>>> + mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
>>>> + sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL); }
>>>> +
>>>> static void cmd_privacy(int argc, char **argv) {
>>>> struct mgmt_cp_set_privacy cp; @@ -5243,6 +5279,8 @@ static
>>>> const struct bt_shell_menu main_menu = {
>>>> cmd_bredr, "Toggle BR/EDR support", },
>>>> { "privacy", "<on/off>",
>>>> cmd_privacy, "Toggle privacy support" },
>>>> + { "llprivacy", "<on/off>",
>>>> + cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
>>>
>>> Let's have it as a parameter of privacy command <on/off/ll> so when a
>>> user enters ll it enables link-layer privacy.
>>
>> please don’t. The privacy setting means that we start using RPAs.
>>
>> Also what is wrong with exp-privacy command that I already added.
>
> Gentle Reminder.
gentle reminder of what? Please re-read my response.
Regards
Marcel
Hi Marcel
> -----Original Message-----
> From: Marcel Holtmann <[email protected]>
> Sent: Wednesday, April 14, 2021 3:37 PM
> To: Narasimman, Sathish <[email protected]>
> Cc: Luiz Augusto von Dentz <[email protected]>; linux-
> [email protected]; Tumkur Narayan, Chethan
> <[email protected]>; Srivatsa, Ravishankar
> <[email protected]>
> Subject: Re: [Bluez PATCH] btmgmt: Add support to enable LL privacy
>
> Hi Sathish,
>
> >>>> If the Bluetooth controller supports LL privacy this command will
> >>>> be used to test the same.
> >>>> "sudo btmgmt power off"
> >>>> "sudo btmgmt llprivacy on"
> >>>> "sudo btmgmt power on"
> >>>>
> >>>> Signed-off-by: Sathish Narasimman <[email protected]>
> >>>> ---
> >>>> tools/btmgmt.c | 38 ++++++++++++++++++++++++++++++++++++++
> >>>> 1 file changed, 38 insertions(+)
> >>>>
> >>>> diff --git a/tools/btmgmt.c b/tools/btmgmt.c index
> >>>> 93d244ff8ec8..4a53c3768fe9 100644
> >>>> --- a/tools/btmgmt.c
> >>>> +++ b/tools/btmgmt.c
> >>>> @@ -2261,6 +2261,42 @@ static void cmd_bredr(int argc, char **argv)
> >>>> cmd_setting(MGMT_OP_SET_BREDR, argc, argv); }
> >>>>
> >>>> +static void ll_rpa_resoln_rsp(uint8_t status, uint16_t len, const void
> *param,
> >>>> + void *user_data) {
> >>>> + if (status != 0)
> >>>> + error("Could not set LL RPA resolution with status 0x%02x (%s)",
> >>>> + status, mgmt_errstr(status));
> >>>> + else
> >>>> + print("LL RPA Resolution successfully set");
> >>>> +
> >>>> + bt_shell_noninteractive_quit(EXIT_SUCCESS);
> >>>> +}
> >>>> +
> >>>> +static void cmd_set_ll_rpa_resoln(int argc, char **argv) {
> >>>> + /* 15c0a148-c273-11ea-b3de-0242ac130004 */
> >>>> + static const uint8_t rpa_resolution_uuid[16] = {
> >>>> + 0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
> >>>> + 0xea, 0x11, 0x73, 0xc2, 0x48, 0xa1, 0xc0, 0x15,
> >>>> + };
> >>>> + struct mgmt_cp_set_exp_feature cp;
> >>>> + uint16_t index;
> >>>> +
> >>>> + memset(&cp, 0, sizeof(cp));
> >>>> + memcpy(cp.uuid, rpa_resolution_uuid, 16);
> >>>> +
> >>>> + index = mgmt_index;
> >>>> + if (index == MGMT_INDEX_NONE)
> >>>> + index = 0;
> >>>> +
> >>>> + if (parse_setting(argc, argv, &cp.action) == false)
> >>>> + return bt_shell_noninteractive_quit(EXIT_FAILURE);
> >>>> +
> >>>> + mgmt_send(mgmt, MGMT_OP_SET_EXP_FEATURE, index,
> >>>> + sizeof(cp), &cp, ll_rpa_resoln_rsp, NULL, NULL);
> >>>> + }
> >>>> +
> >>>> static void cmd_privacy(int argc, char **argv) {
> >>>> struct mgmt_cp_set_privacy cp; @@ -5243,6 +5279,8 @@ static
> >>>> const struct bt_shell_menu main_menu = {
> >>>> cmd_bredr, "Toggle BR/EDR support", },
> >>>> { "privacy", "<on/off>",
> >>>> cmd_privacy, "Toggle privacy support" },
> >>>> + { "llprivacy", "<on/off>",
> >>>> + cmd_set_ll_rpa_resoln, "Toggle LL privacy support" },
> >>>
> >>> Let's have it as a parameter of privacy command <on/off/ll> so when
> >>> a user enters ll it enables link-layer privacy.
> >>
> >> please don’t. The privacy setting means that we start using RPAs.
> >>
> >> Also what is wrong with exp-privacy command that I already added.
> >
> > Gentle Reminder.
>
> gentle reminder of what? Please re-read my response.
>
My mistake. Was misunderstood that the comment was regarding what Luiz asked to Change.
Also, I didn’t rebased the latest code. Found your latest code.
> Regards
>
> Marcel
Regards
Sathish N