Bluetooth: Mesh: Remove usage of auto name in AD
The advertiser options to automatically add the name in the scan response and the advertising data will be deprecated. The Mesh files `proxy_srv.c` and `pb_gatt_srv.c` were using BT_LE_ADV_OPT_USE_NAME. Add the device name in the advertising data directly. Signed-off-by: Théo Battrel <theo.battrel@nordicsemi.no>
This commit is contained in:
parent
6c9010be9f
commit
f461ae574f
2 changed files with 25 additions and 20 deletions
|
@ -33,16 +33,9 @@
|
|||
#include <zephyr/logging/log.h>
|
||||
LOG_MODULE_REGISTER(bt_mesh_pb_gatt_srv);
|
||||
|
||||
#if defined(CONFIG_BT_MESH_PB_GATT_USE_DEVICE_NAME)
|
||||
#define ADV_OPT_USE_NAME BT_LE_ADV_OPT_USE_NAME
|
||||
#else
|
||||
#define ADV_OPT_USE_NAME 0
|
||||
#endif
|
||||
|
||||
#define ADV_OPT_PROV \
|
||||
(BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_SCANNABLE | \
|
||||
BT_LE_ADV_OPT_ONE_TIME | ADV_OPT_USE_IDENTITY | \
|
||||
ADV_OPT_USE_NAME)
|
||||
BT_LE_ADV_OPT_ONE_TIME | ADV_OPT_USE_IDENTITY)
|
||||
|
||||
#define FAST_ADV_TIME (60LL * MSEC_PER_SEC)
|
||||
|
||||
|
@ -222,8 +215,10 @@ static const struct bt_data prov_ad[] = {
|
|||
BT_DATA(BT_DATA_SVC_DATA16, prov_svc_data, sizeof(prov_svc_data)),
|
||||
};
|
||||
|
||||
static size_t gatt_prov_adv_create(struct bt_data prov_sd[1])
|
||||
static size_t gatt_prov_adv_create(struct bt_data prov_sd[2])
|
||||
{
|
||||
size_t prov_sd_len = 0;
|
||||
|
||||
const struct bt_mesh_prov *prov = bt_mesh_prov_get();
|
||||
size_t uri_len;
|
||||
|
||||
|
@ -245,7 +240,17 @@ static size_t gatt_prov_adv_create(struct bt_data prov_sd[1])
|
|||
prov_sd[0].data_len = uri_len;
|
||||
prov_sd[0].data = (const uint8_t *)prov->uri;
|
||||
|
||||
return 1;
|
||||
prov_sd_len += 1;
|
||||
|
||||
#if defined(CONFIG_BT_MESH_PB_GATT_USE_DEVICE_NAME)
|
||||
prov_sd[1].type = BT_DATA_NAME_COMPLETE;
|
||||
prov_sd[1].data_len = sizeof(CONFIG_BT_DEVICE_NAME) - 1;
|
||||
prov_sd[1].data = CONFIG_BT_DEVICE_NAME;
|
||||
|
||||
prov_sd_len += 1;
|
||||
#endif
|
||||
|
||||
return prov_sd_len;
|
||||
}
|
||||
|
||||
static int gatt_send(struct bt_conn *conn,
|
||||
|
@ -279,7 +284,7 @@ int bt_mesh_pb_gatt_srv_adv_start(void)
|
|||
.options = ADV_OPT_PROV,
|
||||
ADV_FAST_INT,
|
||||
};
|
||||
struct bt_data prov_sd[1];
|
||||
struct bt_data prov_sd[2];
|
||||
size_t prov_sd_len;
|
||||
int64_t timestamp = fast_adv_timestamp;
|
||||
int64_t elapsed_time = k_uptime_delta(×tamp);
|
||||
|
|
|
@ -44,18 +44,12 @@ LOG_MODULE_REGISTER(bt_mesh_gatt);
|
|||
*/
|
||||
#define PROXY_RANDOM_UPDATE_INTERVAL (10 * 60 * MSEC_PER_SEC)
|
||||
|
||||
#if defined(CONFIG_BT_MESH_PROXY_USE_DEVICE_NAME)
|
||||
#define ADV_OPT_USE_NAME BT_LE_ADV_OPT_USE_NAME
|
||||
#else
|
||||
#define ADV_OPT_USE_NAME 0
|
||||
#endif
|
||||
|
||||
#define ADV_OPT_ADDR(private) (IS_ENABLED(CONFIG_BT_MESH_DEBUG_USE_ID_ADDR) ? \
|
||||
BT_LE_ADV_OPT_USE_IDENTITY : (private) ? BT_LE_ADV_OPT_USE_NRPA : 0)
|
||||
|
||||
#define ADV_OPT_PROXY(private) \
|
||||
(BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_SCANNABLE | ADV_OPT_ADDR(private) | \
|
||||
BT_LE_ADV_OPT_ONE_TIME | ADV_OPT_USE_NAME)
|
||||
BT_LE_ADV_OPT_ONE_TIME)
|
||||
|
||||
static void proxy_send_beacons(struct k_work *work);
|
||||
static int proxy_send(struct bt_conn *conn,
|
||||
|
@ -489,6 +483,12 @@ static const struct bt_data net_id_ad[] = {
|
|||
BT_DATA(BT_DATA_SVC_DATA16, proxy_svc_data, NET_ID_LEN),
|
||||
};
|
||||
|
||||
static const struct bt_data sd[] = {
|
||||
#if defined(CONFIG_BT_MESH_PROXY_USE_DEVICE_NAME)
|
||||
BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME, sizeof(CONFIG_BT_DEVICE_NAME) - 1),
|
||||
#endif
|
||||
};
|
||||
|
||||
static int randomize_bt_addr(void)
|
||||
{
|
||||
/* TODO: There appears to be no way to force an RPA/NRPA refresh. */
|
||||
|
@ -531,7 +531,7 @@ static int enc_id_adv(struct bt_mesh_subnet *sub, uint8_t type,
|
|||
|
||||
err = bt_mesh_adv_gatt_start(
|
||||
type == BT_MESH_ID_TYPE_PRIV_NET ? &slow_adv_param : &fast_adv_param,
|
||||
duration, enc_id_ad, ARRAY_SIZE(enc_id_ad), NULL, 0);
|
||||
duration, enc_id_ad, ARRAY_SIZE(enc_id_ad), sd, ARRAY_SIZE(sd));
|
||||
if (err) {
|
||||
LOG_WRN("Failed to advertise using type 0x%02x (err %d)", type, err);
|
||||
return err;
|
||||
|
@ -616,7 +616,7 @@ static int net_id_adv(struct bt_mesh_subnet *sub, int32_t duration)
|
|||
memcpy(proxy_svc_data + 3, sub->keys[SUBNET_KEY_TX_IDX(sub)].net_id, 8);
|
||||
|
||||
err = bt_mesh_adv_gatt_start(&slow_adv_param, duration, net_id_ad,
|
||||
ARRAY_SIZE(net_id_ad), NULL, 0);
|
||||
ARRAY_SIZE(net_id_ad), sd, ARRAY_SIZE(sd));
|
||||
if (err) {
|
||||
LOG_WRN("Failed to advertise using Network ID (err %d)", err);
|
||||
return err;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue