Commit Graph

1685 Commits

Author SHA1 Message Date
weitianhua
7f66230e9e Rewrite a2dp clean_up function 2020-09-18 14:14:20 +08:00
weitianhua
a3ca473dd4 Add bda_addr for esp_bt_a2dp_disconn_req API
1. Add reaction for a2dp snk & src disconn req when no link up
  2. Change state machine set before EVT upto APP layer in some cases
  3. Add bool open_fail to choose whether post disconnection evt to app layer
2020-09-18 14:14:11 +08:00
lly
2b81af52aa ble_mesh: stack: Check if mesh stack initialized before init vendor client 2020-09-17 11:27:00 +08:00
wangcheng
e3ecb8d073 fix assert(10,9), when missing evt_end or rx and evt_end come the same time 2020-09-14 10:48:59 +08:00
weitianhua
f97188d2d3 Add protection for rfcomm close API in SPP 2020-09-14 10:06:22 +08:00
weitianhua
f38d93f73c Add some debug log for bt:
1. Add logs for SPP not enabled successfully
2. Add information to Applicatioin layer that the A2DP is connecting to peer device

Regular BTC and BTU Task name & Add BTC Init protection

1. Regular the BTC Task Name to Close a Github issue

   Closes https://github.com/espressif/esp-idf/issues/4966

2. Add BTC Init failure protection

3. Regular BTU Task Name with BTC

4. Correct the comment of
   a. SDP_ServiceSearchRequest and SDP_ServiceSearchRequest2
   b. l2cu_create_conn_after_switch

5. Correct comment of esp_bt_hf_vra();

6. Fix cpp compilier region
2020-09-14 10:06:22 +08:00
lly
a92247d461 ble_mesh: stack: Using the latest iv_index for provisioning
Provisioner should always uses the latest IV Index for provisioning.
For example, if the current IV Index is 0x00000001, but prov->iv_index
is still initialized with 0x00000000, and if Provisioner uses prov->
iv_index for provisioning, this will cause the Provisioner failing to
control the node.
So here bt_mesh.iv_index is used instead of prov->iv_index.
2020-09-11 11:01:17 +08:00
baohongde
9263b84f37 components/bt: Fix SPP using NULL point with dynamic memory 2020-09-07 15:46:09 +08:00
Jiang Jiang Jian
0fda05cc83 Merge branch 'bugfix/l2cap_link_timeout_llcp_prog_btu_wtd_v4.0' into 'release/v4.0'
Bugfix/l2cap link timeout llcp prog btu wtd v4.0

See merge request espressif/esp-idf!10253
2020-09-07 14:18:09 +08:00
Jiang Jiang Jian
5812a935ba Merge branch 'feature/esp_spp_stop_srv_v4.0' into 'release/v4.0'
bugfix/Add API esp_spp_stop_srv and fix collection of SPP [backport v4.0]

See merge request espressif/esp-idf!10013
2020-09-04 20:00:41 +08:00
wangcheng
2ba90c8453 component/bt: Fixed the watchdog timeout of btu task during multi-connection 2020-09-04 16:24:23 +08:00
wangcheng
ce1905d6b5 components/bt: Fixed the state not synchronized between controller and host when disconnected. 2020-09-02 21:33:06 +08:00
XieWenxiang
2832f5f6f2 component/bt: fix Blufi sends data after disconnect the seq still increase(backport v4.0) 2020-09-02 11:08:07 +08:00
wangcheng
6dde2eb3c5 Fixed assert(9, 10), When rx and evt_end interrupts exist at the same time, use the information of rx to determine the execution order 2020-08-18 16:06:22 +08:00
liqigan
45c4fef890 add API esp_spp_stop_srv(), fix the error parameter in esp-idf/examples/bluetooth/bluedroid/classic_bt/bt_spp_initiator/main/example_spp_initiator_demo.c and fix collection of SPP
Closes https://github.com/espressif/esp-idf/issues/5409
Closes https://github.com/espressif/esp-idf/pull/5408

See merge request espressif/esp-idf!9114
2020-08-13 12:01:39 +08:00
Jiang Jiang Jian
b88dc13ec3 Merge branch 'bugfix/buff_semaphore_not_free_v4.0' into 'release/v4.0'
component/bt: Fixed ble memory leak issue, buff_semaphore was not released.

See merge request espressif/esp-idf!9981
2020-08-10 15:10:24 +08:00
lly
d3eaf8bdb0 ble_mesh: stack: Client model related code clean 2020-08-07 21:15:11 +08:00
lly
aa8f45e341 ble_mesh: stack: Rename cfg & health client status recv func 2020-08-07 21:15:10 +08:00
lly
dfa6332606 ble_mesh: stack: Check client msg result in common func 2020-08-07 21:15:08 +08:00
lly
ba38c974e6 ble_mesh: stack: Fix no events for some error conditions 2020-08-07 21:15:07 +08:00
lly
3cc07d7969 ble_mesh: stack: Move client role set to the msg function 2020-08-07 21:15:06 +08:00
lly
035a24b468 ble_mesh: stack: Remove some not used client parameters 2020-08-07 21:15:04 +08:00
lly
c3e702da05 ble_mesh: stack: Remove some not used variables & functions 2020-08-07 21:15:03 +08:00
lly
dfd0cd5f3e ble_mesh: stack: Update client model msg send 2020-08-07 21:15:02 +08:00
wangcheng
b50bbe3a5b component/bt: Fixed ble memory leak issue, buff_semaphore was not released. 2020-08-07 15:15:49 +08:00
XieWenxiang
100750ac1b component/bt: fix Blufi sends longer customer data will will lead congested(backport v4.0) 2020-08-04 15:22:18 +08:00
Jiang Jiang Jian
3f332ef02b Merge branch 'bugfix/bt_linkup_fallback_event_v4.0' into 'release/v4.0'
Bluedroid: Fixes cases having fallback to link up event. (v4.0)

See merge request espressif/esp-idf!9804
2020-07-31 17:27:37 +08:00
Jiang Jiang Jian
2be17377bb Merge branch 'nimble/nrpa_support_v4.0' into 'release/v4.0'
NimBLE: Add Non-Resolvable private address support and misc fixes (Backport v4.0)

See merge request espressif/esp-idf!9736
2020-07-31 17:27:21 +08:00
Jiang Jiang Jian
f32582b588 Merge branch 'bugfix/fix_hci_max_page_num_v4.0' into 'release/v4.0'
bugfix/Support for more Bluetooth HID devices [backport v4.0]

See merge request espressif/esp-idf!9662
2020-07-30 21:20:15 +08:00
Jiang Jiang Jian
64c766ee4d Merge branch 'bugfix/fix_get_bond_device_list_v4.0' into 'release/v4.0'
bugfix/fix esp_bt_gap_get_bond_device_list bug [backport v4.0]

See merge request espressif/esp-idf!9668
2020-07-30 21:19:57 +08:00
Chinmay Chhajed
5fe10f1ff8 Bluedroid: Fixes cases having fallback to link up event.
Signed-off-by: Chinmay Chhajed <chinmay.chhajed@espressif.com>
2020-07-27 14:03:20 +05:30
wangcheng
ebacef4304 component/bt: add connect parameter, fix instant reverse, fix tx default octets, fix assert(1024,0), fix assert(512,0) 2020-07-24 12:05:29 +08:00
Prasad Alatkar
9566e4ec19 NimBLE: Add Non-Resolvable private address support and misc bug fixes (Backport v4.0)
- Merges https://github.com/espressif/esp-nimble/pull/12
- Fixes repeated pairing failure in RPA feature

Closes https://github.com/espressif/esp-idf/issues/5530
2020-07-23 11:31:52 +05:30
Jiang Jiang Jian
53605395cf Merge branch 'bugfix/collection_of_confirmed_fixes_from_baidu_project_4.0' into 'release/v4.0'
Backport MR for baidu project for release/v4.0

See merge request espressif/esp-idf!8989
2020-07-22 16:34:19 +08:00
boblane
9a88eef632 fix esp_bt_gap_get_bond_device_list bug
Closes https://github.com/espressif/esp-idf/issues/5395
2020-07-17 15:12:57 +08:00
lly
beda5f0fd4 ble_mesh: stack: Fix recv health current status incorrectly 2020-07-17 14:06:41 +08:00
DerfJagged
a1cf4fa871 Support for more Bluetooth HID devices
Some Bluetooth devices - such as an Xbox One S controller (model 1708) - report more than two external features pages and are rejected immediately. Pages 1 and 2 are marked as unhandled in btm_devctl.c anyway, so there is no reason to block devices with more pages.
(IDFGH-3515)

Signed-off-by: liqigan <liqigan@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5481
Closes https://github.com/espressif/esp-idf/issues/5470
2020-07-17 10:23:52 +08:00
lly
f3566fd2af ble_mesh: stack: Only keep func pointer for very common log
Currently only keep func pointer for the followings:
- Invalid parameter (mesh btc & mesh stack)
- Out of memory (mesh btc & mesh stack)
- Unknown act (mesh btc)
- Invalid model user data (mesh stack)
- BT_DBG("%s", __func__) (mesh btc & mesh stack)
- A few other specific situations (buf ref debug, send status check)
2020-07-16 11:04:57 +08:00
lly
f10c62d84d ble_mesh: stack: Make proxy server & client functions clear 2020-07-16 11:04:57 +08:00
lly
1df9502301 ble_mesh: stack: Add proxy cfg pdu length check 2020-07-15 16:11:32 +08:00
lly
d04a8da916 ble_mesh: stack: Rework using dev flag to check scan status
Different bluetooth host has different behaviors, so it's better
to maintain a scan check mechanism of BLE Mesh itself.
Fixes an issue when only PB-GATT is enabled for node, which will
output a scan error log when the device is provisioned.
2020-07-15 16:11:31 +08:00
lly
c8601fface ble_mesh: stack: Add more checks about input prov bearers 2020-07-15 16:11:27 +08:00
lly
1e528fa739 ble_mesh: stack: Rename mesh adv queue and relay queue 2020-07-15 11:10:14 +08:00
lly
a27478b54d ble_mesh: stack: Use macros for adv task name & prio 2020-07-15 11:10:14 +08:00
lly
0dc96d19aa ble_mesh: stack: Make freertos static allocation visible 2020-07-15 11:09:58 +08:00
lly
9973f5ef04 ble_mesh: stack: Update option of using DRAM/SPIRAM for memory allocation 2020-07-15 09:41:15 +08:00
weitianhua
de438461f5 Backport from baidu proj 2020-07-13 15:03:17 +08:00
Jiang Jiang Jian
f73cd1d4f1 Merge branch 'docs/fix_event_typo_backport_v4.0' into 'release/v4.0'
docs/fix event typo backport v4.0

See merge request espressif/esp-idf!9384
2020-07-12 21:23:54 +08:00
Jiang Jiang Jian
bfbbb4d581 Merge branch 'bugfix/fix_event_bug_in_GAP_API_release_v4.0' into 'release/v4.0'
Bugfix/fix event bug in GAP API [backport v4.0]

See merge request espressif/esp-idf!9194
2020-07-10 16:57:37 +08:00
lly
724a5baa4e ble_mesh: stack: Add two application macros for TTL 2020-07-10 09:15:02 +08:00
lly
c399b9520b ble_mesh: stack: Update send_ttl in btc when recv a msg
Update send_ttl mainly for server models. When a server model
receives a message, and the status is required to be replied
by the application, we need to set send_ttl to the msg context.
If send_ttl is not updated in btc, and the applcation does not
set the TTL either, then the status will be replied with TTL=0,
which may cause the client side (e.g. the phone App) failed to
receive the status.

Closes https://github.com/espressif/esp-idf/issues/5300
2020-07-10 09:15:01 +08:00
liqigan
9e506a921b components/bt: Adjust the description of esp_bt_gap_start_discovery and esp_bt_gap_cancel_discovery.
Add some comments to explain why `ESP_BT_GAP_DISC_STATE_CHANGED_EVT` is not reported.
2020-07-08 15:07:05 +08:00
lly
39705533f1 ble_mesh: stack: Update some fast prov functions 2020-07-03 08:53:56 +08:00
lly
77fe2ced32 ble_mesh: stack: Move fast prov functions to a single file 2020-07-03 08:53:56 +08:00
lly
c4794f761e ble_mesh: ci: Fix failing to compile when using make 2020-07-02 03:35:13 +00:00
lly
4d9af50eba ble_mesh: Mark platform related default RNG as 0 2020-07-02 03:35:13 +00:00
lly
0e028c044d ble_mesh: Remove the previously added redundant aes files 2020-07-02 03:35:13 +00:00
lly
813cf5cc00 ble_mesh: Update CMake and make files for tinycrypt 2020-07-02 03:35:13 +00:00
lly
ac0746aba1 ble_mesh: Update tinycrypt header file include guards
Add BLE_MESH in the macro to make it specific for BLE Mesh.
2020-07-02 03:35:13 +00:00
lly
e5f4ff2b1a ble_mesh: Format source and header files of tinycrypt 2020-07-02 03:35:13 +00:00
lly
4f37a08437 ble_mesh: Port full implementation of tinycrypt [Zephyr]
- Original code is here: https://github.com/zephyrproject-rtos/tinycrypt
- Also this fixes the compile error when NimBLE and ESP BLE Mesh
  both uses the tinycrypt.
2020-07-02 03:35:13 +00:00
Island
c7acaf9b44 Merge branch 'bugfix/ble_mesh_compile_error_v4.0' into 'release/v4.0'
Bugfix/ble mesh compile error (v4.0)

See merge request espressif/esp-idf!9432
2020-07-02 11:29:06 +08:00
Jiang Jiang Jian
8309f06378 Merge branch 'bugfix/kconfig_vendor_specific_v4.0' into 'release/v4.0'
Bugfix: bt/Kconfig Vendor specific event data type and default value

See merge request espressif/esp-idf!9416
2020-07-01 13:49:53 +08:00
lly
3b6145dc46 ble_mesh: stack: Fix compile error when only proxy enabled
Also remove some redundant CONFIG_BLE_MESH_PROXY checks, because
when the following options are satisfied, the CONFIG_BLE_MESH_PROXY
option will be selected mandatorily.
2020-07-01 11:55:12 +08:00
Island
b823a2a35f Merge branch 'bugfix/ble_mesh_check_subnet_before_update_beacon_sent_v4.0' into 'release/v4.0'
ble_mesh: Check if subnet exists before updating beacon_sent (v4.0)

See merge request espressif/esp-idf!9397
2020-07-01 11:16:39 +08:00
Island
4802585bfd Merge branch 'bugfix/ble_mesh_set_recv_rssi_v4.0' into 'release/v4.0'
Bugfix/ble mesh set recv rssi (v4.0)

See merge request espressif/esp-idf!9391
2020-07-01 11:15:20 +08:00
Chinmay Chhajed
b9b31e3c85 bt/Kconfig: Update data type and default value of vendor specific event. 2020-06-30 15:02:22 +05:30
Jiang Jiang Jian
d921a06c1f Merge branch 'feature/bt_secure_conn_downgrade_check_v4.0' into 'release/v4.0'
Bluedroid: Authentication fixes in Legacy and Secure Connection.

See merge request espressif/esp-idf!9338
2020-06-30 15:26:57 +08:00
lly
dfcc8e77dc ble_mesh: Check if subnet exists before updating beacon_sent
- Before updating the "beacon_sent" of a subnet, we need to check
  if the subnet still exists, especially for a Provisioner.
- Fix a bug which will cause Provisioner failed to send Secure
  Network Beacon if no device is provisioned
2020-06-30 09:22:49 +08:00
lly
7f6735fd60 ble_mesh: stack: Copy recv_rssi for other received messages
Follow the commit: 2b80cb6883,
copy the recv_rssi for other mesh messages.
2020-06-30 09:05:51 +08:00
mbroek
ca5ab9b607 When a generic mesh model message is received "bt_mesh_generic_server_cb_evt_to_btc" copies the
ctx values to cb_params for the mesh stack.

recv_rssi was not copied.

This means the rssi could not be read when receiving generic server messages using ble_mesh.
2020-06-30 09:05:50 +08:00
liminyang
acb54059be docs:fix event typo
1.In the description of the ESP_API header file, it should be the event that the application layer needs to handle, not the BTA layer.
2.Fix name typo of BTA_GATTS_CREATE_SRVC_EVT event

Closes https://github.com/espressif/esp-idf/issues/5446
2020-06-29 20:59:14 +08:00
Island
8cb2ad1fe6 Merge branch 'bugfix/ble_mesh_get_node_with_name_v4.0' into 'release/v4.0'
ble_mesh: Get node info with pre-configured node name (v4.0)

See merge request espressif/esp-idf!9303
2020-06-28 20:25:24 +08:00
Island
304c40f3ef Merge branch 'bugfix/ble_mesh_bt_hex_v4.0' into 'release/v4.0'
ble_mesh: Fix wrong log output with bt_hex (v4.0)

See merge request espressif/esp-idf!9310
2020-06-28 20:24:12 +08:00
Island
ef136a664c Merge branch 'bugfix/ble_mesh_not_define_bool_v4.0' into 'release/v4.0'
Bugfix/ble mesh not define bool (v4.0)

See merge request espressif/esp-idf!9317
2020-06-28 20:23:03 +08:00
Chinmay Chhajed
a9d4ed4a55 Bluedroid: Authentication fixes in Legacy and Secure Connection.
Prevent a remote device from doing a Bluetooth Impersonation Attack
(BIAS) by:

- Preventing remote device to downgrade secure connection
feature mask. Secure connection feature mask should remain same or
increase to enabled in link key generation and authentication.

- Doing a mutual authentication during Legacy Authentication.

