Commit Graph

1720 Commits

Author SHA1 Message Date
DerfJagged
16e33e3e33 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:14:34 +08:00
weitianhua
491d564f5a Fix error of AG API return line
Closes https://github.com/espressif/esp-idf/issues/5554
2020-07-14 14:44:20 +08:00
liqigan
f5d37dd416 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 14:22:19 +08:00
wangcheng
9c9b64ee17 component/bt: Fixed ble memory leak issue, buff_semaphore was not released. 2020-07-07 21:02:49 +08:00
lly
bf35465658 ble_mesh: stack: Check model status with variable length 2020-06-30 09:31:27 +08:00
lly
289b8bcea7 ble_mesh: Remove boolean type definitions 2020-06-30 09:18:42 +08:00
Nikolaos Strikos
0d5eb50ce2 ble_mesh: Do not #define bool when compiling in C++ 2020-06-30 09:18:42 +08:00
lly
353f893d95 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-30 09:16:29 +08:00
liminyang
a55bd7339c 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:56:08 +08:00
wangcheng
5cff7b1d55 components/bt:Fix instant reverse and add ble connect paramter check. 2020-06-18 15:52:34 +08:00
Jiang Jiang Jian
6b66850dc1 Merge branch 'bugfix/ble_conn_fail_v4.1' into 'release/v4.1'
Fix bugs from coex test v4.1

See merge request espressif/esp-idf!9136
2020-06-17 18:17:15 +08:00
Jiang Jiang Jian
5e52e5f6f5 Merge branch 'bugfix/blufi_buffer_overflow_report_v4.1' into 'release/v4.1'
Bugfix/blufi buffer overflow report v4.1

See merge request espressif/esp-idf!9178
2020-06-16 15:59:49 +08:00
wangcheng
ae64d9e738 blufi: When the format of the received data packet is wrong, reply with an error response 2020-06-15 19:37:38 +08:00
Wang Cheng
6861f7d5d8 components/bt: Add a detailed description for the user to distinguish the function of the query buffer api. 2020-06-15 19:19:14 +08:00
Geng Yu Chao
c5a6fc9c7e Update the limited of function esp_ble_get_sendable_packets_num. 2020-06-15 19:17:27 +08:00
wangcheng
3b8b057894 components/bt: Consider link_xmit_data_q in congest events to prevent excessive memory usage 2020-06-13 15:07:28 +08:00
wangcheng
e69ee31e1a components/bt: Fixed the problem of incomplete data packets caused by disordered acl data packets 2020-06-13 15:06:28 +08:00
wangcheng
846a2f95f4 components/bt: Add api to query the number of available buffers for the current connection 2020-06-13 15:06:14 +08:00
baohongde
1b8905e544 components/bt: Fix ble disconnect due to instant of channel map update is too small 2020-06-11 16:55:36 +08:00
baohongde
d0093c7675 Set AFH in time(075dd35)
Send LMP_channelClassification immediately
Fix first LMP_set_AFH not using host value
2020-06-11 16:55:26 +08:00
baohongde
de6f21936f components/coex: Fix ble connecting fail in coexist 2020-06-11 16:55:12 +08:00
baohongde
7cdc2f2b81 Backport MR for baidu proj 2020-06-04 11:07:30 +08:00
lly
1bd7944316 ble_mesh: Rework prov pdu length check 2020-06-02 10:13:51 +08:00
Jiang Jiang Jian
5fb93a14ae Merge branch 'bufix/fix_v4.1_bluedroid_bugs_mr' into 'release/v4.1'
component/bt: fix notify malloc failed , fix no BLE_AUTH_CMPL_EVT and fix bluedroid btc deinit crash(backport 4.1)

See merge request espressif/esp-idf!8756
2020-05-29 11:13:20 +08:00
Jiang Jiang Jian
63592b667c Merge branch 'nimble/config_option_sdkconfig_rename_v4.1' into 'release/v4.1'
Add NimBLE config options in sdkconfig.rename (v4.1)

See merge request espressif/esp-idf!8735
2020-05-29 11:12:44 +08:00
zhiweijian
8793aab0e3 add congest direct callback and fix malloc failed when multi_connection notify performance test 2020-05-28 12:07:58 +00:00
wangcheng
d32ee233af fix bta_dm_deinit_cb crash 2020-05-28 12:07:58 +00:00
wangcheng
049402ae8d master missing BLE_AUTH_CMPL_EVT after restart 2020-05-28 12:07:58 +00:00
Jiang Jiang Jian
977d98cb6d Merge branch 'bugfix/ble_mesh_check_timer_init_v4.1' into 'release/v4.1'
ble_mesh: Check the result of creating timer (v4.1)

