Commit graph

1471 commits

Author SHA1 Message Date
lly 82b4b89dea ble_mesh: Fix compile error when using release optimization level 2020-01-06 16:17:36 +08:00
lly b836674d8e ble_mesh: Remove useless CONFIG_BLE_MESH_NODE
For Low Power node and Proxy Server, the two features
depend on BLE_MESH_NODE in Kconfig.in, here in the
stack there is no need to judge if CONFIG_BLE_MESH_NODE
is enabled.
2020-01-06 16:17:36 +08:00
lly d83c37faed ble_mesh: Fixes Provisioner not support friend feature 2020-01-06 16:17:36 +08:00
lly 77e7d023b9 ble_mesh: Fixes wrong subnet info used for Friend Clear
When Friend node tries to send Friend Clear message to other
Friend nodes, it should use the subnet information based on
the net_idx from friendship.
2020-01-06 16:17:36 +08:00
lly 131a4e7c22 ble_mesh: fix provisioner failed to send msg to 0xFFFF
According to Mesh Spec 3.4.5.3, a node shall implement a local
network interface. And here we limit the situation just based
on the spec, and Provisioner directly sending the msg without
passing through the local network interface.
2020-01-06 16:17:36 +08:00
lly 197e54053e ble_mesh: fix virtual addr wrong return value
Fixes missing return value on `va_del`
Fixes wrong return value on `va_add`
2020-01-06 16:17:36 +08:00
lly e8440ac2f9 ble_mesh: Persistent storage of Virtual Address
The 16-bit format group addresses will be stored,
but we don't store (or restore) the virtual label UUIDs,
i.e. after a power cycle the 16-bit group addresses
would be meaningless.
2020-01-06 16:17:36 +08:00
lly 74d0bd3134 ble_mesh: Proxy forwards ALL_NODES addr
Unless explicitly blacklisted, the Proxy node will forward all messages
for the ALL_NODES address to the GATT proxy client.
2020-01-06 16:17:36 +08:00
lly 1338fc4ff1 ble_mesh: Model message macros
Creates macros for determining model message lengths based on opcode,
payload length and MIC size. Also adds macro wrapping
NET_BUF_SIMPLE_DEFINE to serve the most common use case.
2020-01-06 16:17:36 +08:00
lly f3b9b099cd ble_mesh: Use net_buf_simple_clone
Uses net_buf_simple_clone to access the sdu of an unsegmented app packet
for re-encryption.
2020-01-06 16:17:36 +08:00
lly aec696a3a4 ble_mesh: Skip local messages in rx
Local messages are already enqueued for the LPN in the tx path, and
don't have to be added again in the rx path.
2020-01-06 16:17:36 +08:00
lly 6516ab71ea ble_mesh: Ensure seqnum match in app/net
Re-encrypts single-segment application messages when the network seqnum
has changed, to avoid encrypting messages with different seqnums in
network and transport. This operation is only required for unsegmented
messages, as segmented messages don't need to use the same seqnum in
network.

Reinstates the special adv data for friend messages to store the app key
index.
2020-01-06 16:17:36 +08:00
lly b88dbf6348 ble_mesh: Expose app key get function 2020-01-06 16:17:36 +08:00
lly 906fb9d6e3 ble_mesh: Expose header parsing outside net 2020-01-06 16:17:36 +08:00
lly 865434e6de ble_mesh: Remove unused macro FRIEND_BUF_SIZE 2020-01-06 16:17:36 +08:00
lly 67cb3062a6 ble_mesh: Make RSSI value available to mesh applications 2020-01-06 16:17:36 +08:00
lly 89a681fd4a ble_mesh: Encrypt friend packets on send
Stores friend queue packets unencrypted, removing any out-of-order
issues caused by seqnum allocation. Also moves as much of the metadata
storage as possible into the packet, allowing us to free up some bytes
of net_buf user data for friend packets.
2020-01-06 16:17:36 +08:00
lly 99a63ce81d ble_mesh: Expose SeqZero mask
Makes a define for the seqzero 13-bit mask in transport, and exposes it
in the header for use in the friend module.
2020-01-06 16:17:36 +08:00
lly 9f6dd19033 ble_mesh: Update lightness last state when actual state is changed 2020-01-04 14:57:08 +08:00
Felipe Neves fc00236d79 components/esp_common: added esp_macros.h that aims to hold useful macros
esp_common/esp_compiler: renamed esp_macros file to a more specific one

