diff mbox series

[BlueZ,1/1] Fixed issue in bluetooth-meshd which causes HCI error 0x12 when LE scanning is enabled because no random address was set. This is fixed by using the default HCI own device address option.

Message ID 20200818163611.57656-2-daan@dptechnics.com (mailing list archive)
State Superseded
Headers show
Series Fixed issue in bluetooth-meshd which causes HCI | expand

Commit Message

Daan Pape Aug. 18, 2020, 4:36 p.m. UTC
---
 mesh/mesh-io-generic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Brian Gix Aug. 19, 2020, 3:12 a.m. UTC | #1
Hi Daan,

On Tue, 2020-08-18 at 18:36 +0200, Daan Pape wrote:
> ---
>  mesh/mesh-io-generic.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/mesh/mesh-io-generic.c b/mesh/mesh-io-generic.c
> index 67b13a1b9..65fd1c7b9 100644
> --- a/mesh/mesh-io-generic.c
> +++ b/mesh/mesh-io-generic.c
> @@ -321,7 +321,7 @@ static void scan_disable_rsp(const void *buf, uint8_t size,
>  	cmd.type = pvt->active ? 0x01 : 0x00;	/* Passive/Active scanning */
>  	cmd.interval = L_CPU_TO_LE16(0x0010);	/* 10 ms */
>  	cmd.window = L_CPU_TO_LE16(0x0010);	/* 10 ms */
> -	cmd.own_addr_type = 0x01;		/* ADDR_TYPE_RANDOM */
> +	cmd.own_addr_type = 0x00; 		/* Public Device Address */
>  	cmd.filter_policy = 0x00;		/* Accept all */
>  

Our policy is to *always* use random addressing for outbound mesh addressing.  So if this is the root cause of
the warning, we will want to fix it in such a way that random addressing works.  This should only be an issue
when starting up, so perhaps we just need to add a random address set into the startup command chain. 

>  	bt_hci_send(pvt->hci, BT_HCI_CMD_LE_SET_SCAN_PARAMETERS,
> @@ -579,7 +579,7 @@ static void set_send_adv_params(const void *buf, uint8_t size,
>  	cmd.min_interval = L_CPU_TO_LE16(hci_interval);
>  	cmd.max_interval = L_CPU_TO_LE16(hci_interval);
>  	cmd.type = 0x03; /* ADV_NONCONN_IND */
> -	cmd.own_addr_type = 0x01; /* ADDR_TYPE_RANDOM */
> +	cmd.own_addr_type = 0x00; /* Public Device Address */
>  	cmd.direct_addr_type = 0x00;
>  	memset(cmd.direct_addr, 0, 6);
>  	cmd.channel_map = 0x07;
diff mbox series

Patch

diff --git a/mesh/mesh-io-generic.c b/mesh/mesh-io-generic.c
index 67b13a1b9..65fd1c7b9 100644
--- a/mesh/mesh-io-generic.c
+++ b/mesh/mesh-io-generic.c
@@ -321,7 +321,7 @@  static void scan_disable_rsp(const void *buf, uint8_t size,
 	cmd.type = pvt->active ? 0x01 : 0x00;	/* Passive/Active scanning */
 	cmd.interval = L_CPU_TO_LE16(0x0010);	/* 10 ms */
 	cmd.window = L_CPU_TO_LE16(0x0010);	/* 10 ms */
-	cmd.own_addr_type = 0x01;		/* ADDR_TYPE_RANDOM */
+	cmd.own_addr_type = 0x00; 		/* Public Device Address */
 	cmd.filter_policy = 0x00;		/* Accept all */
 
 	bt_hci_send(pvt->hci, BT_HCI_CMD_LE_SET_SCAN_PARAMETERS,
@@ -579,7 +579,7 @@  static void set_send_adv_params(const void *buf, uint8_t size,
 	cmd.min_interval = L_CPU_TO_LE16(hci_interval);
 	cmd.max_interval = L_CPU_TO_LE16(hci_interval);
 	cmd.type = 0x03; /* ADV_NONCONN_IND */
-	cmd.own_addr_type = 0x01; /* ADDR_TYPE_RANDOM */
+	cmd.own_addr_type = 0x00; /* Public Device Address */
 	cmd.direct_addr_type = 0x00;
 	memset(cmd.direct_addr, 0, 6);
 	cmd.channel_map = 0x07;