See merge request espressif/esp-idf!8958
2020-05-28 15:27:42 +08:00
Jiang Jiang Jian
983a4be42e Merge branch 'nimble/update_nimble_submodule_v4.1' into 'release/v4.1'
NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)

See merge request espressif/esp-idf!8794
2020-05-28 15:25:12 +08:00
lly
0c87b1c12d ble_mesh: Check the result of creating timer 2020-05-28 10:27:06 +08:00
Island
5ea193115b Merge branch 'bugfix/ble_mesh_sync_zephyr_fixes_v4.1' into 'release/v4.1'
Bugfix/ble mesh sync zephyr fixes (v4.1)

See merge request espressif/esp-idf!8948
2020-05-28 10:15:53 +08:00
Island
6971cdbad5 Merge branch 'bugfix/ble_mesh_not_use_same_private_key_v4.1' into 'release/v4.1'
ble_mesh: Not using pre-initialized private key (v4.1)

See merge request espressif/esp-idf!8945
2020-05-28 10:14:21 +08:00
lly
2f73d76768 ble_mesh: Transport tx fields overflow [Zephyr]
The transport segmented TX nack and seg_pending fields must be at least
6 bits to avoid overflow for 32 segment messages. This change rearranges
the seg_tx fields to gather all state flag fields in one byte, while
making the counter fields whole bytes.
2020-05-27 17:46:29 +08:00
lly
63c8dd2981 ble_mesh: Friend with unknown appkey [Zephyr]
Ensures that friend messages are enqueued, even if the packet is
received with an appkey is unknown to the friend. Previously, sdu_recv
would return EINVAL if the appkey was unknown, which would prevent the
lower transport layer from adding the packet to the friend queue. This
is irrelevant for the logic in lower transport, and should not be
returned as an error.
2020-05-27 17:46:23 +08:00
lly
0c06be9bcd ble_mesh: Not using pre-initialized private key 2020-05-27 17:39:50 +08:00
lly
d3921346a9 ble_mesh: Same func for storing/restoring comp data 2020-05-27 17:30:31 +08:00
lly
3b89497b39 ble_mesh: Fix using old config for duplicate scan 2020-05-25 16:53:30 +08:00
lly
eeff638c97 ble_mesh: Fix Provisioner failed to publish 2020-05-22 15:47:40 +08:00
Island
502a2aed2a Merge branch 'bugfix/ble_mesh_friend_init_flag_v4.1' into 'release/v4.1'
Bugfix/ble mesh friend init flag (v4.1)

See merge request espressif/esp-idf!8848
2020-05-22 10:51:13 +08:00
Island
e789d85e69 Merge branch 'bugfix/ble_mesh_node_old_version_to_new_v4.1' into 'release/v4.1'
ble_mesh: Fix mesh node device role restore (v4.1)

See merge request espressif/esp-idf!8724
2020-05-21 15:10:48 +08:00
Island
eb8f6f942a Merge branch 'bugfix/ble_mesh_fix_typos_v4.1' into 'release/v4.1'
ble_mesh: Fix typos (v4.1)

See merge request espressif/esp-idf!8726
2020-05-21 15:10:10 +08:00
lly
715cb64288 ble_mesh: Clear two more vars during proxy server deinit 2020-05-21 14:26:05 +08:00
lly
52fa4c7f96 ble_mesh: Add missing sdkconfig.h 2020-05-21 14:26:05 +08:00
lly
f02d095ff1 ble_mesh: Init device name during proxy server init
Device name will be reset when deinit mesh stack. If not
initializing device name during the next mesh stack init,
it will fail to set the device name when using bluedroid.
2020-05-21 14:26:04 +08:00
lly
ab73b3fd8e ble_mesh: Add init flag for friend init/deinit
Since bt_mesh_friend_init() will only be invoked when
a device is provisioned or Provisioner is enabled, so
we add a flag to indicate if the friend functionality
is initialized in case deinit before initialization.
2020-05-21 14:26:04 +08:00
Prasad Alatkar
3db186d5d1 NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)
Change list:
- Reduces the size of the compiled binary, PR: https://github.com/espressif/esp-nimble/pull/6
- Null pointer check, PR: https://github.com/apache/mynewt-nimble/pull/701
- Pairing procedure abort on unexpected req: https://github.com/apache/mynewt-nimble/pull/710
- Fix conn flags after pairing: https://github.com/apache/mynewt-nimble/pull/730
- Remove notification for update process timeout (Vol 6, Part B, section 5.2 ):
  https://github.com/apache/mynewt-nimble/pull/782