esp_common/esp_compiler: removed CONTAINER_OF macro, it was a duplicate

components/freertos: placed likely macros around port and critical sections

component/freertos: placed likely macros on lists module

components/freertos: placed unlikely macros inside of assertion points, they likely wont fail

components/freertos: added likely macros on queue modules

FreeRTOS queues are one of most hot code path, because to queues itself tend to
be used a lot by the applications, besides that, queues are the basic primitive
to form both mutexes and semaphores, The focus here is to place likely
macros inside lowest level send and receive routines, since they're common
from all kobjects: semaphores, queues, mutexes and FR internals (like timer queue)

components/lwip: placed likely/unlikey on net-interfaces code

components/fatfs: added unlikely macros on disk drivers code

components/spiffs: added unlikely macros on low level fs driver

components/freertos: added likely/unlikely macros on timers and ticker

freertos/event_group: placed likely/unlikely macros on hot event group code paths

components/sdmmc: placed likely / unlikely macros on lower level path of sdmmc

components/bt: placed unlikely macros around bt HCI functions calling

components/lwip: added likely/unlikely macros on OS port code section

components/freertos: fix code style on tick handler
2020-01-03 14:42:49 -03:00
lly 3b9fe36494 ble_mesh: Fix memory leak when node is reset
When node is being reset, the init functions of each sig-defined
models will be invoked again, this will cause memory leak because
some model internal data will be allocated again.
Hence before trying to allocate memory for them, we add some check
to make sure no memory has been allocated previously.
And for client model, when the init functions are invoked again,
we will clear the list items.
2019-12-28 08:00:44 +00:00
baohongde 3977ba7bc6 components/bt: Revert changes of security mask 2019-12-25 20:03:16 +08:00
Jiang Jiang Jian e977cc24ff Merge branch 'bugfix/fix_ble_mesh_adv_buf_unref' into 'master'
ble_mesh: Fix adv buf unref and link_id in exceptional list

See merge request espressif/esp-idf!6828
2019-12-20 17:11:08 +08:00
lly fbdaed0248 ble_mesh: Add unlock when failed to create alarm 2019-12-20 12:25:01 +08:00
lly 619e606356 ble_mesh: Rename ble mesh lock/unlock functions
Rename BLE Mesh internal lock/unlock functions, also seperate
the list, buf and atomic lock/unlock functions
2019-12-20 12:23:10 +08:00
lly 31a4738bd4 ble_mesh: Use mutex to protect client list operations 2019-12-14 17:32:47 +08:00
lly e4223df60f ble_mesh: Remove useless parameters of lock/unlock 2019-12-14 16:28:22 +08:00
lly d2bc597e9f ble_mesh: Client model check timer remaining time
Before handling status message, client models need check if the
corresponding timer has expired. And if timeout happens, the
status message will be treated as a publish message.
2019-12-14 15:43:59 +08:00
Jiang Jiang Jian 77290ddd07 Merge branch 'demo/hfp-client-demo' into 'master'
component_bt/: Add HFP HF Unit Example

Closes BT-459

See merge request espressif/esp-idf!6495
2019-12-12 21:19:04 +08:00
weitianhua c2e97b1042 Enable mSBC for demo 2019-12-12 17:12:38 +08:00
weitianhua 392eb79704 Format the BTM_WBS_INCLUDED macro 2019-12-12 17:12:38 +08:00
weitianhua ad4b11a4f1 Fix crash when WBS enabled. 2019-12-12 17:12:38 +08:00
weitianhua 10e5f16974 remove BTM_WBS_INCLUDED for bta_hf_client_version select 2019-12-12 17:12:19 +08:00
weitianhua 742cb8df9e Update the README.md
Fix the m_rb bug in bt_app_hf.c

