Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matter upmerge 10 oct #124

Merged

Conversation

kkasperczyk-no
Copy link
Contributor

Upmerge of Matter revision to 1.0.0 tag.

jmartinez-silabs and others added 30 commits August 31, 2022 00:24
- Some callers of PacketBufferHandle::New did not null-check on
  failure to allocate. This is strongly linked to some crashes

Fixes #22262

This PR:
- Adds missing null checks required by API contract

Testing done:
- Unit tests still pass
- Conditions under which a crash previously occured no longer see
  a crash occur in manual testing against a real DUT
* Aded Updated Manual scripts

* Added Auto generated file

* Restyled by clang-format

* Added Ajuto generated file

* Restyled by clang-format

* Added Auto generated File

* Restyled by clang-format

* Added updated  DGGEN 3.1 scripts

* Added Auto generated file

* Restyled by clang-format

* Added Auto generated file

* Restyled by clang-format

Co-authored-by: Restyled.io <[email protected]>
…ing (#22229)

* [ESP32] cmake option to set software version and software version string

ESP-IDF lets user set software version string by two ways: Project's
CMakeLists.txt file or configuration option. It depends on
CONFIG_APP_PROJECT_VER_FROM_CONFIG option so making the same provision
for software version number.

Also, Reading the software version string from the app description
which is set using any one of above method.

Setting the default software version as per spec i.e. 0.

Setting PROJECT_VER and PROJECT_VER_NUMBER in all the examples

* Fix the QEMU tests

* Set software version to 0 if not set using cmake or config option

* Override GetSoftwareVersion in configuration manager
Spec indicates BlockEOF May have data length zero.
… outstanding. (#22282)

Commissioner shutdown shuts down the CASE sessions associated with the
commissioner, but not the PASE sessions.  Those sessions then get shut down
much later in shutdown, at which point various objects that are needed to
handle the shutdown are no longer present.

The fix is to shut down PASE sessions when we destroy CommissioneeDeviceProxy
objects, and ensure that we always destroy CommissioneeDeviceProxy via
ReleaseCommissioneeDevice, so we don't end up with dangling pointers to the
objects.

Fixes project-chip/connectedhomeip#16440

Should vastly improve, if not completely fix,
project-chip/connectedhomeip#20880
The chunking mechanism relies on errors being propagated as-is from the encoder
to the caller of AttributeAccessInterface::Read.  So we don't want to do any
error mapping on the read errors, unlike write errors.
…271)

This allows detection of this case without having to examine the
"underlyingError" of the NSError's userInfo.

Fixes project-chip/connectedhomeip#22214
…289)

* Disable faultinjection cluster in Darwin and Android API surface.

* Run codegen
…#22315)