- CCCD fix : https://github.com/apache/mynewt-nimble/pull/790 and
  https://github.com/apache/mynewt-nimble/pull/804
- Host based Privacy (RPA) fix: https://github.com/espressif/esp-nimble/pull/7

 Closes https://github.com/espressif/esp-nimble/issues/10

 Closes https://github.com/espressif/esp-idf/issues/4413
2020-05-20 16:09:02 +05:30
lly
9d587eb8fd ble_mesh: Remove patch for the bug of an App 2020-05-15 20:23:48 +08:00
Hrishikesh Dhayagude
c595429db0 Add NimBLE config options in sdkconfig.rename 2020-05-14 11:30:35 +10:00
lly
b929611d5d ble_mesh: Fix typos 2020-05-13 18:30:52 +08:00
lly
e9f64eb1c3 ble_mesh: Fix mesh node device role restore
Old version of BLE Mesh has no device role storage, because
previously we only support storing mesh node info.
If the binary of the node is upgraded from old version to a
new version (support storing provisioner info), the mesh info
of the node will not be restored because mesh role does not
exist in the flash.
2020-05-13 18:25:53 +08:00
Island
56c1646e2a Merge branch 'bugfix/sync_zephyr_bt_mesh_bugfix_v4.1' into 'release/v4.1'
Bugfix/sync zephyr bt mesh bugfix (v4.1)

See merge request espressif/esp-idf!8688
2020-05-13 18:15:37 +08:00
lly
31b164ccb1 ble_mesh: Not ignore msg when fast prov is enabled
When fast provisioning is enabled, Provisioner shall not
ignore messages from the nodes whose addresses are not in
the provisioning database. Because other nodes which are
not provisioned by the Primary Provisioner will send node
address messages to the Primary Provisioner.
2020-05-13 10:09:04 +08:00
lly
295a9eea82 ble_mesh: Fix not update prov addr in fast prov
When using fast provisioning, the Provisioner functionality
will be enabled. Unicast addresses within the pre-allocated
range will be used for provisioning nodes. And during the
address assignment, the allocated unicast address will be
checked that if it's duplicated with other nodes addresses
and the Provisioner's own addresses.
So before starting using fast provisioning, we need to update
the Provisioner address.
2020-05-11 15:42:58 +08:00
lly
06d445759a ble_mesh: net_key_status only pull one key idx [Zephyr]
Fixes bug where the config client's net_key_status handler would attempt
to pull two key indexes from a message which only holds one.
2020-05-11 15:42:57 +08:00
lly
b1efdd5eb1 ble_mesh: Update client message timeout calculation
Since the behavior of sending segmented messages has been
changed properly, the calculation of timeout value which
will be used when sending an acknowledged message by a
client model also needs to be updated.
2020-05-11 15:42:57 +08:00
lly
42ccb7277f ble_mesh: Add lock for segmented msg operations
Add mutex to protect some variables of the mesh segmented
messages.
Currently the timeout handler of mesh will be executed in
the btc task, while the received mesh messages will be
handled in the btu task. In case some variables are set to
NULL when handled in the btu task, meanwhile these variables
are also accessed in the timeout handler, so we add mutex to
protect these variables and related operations.
2020-05-11 15:42:57 +08:00
lly
cffbc32253 ble_mesh: Fix dereferencing pointer before checking for NULL [Zephyr]
The publication context is checked for NULL in bt_mesh_model_publish()
however it was dereferenced before that. Move the assignment to
ctx.send_rel to the same place where other ctx members are set.
2020-05-11 15:42:56 +08:00
lly
8f5564af84 ble_mesh: Optimize some mesh log output 2020-05-11 15:42:56 +08:00
lly
6a6bac2c62 ble_mesh: Fix restore when revoke keys [Zephyr]
Store keys (NetKey and AppKey) again after revoking.
2020-05-11 15:42:55 +08:00
lly
526f253b2e ble_mesh: Spit mesh_util.h into different header files
Split mesh_util.h into mesh_byteorder.h, mesh_compiler.h,
mesh_ffs.h and mesh_util.h based on the classification of
Zephyr, which will make further porting more clear.
2020-05-11 15:42:55 +08:00
lly
2f40c4449f ble_mesh: Split mesh os related into a separate file 2020-05-11 15:42:54 +08:00
lly
8ab29292ab ble_mesh: Split mesh mutex into a separate file 2020-05-11 15:42:54 +08:00
lly
9af8947e55 ble_mesh: Rename mesh_kernel.* to mesh_timer.* 2020-05-11 15:42:53 +08:00
lly
800cb0fff8 ble_mesh: Add and use transport macro definitions [Zephyr] 2020-05-11 15:42:53 +08:00
lly
362e8e0a1f ble_mesh: Friend SeqAuth cleanup [Zephyr]
The Friend queue uses the message SeqAuth to determine whether the
message is already in the queue. To facilitate this, the SeqAuth is
passed around as a pointer throughout the transport modules. In the
bt_mesh_ctl_send functions, this parameter is also exposed in the API,
but the internal usage is inconsistent and buggy. Also, no one actually
uses this parameter.