Change the log level into information.
2019-12-12 17:12:19 +08:00
lly 1a8199dd41 ble_mesh: Fix using wrong name for PB-GATT 2019-12-12 15:59:37 +08:00
lly c354b0993d ble_mesh: Fix adv buf unref and link_id in exceptional list 2019-12-12 15:58:43 +08:00
Geng Yu Chao 6c923cf330 Fix some typo in idf 2019-12-12 15:55:42 +08:00
Jiang Jiang Jian 767917bcf7 Merge branch 'bugfix/btdm_avrc_metadata_length_error' into 'master'
components/bt: Fix AVRC metadata length error

See merge request espressif/esp-idf!6879
2019-12-12 15:53:08 +08:00
Geng Yu Chao 46c53ab8c8 btdm:fix the problem that Not getting complete Identity Address (Public Address) of the Privacy-enabled Bonded Device after bonding. beacuse of the wrong memcpy in LE_KEY callback handler. 2019-12-09 15:21:49 +08:00
Xu Jun Jun e20e47809d For BT device restore security info from NV to SRAM, should set the ble_hci_handle to a invalid value, otherwise BLE devices may have pairing problem 2019-12-07 16:19:57 +08:00
Hrishikesh Dhayagude a2adcea802 Enable characteristic 0x2A04 in GAP service
Add support to enable Peripheral Preferred Connection Parameters in GAP service and update it correctly
2019-12-05 12:17:14 +08:00
Jiang Jiang Jian d24fe09356 Merge branch 'feature/reorganise_bluetooth-bluedroid-hci' into 'master'
Moved HCI examples from bluetooth/bluedroid/hci to bluetooth/hci.

See merge request espressif/esp-idf!6686
2019-12-04 20:28:20 +08:00
Jiang Jiang Jian 0c0430a169 Merge branch 'bugfix/btdm_allow_start_adv_again' into 'master'
component/bt: allow to send stop adv again and fix tx prog crash

See merge request espressif/esp-idf!6573
2019-12-04 20:23:36 +08:00
baohongde e94c2a04c1 components/bt: Fix AVRC metadata length error 2019-12-03 02:44:49 +00:00
Jiang Jiang Jian f696a29664 Merge branch 'bugfix/hfp_hci_sco' into 'master'
component bt/ Bugfix for HFP hci audio crash

See merge request espressif/esp-idf!6864
2019-12-02 13:55:57 +08:00
Prasad Alatkar 656005ef3d NimBLE: Fix erroneous behaviour of NimBLE porting layer when controller is not ready to receive 2019-12-01 15:22:51 +08:00
weitianhua adf8a96602 fix hci sco crash bug for HFP 2019-11-29 06:51:18 +00:00
weitianhua 7c18299571 Add AG component API_REFERENCE
Expose esp_hf_indchange_notification to this example.
2019-11-27 13:35:35 +00:00
weitianhua 0c6e1f7ef8 Fix the audio crash bugs
Fix voice recognition bugs

Fix audio memory leak bug.
2019-11-27 13:35:35 +00:00
weitianhua 78cbdfa332 HFP AG Example 2019-11-27 13:35:35 +00:00
zhiweijian fb369577d9 component/bt: allow adv stop again when adv is already stoped and fix crash when tx prog sometimes 2019-11-27 10:03:06 +00:00
Jiang Jiang Jian c487df288c Merge branch 'bugfix/hfp_hci_audio_crash' into 'master'
component bt/ Bugfix for HFP hci audio crash

See merge request espressif/esp-idf!6739
2019-11-27 17:48:52 +08:00
Jiang Jiang Jian 3a8b346263 Merge branch 'component_bt/osi_fixed_queue' into 'master'
component bt/: Bugfix for pointer type in file fixed_queue.c

Closes BT-492

See merge request espressif/esp-idf!6831
2019-11-27 15:56:49 +08:00
Jiang Jiang Jian e349f86d18 Merge branch 'bugfix/ble_mesh_device_with_wrong_name_on_ios' into 'master'
ble_mesh: fix ble mesh device with wrong name on iOS

Closes BLEMESH-54

See merge request espressif/esp-idf!6516
2019-11-27 10:30:25 +08:00
weitianhua f1116be195 bugfix for osi_fixed_queue pointer type 2019-11-26 21:16:47 +08:00
weitianhua 52c5cc038a bugfix for HFP hci audio crash 2019-11-26 02:34:09 +00:00
Chinmay Chhajed 6a91c8d440 Changes in menuconfig options to not compile any host when using hci
examples as no host is required there.
2019-11-22 11:14:50 +05:30
Angus Gratton bc3233782b Merge branch 'feature/remove_gcc5_support' into 'master'
global: remove gcc 5.2 support

