Hi Marcel > -----Original Message----- > From: Marcel Holtmann <marcel@xxxxxxxxxxxx> > Sent: Wednesday, April 14, 2021 3:37 PM > To: Narasimman, Sathish <sathish.narasimman@xxxxxxxxx> > Cc: Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx>; linux- > bluetooth@xxxxxxxxxxxxxxx; Tumkur Narayan, Chethan > <chethan.tumkur.narayan@xxxxxxxxx>; Srivatsa, Ravishankar > <ravishankar.srivatsa@xxxxxxxxx> > 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 <sathish.narasimman@xxxxxxxxx> > >>>> --- > >>>> 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