- Removes seq_auth param from bt_mesh_ctl_send, instead passing NULL
  directly to the friend module, to enforce its addition to the queue.
- Makes the seq_auth pointer const throughout the friend module.
2020-05-11 15:42:52 +08:00
lly
de648753b0 ble_mesh: Rework msg_cache [Zephyr]
Changes the behavior of the message cache to optimize for cache
capacity. Previously, the message cache's primary function was to avoid
decrypting messages multiple times, although the cache's main function
in the spec is to avoid message rebroadcasting. Optimizing for minimal
decryption causes us to fill the network cache faster, which in turn
causes more cache misses, potentially outweighing the advantage.

Now stores src + seq in message cache instead of field hash value. This
cuts cache size in two, while including more of the sequence number than
before.

Adds messages to the cache only after the packet is successfully
decrypted. This reduces noise in the cache, and ensures that no
invalid deobfuscations are added.

Additionally, this fixes a bug where multiple calls to net_decrypt with
the same packet failed, as the message cache found its own entry from
the previous call.
2020-05-11 15:42:52 +08:00
lly
aed5dc63b7 ble_mesh: Segmented TX to groups [Zephyr]
Implements several changes to the transport layer segmented tx to
improve group message performance:
- Moves retransmit counter to tx context instead of per packet. As every
  unacked packet is sent every retransmit, the retransmit counters would
  be the same in each segment. This makes it easier to control progress.
- Delays the scheduling of the retransmit until the completion of the
  last segment by adding a seg_pending counter. This is essentially the
  same as the old behavior, except that the old behavior might retrigger
  the sending before all segments are finished if the advertising is
  slow.
- Allows the group transmits to stop as soon as all retransmits have
  been exhausted, instead of timing out waiting for acks that won't
  come. This allows group tx to finish without error.
- Fixes a bug where a failed TX would block IV update.
- Cancels any pending transmissions of acked segments.
- Reduces log level for several common group tx scenarios that aren't
  erronous.
2020-05-11 15:42:51 +08:00
lly
21c5be311c ble_mesh: Add comment explaining use of byte order [Zephyr]
Add comment that explains why a different byte order is used for the
3-byte opcode on the CID part of the opcode.
2020-05-11 15:42:51 +08:00
lly
0a41241e10 ble_mesh: Use 24-bit functions [Zephyr]
Use 24-bit functions for byteorder and net_buf in order to make the
byteorder used more readable.
2020-05-11 15:42:50 +08:00
lly
e3472c1c99 ble_mesh: Optimize net_buf_simple routines [Zephyr]
Use sys_put_xyz() helpers instead of memcpy() whenever possible. This
brings in straight-line inline code for pushes and adds of known,
small sizes.
2020-05-11 15:42:50 +08:00
lly
175109d196 ble_mesh: Add PRIu64 & PRIx64 in mesh_types.h 2020-05-11 15:42:49 +08:00
lly
61d376109c ble_mesh: Add push functions for supported bit-variants [Zephyr]
Add push functions for bit-widths supported by add and pull functions.
2020-05-11 15:42:49 +08:00
lly
fd4b6fd47e ble_mesh: Add support for 64 bit data type [Zephyr]
This enables pulling and pushing values in 64 bit format.
2020-05-11 15:42:48 +08:00
lly
b348b55d1e ble_mesh: Add support for 48 bit data type [Zephyr]
This enables pulling and pushing values in 48 bit format.
2020-05-11 15:42:48 +08:00
lly
82a5b05948 ble_mesh: Add 48 bit variants [Zephyr]
This adds sys_*_*48 functions that operation on a 48 bits values.
2020-05-11 15:42:46 +08:00
lly
95718d9ef9 ble_mesh: Add support for 24 bit data type [Zephyr]
This enables pulling and pushing values in 24 bit format.
2020-05-11 15:42:46 +08:00
lly
33c0ddce40 ble_mesh: Add 24 bit variants [Zephyr]
This adds sys_*_*24 functions that operation on a 24 bits values.
2020-05-11 15:42:45 +08:00
lly
bf4b513e83 ble_mesh: Group resends in proxy nodes [Zephyr]
Resend transport segments for groups on the advertiser interface, even
if a connected proxy node holds the group.
2020-05-11 15:42:45 +08:00
lly
91fff8c897 ble_mesh: Typo in condition in comp_add_elem of cfg_srv [Zephyr]
Vendor model IDs take up four (not two) bytes in the composition
2020-05-11 15:42:45 +08:00
lly
7ea60199a6 ble_mesh: GATT Proxy Spec 1.0.1 changes [Zephyr]
Backport of https://github.com/apache/mynewt-nimble/pull/724

Mesh spec 1.0.1 changes proxy disabling behavior to only affect the
relaying from proxy nodes. Previously, disabling proxy would shut down
all proxy and node activity.

Tweaks from the original commit:
- Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set()
- Removed invalid ref to 4.2.11.1 in node_identity_set()

---

According to Mesh Profile Spec 1.0.1, Section 4.2.11:
"If the Proxy feature is disabled, a GATT client device can connect
over GATT to that node for configuration and control. Messages from
the GATT bearer are not relayed to the advertising bearer."

Moreover some notes have been removed from the spec compared to
version 1.0:

Mesh Profile Spec 1.0, Section 4.2.11:

"Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00
the GATT Bearer Server shall disconnect all GATT Bearer Clients."

"The Configuration Client should turn off the Proxy state as the last
step in the configuration process."

Mesh Profile Spec 1.0, Section 4.2.11.1:

"When the GATT Proxy state is set to 0x00, the Node Identity state
for all subnets shall be set to 0x00 and shall not be changed."
2020-05-11 15:42:44 +08:00
lly
2b84b673bf ble_mesh: Support reliable sending when publishing [Zephyr]
Until now the choice of reliable sending (segmented messages with
acks) was implicitly dependent on the size of the payload. Add a new
member to the bt_mesh_model_pub to force using segment acks even when
the payload would fit a single unsegmented message.
2020-05-11 15:42:44 +08:00
lly
c2e24e306f ble_mesh: Check device uuid when init provisioning 2020-05-11 15:42:43 +08:00
lly
a85459e245 ble_mesh: Fix provisioning buffer initialization [Zephyr]
When PB-GATT support has been enabled the provisioning code "borrows"
the buffer from the proxy code. However, the way that initialization
was happening the proxy buffers were initialized only after
provisioning initialization, resulting in a corrupted buffer with
buf->data pointing to NULL. Reorder the initialization calls so that
proxy is done first and provisioning only after it.
2020-05-11 15:42:43 +08:00
lly
a0434371b0 ble_mesh: Skip publish if update fails [Zephyr]
Allow models to skip a periodic publish interval by returning an error
from the publish update callback.

Previously, an error return from publish update would cancel periodic
publishing. This can't be recovered from, and as such, no valid model
implementation could return an error from this callback, and there was
no way to skip a periodic publish.
2020-05-11 15:42:42 +08:00
lly
1717c2face ble_mesh: Enable Segmented Control Messages [Zephyr]
The function bt_mesh_ctl_send() used to support maximum length of
11 bytes. The segmentation complies with the BLE Mesh Standard.
The ack is disabled in case of non unicast address.
2020-05-11 15:42:42 +08:00
Island
27ae9d3e2c Merge branch 'bugfix/ble_mesh_provisioner_check_key_v4.1' into 'release/v4.1'
ble_mesh: Check if appkey exist before deleting it (v4.1)