Closes IDF-1131

See merge request espressif/esp-idf!6608
2019-11-21 09:08:41 +08:00
Ivan Grokhotkov 9a2af7ae33 global: remove gcc 5.2 support 2019-11-20 11:17:27 +01:00
Jiang Jiang Jian 9e0b9fcf4e Merge branch 'bugfix/btdm_run_out_of_frame_element' into 'master'
components/bt: Fix assert due to no free element from

Closes BT-461

See merge request espressif/esp-idf!6574
2019-11-19 17:01:23 +08:00
baohongde 2e570e78c6 components/bt: Disable some unsupported security mask 2019-11-17 13:42:09 +08:00
Jiang Jiang Jian a9c162664c Merge branch 'feature/get_remote_name' into 'master'
Feature/ Read Remote Device's Name

See merge request espressif/esp-idf!6562
2019-11-15 23:47:02 +08:00
lly 093cc494b9 ble_mesh: fix ble mesh device with wrong name on iOS 2019-11-14 17:03:46 +08:00
baohongde e248a4fe6e components/bt: Fix assert due to no free element from 2019-11-14 06:59:23 +00:00
weitianhua 3f0e851a39 Feature/ Read Remote Device's Name 2019-11-14 03:33:37 +00:00
lly 2bba9d7700 ble_mesh: miscellaneous modifications
1. Clean up client_common.c
2. Clean up esp_ble_mesh directory
3. Update Kconfig.in
4. Format esp_ble_mesh files
2019-11-08 11:10:52 +08:00
lly 30aa236219 ble_mesh: adapt ble mesh with nimble host 2019-11-08 11:10:52 +08:00
lly 547081cc3c ble_mesh: add events for configuration server model 2019-11-08 11:10:52 +08:00
lly f906b7caf3 ble_mesh: add Generic/Sensor/Time and Scenes/Lighting Server models 2019-11-08 11:10:52 +08:00
lly 287f80ec01 ble_mesh: add proxy client functionality 2019-11-08 11:10:52 +08:00
lly c6286529eb ble_mesh: add ble mesh friend node event 2019-11-08 11:10:52 +08:00
lly fdfe59d369 ble_mesh: add low power node api and event 2019-11-08 11:10:52 +08:00
lly afc00fb5f5 ble_mesh: add heartbeat message recv callback 2019-11-08 11:10:52 +08:00
lly 2511024e44 ble_mesh: modify health server model callbacks 2019-11-08 11:10:52 +08:00
lly 729af38346 ble_mesh: add separate advertising buffers for relay packets 2019-11-08 11:10:52 +08:00
Angus Gratton b7c2c93ecc Merge branch 'bugfix/wifi_internal_memory' into 'master'
wifi: Include DMA reserved pool when allocating internal-only memory

Closes WIFI-883

See merge request espressif/esp-idf!6545
2019-11-04 13:55:49 +08:00
baohongde 90b18dd4f6 components/bt: Not post message to a2dp ctrl queue from btc queue, just call it. 2019-11-01 14:12:25 +08:00
Jiang Jiang Jian fd4da421e5 Merge branch 'bugfix/btdm_assert_deinit_a2dp_while_playing' into 'master'
components/bt: Fix assert when deinit A2DP while playing music

Closes BT-471

See merge request espressif/esp-idf!6533
2019-11-01 11:57:01 +08:00
Angus Gratton 1768473eb8 bt: Include DMA reserved pool when allocating internal-only memory
Fix for root cause of https://github.com/espressif/esp-idf/issues/3592
2019-10-31 15:19:17 +11:00
Krzysztof Budzynski 2c3548b65e Provide BLE Mesh documentation 2019-10-30 17:01:18 +08:00
Jiang Jiang Jian 9d5a7f8df6 Merge branch 'bugfix/btdm_possibly_unable_to_enter_sleep_after_woken_up' into 'master'
bugfix/btdm_possibly_unable_to_enter_sleep_after_woken_up

