@@ -70,6 +70,9 @@ static inline int adv_send(struct bt_mesh_adv_inst *inst, uint16_t *adv_duration
7070#endif
7171#if CONFIG_BLE_MESH_RELAY_ADV_BUF
7272 case BLE_MESH_ADV_RELAY_DATA :
73+ #endif
74+ #if CONFIG_BLE_MESH_PROXY_SOLIC_PDU_TX
75+ case BLE_MESH_ADV_PROXY_SOLIC :
7376#endif
7477 case BLE_MESH_ADV_BEACON :
7578 case BLE_MESH_ADV_URI : {
@@ -96,9 +99,20 @@ static inline int adv_send(struct bt_mesh_adv_inst *inst, uint16_t *adv_duration
9699 param .primary_phy = BLE_MESH_ADV_PHY_1M ;
97100 param .secondary_phy = BLE_MESH_ADV_PHY_1M ;
98101
99- bt_mesh_adv_buf_ref_debug (__func__ , buf , 4U , BLE_MESH_BUF_REF_SMALL );
100-
101- err = bt_le_ext_adv_start (inst -> id , & param , & ad , 1 , NULL , 0 );
102+ #if CONFIG_BLE_MESH_PROXY_SOLIC_PDU_TX
103+ if (BLE_MESH_ADV (buf )-> type == BLE_MESH_ADV_PROXY_SOLIC ) {
104+ bt_mesh_adv_buf_ref_debug (__func__ , buf , 3U , BLE_MESH_BUF_REF_SMALL );
105+ struct bt_mesh_adv_data solic_ad [2 ] = {
106+ BLE_MESH_ADV_DATA_BYTES (BLE_MESH_DATA_UUID16_ALL , 0x59 , 0x18 ),
107+ BLE_MESH_ADV_DATA (BLE_MESH_DATA_SVC_DATA16 , buf -> data , buf -> len ),
108+ };
109+ err = bt_le_ext_adv_start (CONFIG_BLE_MESH_ADV_INST_ID , & param , solic_ad , ARRAY_SIZE (solic_ad ), NULL , 0 );
110+ } else
111+ #endif
112+ {
113+ bt_mesh_adv_buf_ref_debug (__func__ , buf , 4U , BLE_MESH_BUF_REF_SMALL );
114+ err = bt_le_ext_adv_start (inst -> id , & param , & ad , 1 , NULL , 0 );
115+ }
102116 }
103117 break ;
104118#if CONFIG_BLE_MESH_SUPPORT_BLE_ADV
0 commit comments