See merge request espressif/esp-idf!8621
2020-05-06 18:17:02 +08:00
Island
7db21de3b3 Merge branch 'bugfix/ble_mesh_compile_error_o2_v4.1' into 'release/v4.1'
ble_mesh: Fix compile error when -O2 (performance) is chosen (v4.1)

See merge request espressif/esp-idf!8616
2020-05-06 18:15:53 +08:00
lly
78b13034ef ble_mesh: Fix node not erase info completely
Previously only mesh node info is supported to be stored
in flash. So when trying to reset the node, we only need
to judge if the BLE_MESH_VALID flag is set.
Currently we support storing both node & Provisioner info
in flash, when trying to erase the node info from flash,
the BLE_MESH_NODE flag will be checked. So we need to set
bt_mesh.flags to 0 when all the erase operations are done.
2020-05-06 11:43:43 +08:00
lly
099bf88b2e ble_mesh: Check if appkey exist before deleting it 2020-05-06 11:40:20 +08:00
lly
466d450b4b ble_mesh: Add length check for some mesh operations 2020-05-06 11:26:33 +08:00
lly
a742255f8e ble_mesh: Fix compile error when -O2 (performance) is chosen 2020-05-06 11:26:25 +08:00
Island
dd89b2dc0d Merge branch 'bugfix/ble_mesh_rpl_list_size_v4.1' into 'release/v4.1'
ble_mesh: Associate replay protection list size with nodes count (v4.1)

See merge request espressif/esp-idf!8493
2020-05-06 11:15:21 +08:00
Island
fefa9b7fe9 Merge branch 'doc/ble_mesh_fixes_v4.1' into 'release/v4.1'
doc: Fix some ble mesh description (v4.1)

See merge request espressif/esp-idf!8502
2020-05-06 11:13:16 +08:00
Island
547fd926a9 Merge branch 'bugfix/ble_mesh_add_missing_cpp_v4.1' into 'release/v4.1'
ble_mesh: Add missing #ifdef __cplusplus (v4.1)

See merge request espressif/esp-idf!8505
2020-05-06 11:12:13 +08:00
Island
d6cbfc7f19 Merge branch 'feat/ble_mesh_sensor_model_example_v4.1' into 'release/v4.1'
ble_mesh: Add ble mesh sensor model examples (v4.1)

See merge request espressif/esp-idf!8507
2020-05-06 11:11:59 +08:00
Island
61405472e4 Merge branch 'bugfix/ble_mesh_time_scene_wrong_name_v4.1' into 'release/v4.1'
ble_mesh: Fix time scene wrong macro name (v4.1)