Signed-off-by: Chinmay Chhajed <chinmay.chhajed@espressif.com>
2020-06-24 22:25:20 +05:30
lly
939a3b78e2 ble_mesh: Fix wrong log output with bt_hex
- This issue was introduced in the commit: a788e7cd3d
  which updated the bt_hex() function incorrectly.
- And in bt_hex(), we use 2 for the two-dimensional array, because currently
  at most two bt_hex() will be used at the same time. Also this will save
  some DRAM compared with using 4.
2020-06-24 10:33:58 +00:00
lly
f1c0fee05b ble_mesh: Get node info with pre-configured node name
Also add a function to get the entry of the nodes table.

Closes https://github.com/espressif/esp-idf/issues/5397
2020-06-24 10:31:25 +00:00
lly
268b0e5e3f ble_mesh: Remove boolean type definitions 2020-06-24 09:12:31 +00:00
Nikolaos Strikos
940fcf0ca9 ble_mesh: Do not #define bool when compiling in C++ 2020-06-24 09:12:31 +00:00
lly
c6ce7d2866 ble_mesh: stack: Check model status with variable length 2020-06-24 09:10:32 +00:00
wangcheng
b869e69c62 components/bt: Consider link_xmit_data_q in congest events to prevent excessive memory usage 2020-06-18 15:02:02 +08:00
wangcheng
12759b951c components/bt: Fixed the problem of incomplete data packets caused by disordered acl data packets 2020-06-18 15:01:24 +08:00
Wang Cheng
d875485f89 components/bt: Add a detailed description for the user to distinguish the function of the query buffer api. 2020-06-18 15:01:18 +08:00
Geng Yu Chao
ac2e34f611 Update the limited of function esp_ble_get_sendable_packets_num. 2020-06-18 15:01:13 +08:00
wangcheng
211e7bb4c2 components/bt: Add api to query the number of available buffers for the current connection 2020-06-18 15:01:05 +08:00
wangcheng
e781279110 blufi: When the format of the received data packet is wrong, reply with an error response 2020-06-17 12:20:53 +08:00
Island
9718338984 Merge branch 'bugfix/ble_mesh_remove_relay_dependency_v4.0' into 'release/v4.0'
ble_mesh: Remove relay option dependency (v4.0)

See merge request espressif/esp-idf!9027
2020-06-03 15:20:51 +08:00
Island
5a61c4c24c Merge branch 'bugfix/ble_mesh_example_nvs_store_v4.0' into 'release/v4.0'
Bugfix/ble mesh example nvs store (v4.0)

See merge request espressif/esp-idf!9017
2020-06-03 15:12:17 +08:00
Island
ceffc0837e Merge branch 'bugfix/ble_mesh_model_recv_fix_v4.0' into 'release/v4.0'
Bugfix/ble mesh model recv fix (v4.0)

See merge request espressif/esp-idf!9008
2020-06-03 15:11:32 +08:00
Island
ece24128da Merge branch 'bugfix/ble_mesh_rework_prov_pdu_len_check_v4.0' into 'release/v4.0'
ble_mesh: Rework prov pdu length check (v4.0)

See merge request espressif/esp-idf!9004
2020-06-03 15:10:52 +08:00
lly
19f69333f7 ble_mesh: Remove relay option dependency
When the relay functionality of a node is not enabled, this
issue will cause the node failing to send messages to fixed
group.
2020-06-02 19:18:52 +08:00
lly
b55020ad80 ble_mesh: Config and health client btc fixes
Fix an issue which may cause no error code is returned
when sending config client or health client messages
with invalid parameters.
2020-06-02 14:04:35 +08:00
lly
1ac6d48fcf ble_mesh: Add more checks of net_idx & app_idx 2020-06-02 14:04:35 +08:00
lly
268f5ad6c6 ble_mesh: Optimize some send & recv logs 2020-06-02 14:04:34 +08:00
lly
205425b86b ble_mesh: correct the return type [Zephyr] 2020-06-02 10:32:25 +08:00
lly
c2589b0b57 ble_mesh: Add net_buf_simple_init_with_data [Zephyr] 2020-06-02 10:32:24 +08:00
lly
f990d725f4 ble_mesh: Optimize model recv operations [Zephyr]
Previously the model recv operation is a littl fuzzy.
With the changes, the model recv operation is splitted into:
- find op
- check app_idx
- check dst
- check length
- update info & handle message
2020-06-02 10:32:23 +08:00
lly
073b8daa6e ble_mesh: Rework prov pdu length check 2020-06-02 10:14:50 +08:00
lly
cd40f3ad52 ble_mesh: Local model (un)subscribes group address 2020-06-01 09:11:27 +08:00