Skip to content

Commit 3c25ecb

Browse files
committed
Merge branch 'feature/ble_mesh_console_stack_update_v4.4' into 'release/v4.4'
ble_mesh: stack: Miscellaneous fixes and updates(v4.4) See merge request espressif/esp-idf!22924
2 parents 9b4ccdc + 18a5b07 commit 3c25ecb

File tree

5 files changed

+39
-1
lines changed

5 files changed

+39
-1
lines changed

components/bt/esp_ble_mesh/mesh_core/cfg_srv.c

+6
Original file line numberDiff line numberDiff line change
@@ -1464,6 +1464,9 @@ static void mod_sub_add(struct bt_mesh_model *model,
14641464
goto send_status;
14651465
}
14661466

1467+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
1468+
"SubGroupAddr: 0x%x", sub_addr);
1469+
14671470
for (i = 0; i < ARRAY_SIZE(mod->groups); i++) {
14681471
if (mod->groups[i] == BLE_MESH_ADDR_UNASSIGNED) {
14691472
mod->groups[i] = sub_addr;
@@ -1865,6 +1868,9 @@ static void mod_sub_va_add(struct bt_mesh_model *model,
18651868
goto send_status;
18661869
}
18671870

1871+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
1872+
"SubVirtualAddr: 0x%x", sub_addr);
1873+
18681874
for (i = 0; i < ARRAY_SIZE(mod->groups); i++) {
18691875
if (mod->groups[i] == BLE_MESH_ADDR_UNASSIGNED) {
18701876
mod->groups[i] = sub_addr;

components/bt/esp_ble_mesh/mesh_core/net.c

+7
Original file line numberDiff line numberDiff line change
@@ -1387,10 +1387,12 @@ int bt_mesh_net_decode(struct net_buf_simple *data, enum bt_mesh_net_if net_if,
13871387
}
13881388

13891389
/* For case MESH/NODE/RLY/BV-01-C, even the DST is RFU, it needs to be forwarded. */
1390+
#if !CONFIG_BLE_MESH_BQB_TEST
13901391
if (BLE_MESH_ADDR_IS_RFU(rx->ctx.recv_dst)) {
13911392
BT_ERR("Destination address is RFU; dropping packet 0x%02x", rx->ctx.recv_dst);
13921393
return -EBADMSG;
13931394
}
1395+
#endif
13941396

13951397
if (net_if != BLE_MESH_NET_IF_LOCAL && bt_mesh_elem_find(rx->ctx.addr)) {
13961398
BT_DBG("Dropping locally originated packet");
@@ -1470,6 +1472,11 @@ void bt_mesh_net_recv(struct net_buf_simple *data, int8_t rssi,
14701472
/* Save the state so the buffer can later be relayed */
14711473
net_buf_simple_save(&buf, &state);
14721474

1475+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_NET,
1476+
"\nNetRecv: ctl: %d, src: %d, dst: %d, ttl: %d, data: 0x%s",
1477+
CTL(buf.data), SRC(buf.data), DST(buf.data), TTL(buf.data),
1478+
bt_hex(buf.data + BLE_MESH_NET_HDR_LEN, buf.len - BLE_MESH_NET_HDR_LEN));
1479+
14731480
rx.local_match = (bt_mesh_fixed_group_match(rx.ctx.recv_dst) ||
14741481
bt_mesh_elem_find(rx.ctx.recv_dst));
14751482

components/bt/esp_ble_mesh/mesh_core/provisioner_prov.c

+8-1
Original file line numberDiff line numberDiff line change
@@ -2725,7 +2725,8 @@ static void prov_retransmit(struct k_work *work)
27252725
#endif
27262726
if (k_uptime_get() - link[idx].tx.start > timeout) {
27272727
BT_WARN("Provisioner timeout, giving up transaction");
2728-
reset_link(idx, CLOSE_REASON_TIMEOUT);
2728+
/* Provisioner should send Link Close here */
2729+
close_link(idx, CLOSE_REASON_TIMEOUT);
27292730
return;
27302731
}
27312732

@@ -2866,6 +2867,12 @@ static void prov_msg_recv(const uint8_t idx)
28662867
return;
28672868

28682869
fail:
2870+
/**
2871+
* For the case MESH/PVNR/PROV/BV-10-C and MESH/PVNR/PROV/BI-14-C,
2872+
* provisioner should send transaction ack before closing the link.
2873+
*/
2874+
gen_prov_ack_send(idx, link[idx].rx.trans_id);
2875+
28692876
close_link(idx, CLOSE_REASON_FAILED);
28702877
return;
28712878
}

components/bt/esp_ble_mesh/mesh_core/proxy_server.c

+2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222
#if (CONFIG_BLE_MESH_NODE && CONFIG_BLE_MESH_PB_GATT) || \
2323
CONFIG_BLE_MESH_GATT_PROXY_SERVER
2424

25+
#if !CONFIG_BLE_MESH_BQB_TEST
2526
/* Not support enabling Proxy Client and Proxy Server simultaneously */
2627
_Static_assert(!(IS_ENABLED(CONFIG_BLE_MESH_GATT_PROXY_SERVER) &&IS_ENABLED(CONFIG_BLE_MESH_GATT_PROXY_CLIENT)),
2728
"Not support Proxy Server and Proxy Client simultaneously");
29+
#endif
2830

2931
#define PDU_TYPE(data) (data[0] & BIT_MASK(6))
3032
#define PDU_SAR(data) (data[0] >> 6)

components/bt/esp_ble_mesh/mesh_core/transport.c

+16
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,11 @@ static int sdu_recv(struct bt_mesh_net_rx *rx, uint32_t seq, uint8_t hdr,
782782
continue;
783783
}
784784

785+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
786+
"\nTNPTRecv: ctl: 0x%04x, ttl: 0x%04x, src: 0x%04x, dst: 0x%04x, payload: 0x%s",
787+
rx->ctl, rx->ctx.recv_ttl, rx->ctx.addr, rx->ctx.recv_dst,
788+
bt_hex(sdu->data, sdu->len));
789+
785790
rx->ctx.app_idx = BLE_MESH_KEY_DEV;
786791
bt_mesh_model_recv(rx, sdu);
787792

@@ -827,6 +832,12 @@ static int sdu_recv(struct bt_mesh_net_rx *rx, uint32_t seq, uint8_t hdr,
827832
sdu, ad, rx->ctx.addr,
828833
rx->ctx.recv_dst, seq,
829834
BLE_MESH_NET_IVI_RX(rx));
835+
836+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
837+
"\nTNPTRecv: ctl: 0x%04x, ttl: 0x%04x, src: 0x%04x, dst: 0x%04x, payload: 0x%s",
838+
rx->ctl, rx->ctx.recv_ttl, rx->ctx.addr, rx->ctx.recv_dst,
839+
bt_hex(sdu->data, sdu->len));
840+
830841
if (err) {
831842
BT_DBG("Unable to decrypt with AppKey 0x%03x",
832843
key->app_idx);
@@ -997,6 +1008,11 @@ static int ctl_recv(struct bt_mesh_net_rx *rx, uint8_t hdr,
9971008

9981009
BT_DBG("OpCode 0x%02x len %u", ctl_op, buf->len);
9991010

1011+
BT_BQB(BLE_MESH_BQB_TEST_LOG_LEVEL_PRIMARY_ID_NODE | BLE_MESH_BQB_TEST_LOG_LEVEL_SUB_ID_TNPT,
1012+
"\nTNPTRecv: ctl: 0x%04x, ttl: 0x%04x, src: 0x%04x, dst: 0x%04x, payload: 0x%s",
1013+
rx->ctl, rx->ctx.recv_ttl, rx->ctx.addr, rx->ctx.recv_dst,
1014+
bt_hex(buf->data, buf->len));
1015+
10001016
switch (ctl_op) {
10011017
case TRANS_CTL_OP_ACK:
10021018
return trans_ack(rx, hdr, buf, seq_auth);

0 commit comments

Comments
 (0)