See merge request espressif/esp-idf!8510
2020-05-06 11:11:24 +08:00
lly
4b1cbe87b3 ble_mesh: Fix client local parameters not initialized 2020-04-30 11:50:15 +00:00
lly
8b2291a718 ble_mesh: Continue node info restore even if failure happens
During BLE Mesh Provisioner initialization, the stack will restore
the nodes information if settings storage is enabled.
Previously when a failure happens (e.g. found the same uuid) during
the restore procedure, the information of the following nodes will
not be restored and error will be directly returned.
But this will introduce some problem with user experience, because
some newly provisioned nodes information will not be restored and
Provisioner will not be able to control those nodes.
So we change the operation here, when a failure happens during the
restore procedure, Provisioner will only ignore the information of
the current node and continue restoring other nodes information.
2020-04-30 11:50:15 +00:00
lly
fca4124f70 ble_mesh: Remove some redundant functions 2020-04-30 11:50:15 +00:00
lly
d35d765395 ble_mesh: Notify unprovisioned device beacon to application layer
With this change, if a Provisioner has provisioned the maximum
number of nodes, it can still report the unprovisioned device
beacon from other nodes to the application layer. And this will
be more reasonable compared with the previous implementation.
Previously when the node array of Provisioner is full, no beacon
from unprovisioned devices will be reported, only some warning
logs will be given.
2020-04-30 11:50:15 +00:00
lly
94092a148c ble_mesh: Check if assigned node address is duplicated
Previously only check the node address when it is assigned by the
application layer. Here we also check the address when the address
is allocated internally. And this will be useful when some mesh
internal tests are performed.
2020-04-30 11:50:15 +00:00
lly
68e8a7e0ba ble_mesh: Update next alloc address when node info is added 2020-04-30 11:50:15 +00:00
lly
62ac50f9d7 ble_mesh: Fix Provisioner provisioning deadlock 2020-04-30 11:50:15 +00:00
lly
fefd52f093 ble_mesh: Remove BLE_MESH_MAX_STORED_NODES option
Previously the BLE_MESH_MAX_STORED_NODES option is added for
internal mesh test, which will be a little confusing for the
users to understand.
Here we remove this option, instead the BLE_MESH_MAX_PROV_NODES
will be used for all the cases. For mesh internal test, when
the test function is called to add some nodes info, the info
will be stored in the array of provisioned nodes directly.
2020-04-30 11:50:15 +00:00
lly
7c379f8a65 ble_mesh: Associate replay protection list size with nodes count
The replay protection list of Provisioner should be at least equal
to the number of nodes with the precondition that each node contains
only one element.
The help information of replay protection list is updated, and the
maximum number of nodes for Provisioner is adjusted based on the
replay protection list size.
2020-04-30 11:50:15 +00:00
lly
c28828d255 doc: Fix some ble mesh description 2020-04-30 11:43:26 +00:00
lly
67eef52822 ble_mesh: Add some common macros for sensor model 2020-04-30 11:35:11 +00:00
lly
6f7acf6a21 ble_mesh: Allow empty sensor series column value 2020-04-30 11:35:11 +00:00
lly
df96c73471 ble_mesh: Check if same sensor (settings) property id exists 2020-04-30 11:35:11 +00:00
lly
3ceb5b3718 ble_mesh: Allow empty sensor settings exist 2020-04-30 11:35:11 +00:00
lly
d51bd36142 ble_mesh: Add missing #ifdef __cplusplus 2020-04-30 08:45:55 +00:00
baohongde
ddaa9d4523 Coexistence: Add coexist API to enable BLE connection dynamic priority 2020-04-29 13:57:59 +08:00
lly
e6fc2a7bc8 ble_mesh: Fix time scene wrong macro name 2020-04-27 16:24:13 +08:00
Jiang Jiang Jian
f646cdd6a8 Merge branch 'nimble/fix_ble_hs_reset_v4.1' into 'release/v4.1'
NimBLE: Reset master and slave states on host reset and few minor fixes  (backport v4.1)

See merge request espressif/esp-idf!8216
2020-04-15 13:23:59 +08:00
lly
1ac44aa202 ble_mesh: Support BLE advertising simultaneously 2020-04-10 17:34:06 +08:00
Prasad Alatkar
acb92c225f NimBLE: Minor fix in esp_nimble_cfg and bleprph README (backport v4.1) 2020-04-09 16:05:14 +05:30
Prasad Alatkar
072d01da2f NimBLE: Reset master and slave states on host reset and fix build failure (backport v4.1) 2020-04-09 16:05:04 +05:30
lly
89f7e62011 ble_mesh: Add ble mesh white list test function
Using the ble mesh white list test functions, a node can choose to
only receive mesh messages from a specific node and relay the
messages for it. Messages from other nodes will be ignored.
2020-04-09 06:03:59 +00:00
Jiang Jiang Jian
9a1c5a903f Merge branch 'bugfix/btdm_backports_v4.1_0328' into 'release/v4.1'
Bugfix/btdm backports v4.1 0328

See merge request espressif/esp-idf!8150
2020-04-02 22:47:49 +08:00
xiewenxiang
79590d2e21 component/bt: fix don't dequeue the command queue after process the read_by_type_req 2020-03-31 16:27:08 +08:00
baohongde
a8494b68e1 components/coex: Fix wakeup delay with DFS 2020-03-28 20:12:21 +08:00
gengyuchao
374e9b32d4 bugfix/fix_controller_disable_re_enable_crash 2020-03-28 17:14:37 +08:00
Jiang Jiang Jian
71ffae5d6e Merge branch 'bugfix/hfp_github_issues_v4.1' into 'release/v4.1'
Bugfix for HFP and some Github issue. v4.1

See merge request espressif/esp-idf!7975
2020-03-20 13:21:33 +08:00
weitianhua
f5fc735711 Bugfix for HFP and some Github issue.
1. Bugfix for AG audio crash (change the return position)
2. Fix the error macro name and error return in hfp_hf demo
3. Fix the annotation error using UTF-8 ' (from Github)
4. Change or remove the log in SCO related code region.
5. Correct error of introduction of a function.
2020-03-18 04:06:24 +00:00
lly
7815cd9ff4 ble_mesh: Fix ble mesh nimble host deinit 2020-03-17 16:18:50 +08:00
Jiang Jiang Jian
1cdea40bba Merge branch 'bugfix/ble_mesh_miscellaneous_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh miscellaneous fix (v4.1)

