710 Commits

Author SHA1 Message Date
f072c9f753 style: format python files with isort and double-quote-string-fixer 2022-12-16 08:38:48 +01:00
3883bde0b0 ci: Add MQTT publish test to standard test apps 2022-12-16 08:38:48 +01:00
40fdf32793 ci: Extend the MQTT weekend test to check mqtt-enqueue api 2022-12-16 08:38:48 +01:00
2c3363e23a MQTT: Add new config modes (outbox related, incremental id) 2022-12-16 08:38:48 +01:00
6756e62387 MQTT: Update submodule reference to support new config modes
* Queueing publish messages to outbox when the client is not connected (default=off -> messages are queued if disconnected)
* Use of incremental msg-id instead of random id (default=off -> msg-id uses platform_random())
* Posting a new event-id if a queued message gets deleted from the outbox (default=off -> events are not posted)

Detailed description of included `esp-mqtt` changes
(da850b0add1e71b3659bfac5d797cc834dc3e89b...9ea804e0ab5368d5ab53ae2301a5fec9d1f12f1a)
* mqtt: Remove unused mqtt_header_state_t
  - esp-mqtt commit: b7158a4aea
  - esp-mqtt MR: espressif/esp-mqtt!84
  - Merges https://github.com/espressif/esp-mqtt/pull/180
* Cleanup public include dirs
  - esp-mqtt commit: f65d5d05db
  - esp-mqtt MR: espressif/esp-mqtt!85
* Config: Add a new option to use incremental message id
  - esp-mqtt commit: 8bb4a26f46
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/176
* Publish: Add new API to enqueue qos>0 messages
  - esp-mqtt commit: dc7fd5c0b1
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Closes https://github.com/espressif/esp-mqtt/issues/155
* Config: Add a new option to disable publishing when disconnected
  - esp-mqtt commit: f44dcb1c26
  - esp-mqtt MR: espressif/esp-mqtt!85
  - Related https://github.com/espressif/esp-mqtt/issues/177
* Events: Add new event to report deleted messages from outbox
  - esp-mqtt commit: 2e35d4d4d5
  - esp-mqtt MR: espressif/esp-mqtt!85
* Publish: Allow for qos=0 messages to be stored using esp_mqtt_client_enqueue()
  - esp-mqtt commit: e2de0f3e3e
  - esp-mqtt MR: espressif/esp-mqtt!85
2022-12-16 08:38:48 +01:00
10bba73d21 MQTT: Update submodule reference: config, error handle, minor fixes
Updates esp-mqtt reference to include fixes below related mainly to:
* configuration update (disable keepalive, network timeout)
* minor fixes (size_t for all sizes, unbalanced lock, api for
  outbox-size)
* extended error handle to include socket's errno

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

Config: Added config value to disable keepalive mechanism
esp-mqtt commit: 8562437c8a
Related https://github.com/espressif/esp-mqtt/issues/179

Added esp_mqtt_client_get_outbox_size API
esp-mqtt commit: 0a1d9d0300
Related https://github.com/espressif/esp-mqtt/pull/178

mqtt_outbox: Removed unused retry_count field from outbox_item_t
esp-mqtt commit: 673086e13a

config: Fixed typo for configuring OUTBOX_EXPIRED_TIMEOUT_MS
esp-mqtt commit: 259baaec96

Fixed missing MQTT_API_UNLOCK in esp_mqtt_client_stop error path
esp-mqtt commit: 845c2a3a1e
Related https://github.com/espressif/esp-mqtt/issues/173
Related https://github.com/espressif/esp-mqtt/pull/174

Extended mqtt error handle to capture transport's socket errno (IDF
v4.3+)
esp-mqtt commit: 23c8e1ecf5

Config: Added configuration value to set network timeout
esp-mqtt commit: a03228ac46
Related https://github.com/espressif/esp-mqtt/pull/166

Used size_t for all lengths to allow for other architectures
esp-mqtt commit: b9db8d9020
2022-12-16 08:38:48 +01:00
b342444746 riscv: Add new arch-level component
Changes come from internal branch commit a6723fc
2022-12-16 08:38:48 +01:00
5facf78673 MQTT: Restore default MQTT_OUTBOX_EXPIRED_TIMEOUT_MS to 30 sec
The OUTBOX_EXPIRED_TIMEOUT_MS was 30*1000 in original esp-mqtt code.
Don't change the default OUTBOX_EXPIRED_TIMEOUT_MS without good reason,
which may has impact on memory usage for existing applications.

Fixes: e931168ed695 ("MQTT: add configurable msg expired timeout")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2022-12-16 08:38:48 +01:00
6c55757f70 Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2022-12-16 08:38:48 +01:00
87d698cbc7 cmock: added cmock as component
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2022-12-16 08:38:48 +01:00
25b661c8ea MQTT: add configurable msg expired timeout 2022-12-16 08:38:48 +01:00
8b3d3db10b MQTT: Update submodule reference
SSL: add config option for skipping common name check
esp-mqtt commit: 5e8950e681)
Closes https://github.com/espressif/esp-mqtt/issues/158