* Test added march 8 (#15957)

* Added new manual scripts

* Added Auto generated File

* [OTA] Fix OTARequestorDriverImpl inclusion (#15981)

* Regen to fix CI failures (#15990)

* [ota] Store Default OTA Providers in flash (#15970)

* [ota] Store Default OTA Providers in flash

Store Default OTA Providers in flash each time the attribute
is modified and load it back on the application startup.

* Restyled by clang-format

* Fix build and reduce flash usage

Co-authored-by: Restyled.io <[email protected]>

* Disable OpenThread interface in a separate execution thread

* Remove merge artifacts

* Restyled by clang-format

Co-authored-by: kowsisoundhar12 <[email protected]>
Co-authored-by: Carol Yang <[email protected]>
Co-authored-by: Boris Zbarsky <[email protected]>
Co-authored-by: Damian Królik <[email protected]>
Co-authored-by: Restyled.io <[email protected]>
* Add CC13xx Factory Reset to allclusters/lock app

* Apply formatting

* Revert args.gni

* Restyled by prettier-markdown

Co-authored-by: Restyled.io <[email protected]>
Co-authored-by: Andrei Litvin <[email protected]>
…(#22275)

There are some code paths that loop over all endpoint indices (including ones
that do not have an endpoint defined yet) and then use the endpoint id to look
up endpoint indices.  Make sure we don't claim an endpoint index for the "not an
endpoint" endpoint id.

Also fixes findClusterEndpointIndex to check for the invalid endpoint id before
working with it, since that means the endpoint index it's looking at does not
correspond to a defined endpoint.

Fixes project-chip/connectedhomeip#22272
10s is not enough for a typical CASE establishment plus command
execution on less-high-powered devices.

Fixes project-chip/connectedhomeip#22213
Before project-chip/connectedhomeip#21256
AutoCommissioner used the operational proxy if it existed at all.  This could
happen even if it was disconnected, as long as it had been connected at some
point in the past.

This was accidentally changed to "use the operational proxy only if it's
connected" in project-chip/connectedhomeip#21256.

This can lead to a crash, as described in
project-chip/connectedhomeip#22268 (comment),
if shutdown happens after the operational proxy is connected but before we get
a response to CommissioningComplete.  In that case, we will evict our CASE
session, which will error out the CommissioningComplete command we sent and try
to clean up, but it will select the (now dangling!) mCommissioneeDeviceProxy
instead of correctly selecting mOperationalDeviceProxy, because the
mOperationalDeviceProxy no longer has a session at that point.

The fix is to check for an "initialized" (in the sense that it has a valid peer
node id) mOperationalDeviceProxy instead of checking for a connected one.  This
matches the semantics of the check we used to have before
project-chip/connectedhomeip#21256.

Fixes project-chip/connectedhomeip#22293
* Re-enable TC-RR-1.1 in CI

- A regression had occured on RR-1.1 in master before CI was attempted
  in #22143 which prevented the CI test to be enabled

This PR:

- Fixes TC-RR-1.1
- Enables TC-RR-1.1, TC-SC-3.6 and TC-DA-1.7 to keep them fresh and
  improve integration test coverage (TC-RR-1.1 tests a lot)
- Improve run_python_test.py to do better factory reset

Fixes #21736

Testing done:
- Manually tested the fix of TC-RR-1.1 on ESP32 and Linux
- CI tests of the above is automated

* Attempt to pass CI

* Debug CI

* More debug of CI

* More CI fixes

* Fix more CI
…. (#22324)

The basic issue we could run into is that the Matter stack would shut down
while our async block was still running on our client queue, and by the time
the "delete this object" block was queued on the Matter queue that queue would
be paused.  Then if the stack was restarted the queue would be unpaused, and
the deletion of the ReadClient would happen early in stack startup, when things
were not in a good state yet.

The fix is to make sure we queue the async deletion without going through the
client queue first, and avoid doing the async bits altogether when we can (when
the subscription itself errors out).

Fixes project-chip/connectedhomeip#22320
…pec (#22286)

* Revert "Update Binding cluster requirement in device type to align with the spec (#22119)"

This reverts commit 150d741.

* Update Binding cluster requirement in device type to align with the spec

* Include Binding cluster to all-cluster-app
* Modified automation script:
TC-CC-*
TC-CHANNEL-1.6
TC-DGGEN-1.1
TC-DGTHREAD-1.1
TC-DRLK-1.1
TC-DRLK-2.4
TC-DRLK-2.9
TC-PRS-1.1
TC-PS-1.1
TC-TSTAT-1.1
TC-SWTCH-1.1
TC-WNCV-1.1
TC-WNCV-2.1
TC-WNCV-2.1
TC-WNCV-3.*
Modified Manual tests
TC-IDM-*
TC-ACl-2.5
TC-ACT-2.1
TC-OO-3.1

* Added auto generated files

* Restyled by whitespace

* Modified CC and WNCV script
Added Manual scripts

* Added auto generated files

* Restyled by whitespace

* Modified CC-4.4 and CC-5.3 script

* Added auto generated files

* Modified Zap_template.yaml increased timeout by 5s

* Modified Zap_template.yaml timeout increased by 10s

Co-authored-by: Restyled.io <[email protected]>
* Add more debug log to track CASE failure during commision

* Update src/app/OperationalSessionSetup.cpp

Co-authored-by: Boris Zbarsky <[email protected]>

Co-authored-by: Boris Zbarsky <[email protected]>
* Only do address updates for CASE delivery failures.

When the handling of "failed to send message, so update the IP for this peer"
moved out of DeviceCommissioner, we stopped checking whether the session is a
CASE session.  Go back to checking that again.

Fixes project-chip/connectedhomeip#22326

* Address review comment.
* Bugfix: Group key map validation fixed.

* Group Data Provider: Added missing MaxGroupKeysPerFabric validation.
* Fix documentation for chip-app1 commisioning.

PR #15801 changed the port to 5543, but the documentation was not updated. Just
use "pairing code" to avoid problems like that.

Fixes project-chip/connectedhomeip#22312

* Fix review comments: add missing node id.
* Fix ColorTemperatureMireds naming to follow the spec.

* Add backwards-compat hack for chip-tool.
* Fixed generate_factory_data script
* Replaced not existing CONFIG_CHIP_DEVICE_PAIRING_PASSCODE config
with CONFIG_CHIP_DEVICE_SPAKE2_PASSCODE
msandstedt and others added 2 commits October 12, 2022 10:32
…(#23062)

Nodes that already exist in the DefaultSessionResumptionStorage index
are consuming additional entries in the index on save, and aren't
cleaned from the link and state tables first.  This has the following
consequences:

1. If session resumption storage is full, this causes unnecessary
   eviction of records for other nodes.
2. This pulls the index out of sync from the backing state table
   because duplicate entries in the index for a given node only
   map to a single node-id-keyed entry in the state table.
3. An entry in the link table is leaked on each occurrence, as the
   resumption-id-keyed link entry will be orphaned once its associated
   state table entry is overwritten.

A symptom of this can be seen in the DeleteAll(FabricIndex fabricIndex)
method, which will often log errors due to the index being out of sync
form the state table.

This commit fixes the problem by first deleting the link table entry
before saving a record for a node that already exists in the table.
Save is also simplified in this case by not rewriting the index, as
the node is already in the index.

To prevent future problems, unit test code has been added for
DefaultSessionResumptionStorage to verify that DeleteAll is completing
without errors and that no link or state table entries are leaked.

(cherry picked from commit f6d585a)
Unblock the code for controlling QSPI NOR power state based
on the state of the DFU on the device.

Signed-off-by: Damian Krolik <[email protected]>
@Damian-Nordic Damian-Nordic merged commit 16bcd30 into nrfconnect:v2.1-branch Oct 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment