All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bluez PATCH] btmgmt: Add support to enable LL privacy
@ 2021-04-05 14:58 Sathish Narasimman
  2021-04-05 15:42 ` [Bluez] " bluez.test.bot
  2021-04-06  3:08 ` [Bluez PATCH] " Luiz Augusto von Dentz
  0 siblings, 2 replies; 7+ messages in thread
From: Sathish Narasimman @ 2021-04-05 14:58 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: chethan.tumkur.narayan, ravishankar.srivatsa, Sathish Narasimman

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@intel.com>
---
 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


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-04-14 11:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-05 14:58 [Bluez PATCH] btmgmt: Add support to enable LL privacy Sathish Narasimman
2021-04-05 15:42 ` [Bluez] " bluez.test.bot
2021-04-06  3:08 ` [Bluez PATCH] " Luiz Augusto von Dentz
2021-04-06  8:00   ` Marcel Holtmann
2021-04-14  5:13     ` Narasimman, Sathish
2021-04-14 10:06       ` Marcel Holtmann
2021-04-14 11:14         ` Narasimman, Sathish

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.