SSL: add support for tls with secure element (ATECC608A)
esp-mqtt commit: a7ff9afa3f)
Closes https://github.com/espressif/esp-mqtt/issues/156

Websocket: Allow the query part of the uri to be a part of the path
esp-mqtt commit: 40b06deb10)
Closes https://github.com/espressif/esp-mqtt/issues/161

Config: Add check for consistency between config settings
esp-mqtt commit: 8a412c147d)

Add IDF version check for secure element feature
esp-mqtt commit: db4bce01ab)

Fix esp_mqtt_client_stop deadlock
esp-mqtt commit: 5e17dcaeb2)
Closes https://github.com/espressif/esp-mqtt/issues/163

Add dispatch error event for read errors
esp-mqtt commit: d4aaec08ff
Closes https://github.com/espressif/esp-idf/issues/5704

Cleanup expired messages when offline
esp-mqtt commit: bdadd77c6e
Closes https://github.com/espressif/esp-idf/issues/5668

esp_mqtt_client_publish now returns msg id for QoS > 0 when offline
esp-mqtt commit: f7325bfa10

Add support for Digital Signature through ESP-TLS
esp-mqtt commit: 7d8e59de00
2022-12-16 08:38:48 +01:00
691e7bca88 mqtt: clenaup logs and docs
esp_mqtt: Change an error print to use ESP_LOGE instead of ESP_LOGI
Move Sending MQTT connect message log from Info to Debug level
docs: Makes clear that publish API could block
Change the message printed after MQTT connection failure

Closes https://github.com/espressif/esp-idf/issues/5077
(by means of referencing commit 615aeae0c2)
2022-12-16 08:38:48 +01:00
9b79fe3d00 esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash 2022-12-16 08:38:48 +01:00
cb782cae1e mqtt-tests: rename tests to match the actual group 2022-12-16 08:38:48 +01:00
9db10b5b7b mqtt: reenable outbox unit tests for esp32s2 2022-12-16 08:38:48 +01:00
29ce3c5869 esp_mqtt: add option to configure mqtt task priority.
Merges https://github.com/espressif/esp-idf/pull/4947
2022-12-16 08:38:48 +01:00
605352c1c5 MQTT: Reference latest mqtt addressing c++ build and qos1/2 resend
Closes https://github.com/espressif/esp-idf/issues/4787
2022-12-16 08:38:48 +01:00
5ba36d511f ci: disable failed cases for s2 temporarily 2022-12-16 08:38:48 +01:00
650328b021 mqtt: example test to check connection with different ssl parameters 2022-12-16 08:38:48 +01:00
5be3f7b5d4 mqtt: add basic set of unit tests 2022-12-16 08:38:48 +01:00
0178bafba8 mqtt: update submodule to point to latest commit.
Adds bugfixes for:
 - Too early publishing
 - Potential mutex memory leak
 - CI related issues.
 - Wait for entire connack message
 - Event loop not getting cleaned up