See merge request espressif/esp-idf!7969
2020-03-17 15:34:19 +08:00
weitianhua
aa6347339c Remove (x2) variable in BCM_STRNCPY_S and BCM_STRCPY_S when performance optimization enabled 2020-03-14 14:41:16 +08:00
weitianhua
8488f292c2 Fix mem_start uninitialized error when compiler optimization performance enabled 2020-03-14 14:41:06 +08:00
lly
6431a5e185 ble_mesh: Move dev_role to the end of model_pub 2020-03-13 19:24:49 +08:00
lly
27b28c0249 ble_mesh: Use the right netkey during iv update 2020-03-13 19:24:45 +08:00
lly
b29bc240a7 ble_mesh: Use the right net_idx & app_idx for publish 2020-03-13 19:24:37 +08:00
lly
940e87c0da ble_mesh: Check buf->ref before unref the buffer 2020-03-13 19:24:32 +08:00
lly
60eaca9637 ble_mesh: Fix mesh memory use-after-free issue 2020-03-13 19:24:27 +08:00
lly
e01333514d ble_mesh: Add ble mesh deinit in btc task 2020-03-13 19:24:23 +08:00
lly
f0519c674f ble_mesh: Free beacon timer when deinit mesh 2020-03-13 19:24:18 +08:00
lly
de9186b908 ble_mesh: Use lock for mesh timer operations 2020-03-13 19:24:12 +08:00
Prasad Alatkar
48fe9dfce7 NimBLE: Add Host based privacy (RPA) feature support (v4.1)
- This feature removes dependency on controller to use privacy (RPA)

Closes BT-519
2020-03-06 11:02:22 +08:00
Prasad Alatkar
e36b3e0d04 NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (v4.1)
Closes BT-522 & BT-523
2020-03-05 18:00:27 +08:00
Island
0e21d1e372 Merge branch 'nimble/misc_host_flow_ctrl_changes_v4.1' into 'release/v4.1'
NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt, memory management & example (backport v4.1)

See merge request espressif/esp-idf!7857
2020-03-05 14:54:39 +08:00
Jiang Jiang Jian
96cd373265 Merge branch 'bugfix/btdm_assert_when_create_connection_cancel_v4.1' into 'release/v4.1'
components/bt: Fix assert when create conntion cancel

See merge request espressif/esp-idf!7817
2020-03-05 14:53:18 +08:00
Hrishikesh Dhayagude
74c528d836 NimBLE: Use dynamic buffers instead of static memory.
The NimBLE host buffers that consume a significant amount of memory are
now allocated dynamically.
The advantage is that, the memory can be reclaimed in cases where BLE
is turned off and not required for the current boot cycle
2020-03-04 12:01:53 +05:30
Prasad Alatkar
c55689ca18 NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt & example (v4.1)
- Add menuconfig option for NimBLE host flow control
- Include changes in `blecent` example from upstream PR!702
- add ble_hs_lock in ble_gap_unpair Upstream PR!584
- ble_hs_hci_rx_evt, upstream PR!738

Closes https://github.com/espressif/esp-idf/issues/4243
2020-03-04 11:35:47 +05:30
lly
8e34adb94c ble_mesh: Calc incomplete timeout based on msg info 2020-03-02 02:08:13 +00:00
lly
7d41eb6f52 ble_mesh: Start the timer when starting to send the client message 2020-03-02 02:08:13 +00:00
lly
2a014db549 ble_mesh: No timeout for client message to non-unicast address 2020-03-02 02:08:13 +00:00
lly
6c207ea6d2 ble_mesh: Unify client application and lower transport layer timeout 2020-03-02 02:08:13 +00:00
lly
2611e23bd2 ble_mesh: Allow maximum 377 octets payload 2020-03-02 02:08:13 +00:00
lly
4b2ef7303e ble_mesh: Reset transport info when node is removed 2020-03-02 02:08:13 +00:00
lly
21af266a11 ble_mesh: Provisioner ignores msg from removed node 2020-03-02 02:08:13 +00:00