See merge request espressif/esp-idf!6219
2019-10-30 15:38:58 +08:00
baohongde a099b6f7e4 components/bt: Fix assert when deinit A2DP while playing music 2019-10-29 19:47:50 +08:00
Angus Gratton 055cc251b7 Merge branch 'feature/esp32s2beta_merge' into 'master'
esp32s2beta: Merge support to master

Closes IDF-513, IDF-756, IDF-758, IDF-999, IDF-753, IDF-749, IDF-754, IDF-840, and IDF-755

See merge request espressif/esp-idf!6100
2019-10-29 13:02:01 +08:00
Prasad Alatkar c5339779a7 NimBLE: Update NimBLE submodule to latest nimble-1.2.0-idf release 2019-10-29 12:52:05 +08:00
Tian Hao 4987a5ad90 fix bug that semaphore may schedule out in Critical Section
1. Since BLE full-scan feature for BLE mesh change the controller code cause this problem,
it cause coex semaphore take in "interrupt disable", then it may cause task schedule
and cause crash in freertos
2. Fix newlib lock ISR context and critical section check
3. Fix bt controller ISR context and critical section check
2019-10-28 18:43:35 +08:00
Jiang Jiang Jian 758db1e008 Merge branch 'bugfix/fix_mesh_proxy_adv_with_wrong_dev_name' into 'master'
ble_mesh: using bt device name in mesh proxy adv

Closes BLEMESH-51

See merge request espressif/esp-idf!6438
2019-10-26 20:45:10 +08:00
Jiang Jiang Jian ea0f0b1700 Merge branch 'feature/btdm_add_api_to_set_channel_classification' into 'master'
Feature/btdm add api to set channel classification

Closes BT-450

See merge request espressif/esp-idf!6229
2019-10-26 20:42:58 +08:00
Jiang Jiang Jian eef065374e Merge branch 'bugfix/btdm_disable_bt_gatt' into 'master'
components/bt: Disable BR/EDR GATT

Closes BT-456

See merge request espressif/esp-idf!6420
2019-10-26 20:42:37 +08:00
Jiang Jiang Jian 87e1dfa31e Merge branch 'bugfix/btdm_check_avrc_connected_error' into 'master'
components/bt: Fix error in checking AVRC connected

See merge request espressif/esp-idf!6415
2019-10-26 20:42:04 +08:00
Angus Gratton 7ce75a42c7 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-25 15:13:52 +11:00
baohongde ed984cc9b5 components/bt: Add API and EVT for BLE set channels(BLE) 2019-10-25 11:39:35 +08:00
baohongde eaf5f6a319 components/bt: Add API and EVT for set AFH channels(BR/EDR) 2019-10-25 11:39:22 +08:00
Jiang Jiang Jian f974811150 Merge branch 'feature/hf_ag' into 'master'
Feature: BT/HFP AG.

Closes BT-346 and BT-428

See merge request espressif/esp-idf!6306
2019-10-25 10:57:43 +08:00
wangmengyang 11aa4ef1ef components/bt: bugfix that bluetooth controller may not be able to enter sleep after end of wake up request 2019-10-25 02:52:12 +00:00
baohongde d6201066a3 components/bt: Fix error in checking AVRC connected 2019-10-25 02:50:31 +00:00
baohongde 93f86b8a6d components/bt: Disable BR/EDR GATT 2019-10-25 02:49:51 +00:00
Hrishikesh Dhayagude a26dfe70aa nimble: Miscellaneous changes
1. Update NimBLE submodule as per changes in adv interval and stop port
2. Make changes in ESP BLE Mesh NimBLE host code for the same
2019-10-24 14:38:01 +08:00
lly 2350b15451 ble_mesh: using bt device name in mesh proxy adv 2019-10-22 15:04:19 +08:00
Jiang Jiang Jian 59aa07d5d9 Merge branch 'bugfix/btdm_fix_lmp_sniff_req_timeout' into 'master'
components/bt: Fix LMP sniff req timeout

See merge request espressif/esp-idf!6351
2019-10-22 11:20:14 +08:00
Angus Gratton 8675a818f9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-22 13:51:49 +11:00