Adds support for ALPN, configurable reconnect time, QEMU CI tests and password
protected client key.

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/46
Closes IDF-1162
Closes https://github.com/espressif/esp-mqtt/issues/137

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/47
Closes IDF-1126

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48
Closes IDFGH-2197
Closes https://github.com/espressif/esp-idf/issues/4349
Closes https://github.com/espressif/esp-mqtt/issues/140

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48
Closes IDFGH-2235
Closes https://github.com/espressif/esp-idf/issues/4384

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/49
Closes https://github.com/espressif/esp-idf/issues/4433
Closes IDFGH-2293

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/50
Closes FCS-254

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/53
Closes FCS-267
2022-12-16 08:38:48 +01:00
8a24bebbc0 ci: updated mqtt weekend test for qemu support
Added default sdkconfig for qemu build for the mqtt publish example,
Added environment configuration for running the same test on target
or in qemu
Updated missing example tests per latest ttfw refactoring
2022-12-16 08:38:48 +01:00
62f3dc4705 mqtt: updated to latest version to include latest fixes, support for global CA store, extended error structure to receive mqtt specific errors. updated idf ssl example to use this error struct
https://github.com/espressif/esp-mqtt/issues/135
2022-12-16 08:38:48 +01:00
6cadfe519b MQTT: update default broker URL for examples
The MQTT broker URL used as default in the examples has ceased operation. All examples and documention have been updated to point to the new domain mqtt.eclipse.org.
This also required an update of the python example test scripts to use TLS 1.2
2022-12-16 08:38:48 +01:00
37e511bef1 ci: fix weekend test confguration update per latest refactoring of
grouping tests
2022-12-16 08:38:48 +01:00
b4ba09ce38 esp_wifi: wifi support new event mechanism
1. WiFi support new event mechanism
2. Update examples to use new event mechanism
2022-12-16 08:38:48 +01:00
25f423d69b ci: limit example test to ESP32s 2022-12-16 08:38:48 +01:00
5a50fc0812 esp_tls: enable psk verification mode, added mqtt example using psk authentication 2022-12-16 08:38:48 +01:00
bef4fce9c1 mqtt: referenced esp-mqtt master to close disconnection issues and fix static analysis warnings
closes https://github.com/espressif/esp-idf/issues/3619 including mqtt commit 7223302deb
closes https://github.com/espressif/esp-idf/issues/3215 including mqtt commit caf5007b99
2022-12-16 08:38:48 +01:00
49296d851d esp-tls: extending error handle to contain error descriptors with last mbedtls failure and latest certificate verification result flags, reworked tcp_transport to use this error handle 2022-12-16 08:38:48 +01:00
a903e5e3a9 esp-tls: capturing specific errors to be available in tcp_transport and then in application code 2022-12-16 08:38:48 +01:00
63b3f29ffc components: use new component registration api 2022-12-16 08:38:48 +01:00
332fadfea6 esp_websocket_client: Add websocket client component
Closes https://github.com/espressif/esp-idf/issues/2829
2022-12-16 08:38:48 +01:00
3a2e82ec0f mqtt: added support for esp event loop, updating examples to register and use event loop handler 2022-12-16 08:38:48 +01:00
7f77ad063d mqtt_tests: add weekend test for sending and receiving empty payload messages, update config options per new naming convetions 2022-12-16 08:38:48 +01:00
6809fcb2df tcp_transport: modified ws_read to read payload directly to the read buffer and separately from header bytes
Previous version read all data to the buffer including header which reduced maximum payload read. This version uses a local array to receive header and reads payload bytes to the buffer
2022-12-16 08:38:48 +01:00
6b70e14236 mqtt tests: adding weekend test for mqtt library to exercise publishing/receiving different data and references esp-mqtt commits to pass these tests
testing conditions:
transports (tcp, ssl, ws..)
qos (0, 1, 2)
short repeated messages (packed packets)
oversized messages (fragmented packets)
publish from a different thread

Closes https://github.com/espressif/esp-idf/issues/2870 by means of including commit 815623dfe5a0e41fa0e51ab4e336feb3eaa5ba15 from esp-mqtt
Closes https://github.com/espressif/esp-idf/issues/2975 by means of including commit 752953dc3be007cca4255b66a35d3087e61f6a54 from esp-mqtt
Closes https://github.com/espressif/esp-idf/issues/2850 by means of including commits df455d2a5fe562dd1b8351da99a1d6d82b66eff3 17fd713bced4f2d00df7ed664ed82a7d108ab317 from esp-mqtt
2022-12-16 08:38:48 +01:00
e19b9aa2df separate rom from esp32 component to esp_rom
1. separate rom include files and linkscript to esp_rom
2. modefiy "include rom/xxx.h" to "include esp32/rom/xxx.h"
3. Forward compatible
4. update mqtt
2022-12-16 08:38:48 +01:00
9726859fa3 Correct Kconfigs according to the coding style 2022-12-16 08:38:48 +01:00
7437dce403 mqtt: support for BEFORE_CONNECT event in idf
Updated examples to use new event id, idf to use mqtt with fixed retained, oversized messages
2022-12-16 08:38:48 +01:00
60e39865e6 mqtt: ssl mutual authentication example added per PR from github, corrected cmake build, updated per idf style
Merges https://github.com/espressif/esp-idf/pull/2490
2022-12-16 08:38:48 +01:00
14e9df14ff tcp_transport: Remove the ignore warning because we had idf/esp-idf!3359 2022-12-16 08:38:48 +01:00
a31ede754f tcp_transport: transport set handle refactoring, web socket client name updated 2022-12-16 08:38:48 +01:00
229167f48a tcp_transport: renamed possibly generic function names to be esp_ prefixed and not to colide with user namespace 2022-12-16 08:38:48 +01:00
71d6861d6a tcp_transport: renamed transport related header files to esp_ prefixed to avoid collisions
tcp_transport component used public header files such as 'transport.h', etc. which are too generic and might collide with user or user libraries headers
This change closes #2417
2022-12-16 08:38:48 +01:00
78233fe7de doc: Re-add summaries of what children each menu item has
Slightly different to the original version of this, but same goal.
2022-12-16 08:38:48 +01:00
1d49ac3249 mqtt: silence a format warning 2022-12-16 08:38:48 +01:00
20dda12b88 mqtt: list files manually in component cmake file 2022-12-16 08:38:48 +01:00
24b656ca4b MQTT: Moved Kconfig from esp-mqtt submodule to esp-idf to support docs genration in RTD 2022-12-16 08:38:48 +01:00