Linux-Bluetooth Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v5 1/8] Bluetooth: Translate additional address type correctly
@ 2020-07-23 12:38 Sathish Narasimman
  2020-07-23 12:38 ` [PATCH v5 2/8] Bluetooth: Configure controller address resolution if available Sathish Narasimman
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Sathish Narasimman @ 2020-07-23 12:38 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Marcel Holtmann, Sathish Narsimman

From: Marcel Holtmann <marcel@holtmann.org>

When using controller based address resolution, then the new address
types 0x02 and 0x03 are used. These types need to be converted back into
either public address or random address types.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sathish Narsimman <sathish.narasimman@intel.com>
---
 include/net/bluetooth/hci.h | 6 ++++--
 net/bluetooth/hci_core.c    | 9 +++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 1f18f71363e9..abab8b5981a7 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -2268,8 +2268,10 @@ struct hci_ev_le_conn_complete {
 #define LE_EXT_ADV_SCAN_RSP		0x0008
 #define LE_EXT_ADV_LEGACY_PDU		0x0010
 
-#define ADDR_LE_DEV_PUBLIC	0x00
-#define ADDR_LE_DEV_RANDOM	0x01
+#define ADDR_LE_DEV_PUBLIC		0x00
+#define ADDR_LE_DEV_RANDOM		0x01
+#define ADDR_LE_DEV_PUBLIC_RESOLVED	0x02
+#define ADDR_LE_DEV_RANDOM_RESOLVED	0x03
 
 #define HCI_EV_LE_ADVERTISING_REPORT	0x02
 struct hci_ev_le_advertising_info {
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 6509f785dd14..4af208b82138 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3290,6 +3290,15 @@ struct hci_conn_params *hci_pend_le_action_lookup(struct list_head *list,
 {
 	struct hci_conn_params *param;
 
+	switch (addr_type) {
+	case ADDR_LE_DEV_PUBLIC_RESOLVED:
+		addr_type = ADDR_LE_DEV_PUBLIC;
+		break;
+	case ADDR_LE_DEV_RANDOM_RESOLVED:
+		addr_type = ADDR_LE_DEV_RANDOM;
+		break;
+	}
+
 	list_for_each_entry(param, list, action) {
 		if (bacmp(&param->addr, addr) == 0 &&
 		    param->addr_type == addr_type)
-- 
2.17.1


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

end of thread, back to index

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-23 12:38 [PATCH v5 1/8] Bluetooth: Translate additional address type correctly Sathish Narasimman
2020-07-23 12:38 ` [PATCH v5 2/8] Bluetooth: Configure controller address resolution if available Sathish Narasimman
2020-07-23 12:38 ` [PATCH v5 3/8] Bluetooth: Update resolving list when updating whitelist Sathish Narasimman
2020-07-23 12:38 ` [PATCH v5 4/8] Bluetooth: Translate additional address type during le_conn Sathish Narasimman
2020-07-23 12:39 ` [PATCH v5 5/8] Bluetooth: Let controller creates RPA during le create conn Sathish Narasimman
2020-07-23 12:39 ` [PATCH v5 6/8] Bluetooth: Enable/Disable address resolution " Sathish Narasimman
2020-07-23 12:39 ` [PATCH v5 7/8] Bluetooth: Enable RPA Timeout Sathish Narasimman
2020-07-23 12:39 ` [PATCH v5 8/8] Bluetooth: Enable controller RPA resolution using Experimental feature Sathish Narasimman
2020-07-27 11:46   ` Sathish Narasimman
2020-07-30  9:12   ` Marcel Holtmann

Linux-Bluetooth Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-bluetooth/0 linux-bluetooth/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-bluetooth linux-bluetooth/ https://lore.kernel.org/linux-bluetooth \
		linux-bluetooth@vger.kernel.org
	public-inbox-index linux-bluetooth

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-bluetooth


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git