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

merge from master #45

Merged
merged 124 commits into from
Jan 21, 2022
Merged

merge from master #45

merged 124 commits into from
Jan 21, 2022

Conversation

hnnajh
Copy link
Owner

@hnnajh hnnajh commented Jan 21, 2022

Problem

What is being fixed? Examples:

Change overview

What's in this PR

Testing

How was this tested? (at least one bullet point required)

  • If unit tests were added, how do they cover this issue?
  • If unit tests existed, how were they fixed/modified to prevent this in future?
  • If new unit tests are not added, why not?
  • If integration tests were added, how do they verify this change?
  • If new integration tests are not added, why not?
  • If manually tested, what platforms controller and device platforms were manually tested, and how?
  • If no testing is required, why not?

andy31415 and others added 30 commits January 13, 2022 14:51
* Add trace events to CASE and PASE Sessions

* Add get trace script python deps to BUILD.gn

* Replace pw_trace macro to proper ones

* Add trace header to isolate the dependency to pw_trace

* Restyle with gn and clang-format
…#13432)

Otherwise we can end up reading random values from un-initialized
memory (e.g. if a mandatory command/struct/event field is not sent by
the other side).

Fixes #10271
General:
* Add ota-upgrade AnnounceOTAProvider handling to lighting-app .zap

QPG:
* Add OTA upgrade to QPG platform and lighting-app
* Enable DNS client to resolve OTA provider

Restyled by whitespace
Restyled by clang-format
Restyled by gn

* Update to latest API for OTARequestor
Re-use more of the generated code (Encode/Decode) from
cluster-objects.cpp (and .h).

Progress toward issue #13470
Matter does not use a separate manufacturer code.
…#13557)

Fixes #13556

Tested locally on an Android device on the reported code path without a crash.
* Fixed up Session ID logging

This fixes the session ID logging in SessionManager to be more aligned
with spec terminology as well as logging both local and peer session IDs
to make debugging a lot easier.

* Update src/transport/SessionManager.cpp

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* Update src/transport/SessionManager.cpp

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>

* Update src/transport/SessionManager.cpp

Co-authored-by: Martin Turon <[email protected]>

* Update src/transport/SessionManager.cpp

Co-authored-by: Martin Turon <[email protected]>

Co-authored-by: Tennessee Carmel-Veilleux <[email protected]>
Co-authored-by: Martin Turon <[email protected]>
* Update Dockerfile

Add OTAR to all-clusters-app and lighting-app
Fix build pigweed-app

* Update version

Revise build script for otar
Removed applyupdate command from ota-requestor-app as
ota-announce automatically apply the updates once trasnfer completes.
Minor readme changes.
Get the subject descriptor (from the exchange context session handle)
in the command handler so an access control check can be performed
before executing a command.

Unit tests did not always provide an exchange context for tests of
command interaction.

This required some special handling for test cases in actual
command handling code, and blocked cases (e.g. access control)
which require an exchange context.

So provide an exchange context even in test cases.
* Update docker images to 0.5.47

* Update image version to latest: 0.5.48

Co-authored-by: Andrei Litvin <[email protected]>
…13338)

* Some level control lighting behaviours were disable by ember and zll unused defines. Add runtime attribute metadata checks to validate that the need attributes exist for that code. Replace the #ifdef gates to compiled that code by default but still allow toggling it off by defining the right IGNORE_LEVEL_CONTROL_XXX defines

Fix min and max Level usage and consideing the attributes and featuremap. add behaviour tied with lighting

Enable Feature map for level control and update cluster revision

* regen

* enable test lvl control cluster revision and featuremap and update values

* regen

* Fix build for other platforms. Fix test LVL min max level changes with level controll ligthing feature

Set max Level to 254 for all

Set CurrentLevel And StatUpCurrentLevel to NVM storage to support Start up current level behaviour

Change current level and Start up current level to NVM storage for the startup functionnality. Update yaml lvl control test support lighting device using a minimum level of 1 instead of 0

add level control effect on off commmands

* rebase regen

* Use move to handler as precondition level setter as it doesn't depend of the current level

Address PR comments

* Fix conflicts after rebase and use new  nonVolatile method instead of tokenized

* regen & restyle

rebase and regen, fix conflicts and error

* Init persistance storage before InitDatamodel to allow attribute nvm storage in init callbacks. Rework Levelcontrol StartupCurrentLevel. Workaround zap can't generate default value to null. Use 255 for StartupCurrentLevel

* Rebase and regen to fix conflicts. LVL tests changed recently but do not match those new feature from this PR. Fix that

* Rebase and fix conflicts, add some wait time to a test that sometimes get delayed in Darwin test and reads the value too soon

* Update src/app/clusters/level-control/level-control.cpp

Co-authored-by: Marc Lepage <[email protected]>

* Fix Cirque test due to lvl ctrl changes

Co-authored-by: Marc Lepage <[email protected]>
…bled. (#13544)

* Start building a 'matter IDL' generator.

I would like to see what data is being generated WITHOUT trying
to parse code. This would make it easier on code reviews
and generally understanding what xml + zap actually mean.

* Some initial example: can generate clusters and attributes and a lot of  data types

* make fabric scoped by show up

* Add listing of commands

* make commands take arguments

* Only add cluster enums to the IDL

* Ran zap-all generate to get a lot of matter IDL files

* Support full command request/response and start describing endpoints

* Much better  display: only used structs and group by cluster and global as well

* regen all and this time the content seems smaller and focused

* Update FIXME to actual doc ... fixme was  done

* ZAP regen all again

* Restyle fixes

* Split longer line ifs onto separate lines

* Code review noticed readonly and readwrite were switched. Fix that

* Add support for flagging list attributes with []

* Add detection of array types, optionallity and nullability in struct items

* Optionality, nullability and list in request/response structs

* regen all

* Propper support for events, fix namings for structs

* Add indices to request and response parameters. Do not  include empty requests (they serve no purpose)

* re-ran zap, made some  things non-reportable
- SessionManager has symetrical processing steps for
  group and unsecured message, but some side-effects of
  unicast secure sessions are delegated to SecureMessageCodec
  that should actually just be encrypt/decrypt logic.
- This is needed to assist in having a single point of tracing
  for incoming/outgoing messages (upcoming PR). Current organization
  requires putting that logic in several modules due to the
  side-effects occuring at the wrong layer.

Done by this PR:
- Hoists those side effects (e.g. updating counter) up from
  SecureMessageCodec where they do not belong, into SessionManager.
- Fix documentation and argument names of SecureMessageCodec that
  had rotted over many refactors and terminological changes.
- Add a bit of processing symmetry in SessionManager

Testing done: unit tests pass, integration tests pass
Matter manufacturer codes go directly inside ids.
* A first version of regen all which renames matter IDLs to sit along with source zap file

* Re-generate zap (which moves Clusters.matter to stay with zap files)
mkardous-silabs and others added 29 commits January 20, 2022 17:05
* Add ids/Events.h

* Update generated code
* Add workflow for doing fuzzing builds.

Summary of changes:

1) examples/all-clusters-app/all-clusters-common/BUILD.gn: Makes
all-clusters-app compile when compiled on its own, without any client
apps (like chip-tool) as part of the same build.  It used to be
sneaking in a use_default_client_callbacks from someone else's
configuration, as best I can tell.

2) build/config/compiler/BUILD.gn: Add a define in the fuzzer config
so we can compile slightly different main() code.

3) examples/all-clusters-app/linux/main.cpp: Add a fuzzer hook that
tries to process the fuzzer-provided data as a message.

4) scripts/build: Add support for a "libfuzzer" variant.

* Addressing review comments.

* Add clean shutdown when the fuzzer decides to stop.
* Add tracing instructions in ESP32 README.md

* Restyled by gn

* Restyled by prettier-markdown

* Add "tokenized" to wordlist.txt

* Change in src/trace/BUILD.gn file for PW_TRACE_BACKEND_SET flag

Co-authored-by: Restyled.io <[email protected]>
The SetupPayload (Onboarding Payload in spec terminology) should be
fully self describing, but isn't because it does not record whether the
discriminator is the short or long version.

This commit makes the necessary additions to expose that information.
This improvement is then used to simplify the code in SetUpCodePairer,
which was passing around its own isShort bool.  Instead, it now just
uses the SetupPayload struct in all interfaces.
…3699)

* Expose array size limit in IDL where size limit seems intentional

* Only use sizes for strings and place it together with the data type

* Remove if_valid_list_size usage

* ZAP regen

* Fix removal of list sizes - had an extra maxLength remaining, now removed

* Add unless check in structure member for string size. Not that no output diff

* Add size info for attribute string types as well
…e OTA Requestor (#13718)

* Correct the info for the OTA devices

* Add clean-up steps and example for the OTA reference apps on Linux

* Add steps for buildind the bootable image

* Restyled by prettier-markdown

* Fix typos

* Restyled by prettier-markdown

* Add gbl file extension

* Add extra step description

* Restyled by prettier-markdown

Co-authored-by: Restyled.io <[email protected]>
… restart OTA Requestor once ApplyUpdate is successful (#13620)

* [ESP32] CLI option to set delayedActionTime in OTA Provider app

Also, modify Linux OTA Provider help for delayedActionTime cli option

* [ESP32] Schedule the restart once OTA image apply is successful

Also, Apply suggestion from #13484 in lighting-app

* Review comments

* Fix a small typo

* Apply suggestions from code review

Co-authored-by: Carol Yang <[email protected]>

Co-authored-by: Carol Yang <[email protected]>
This commit failed to update Ota.cpp, resulting in a breakage for
builds that include the OTA shell:

commit d0d6dda
Date:   Thu Jan 20 05:37:01 2022 -0800

    [OTA] Implement event support for OTA Requestor cluster (#13727)

This commit fixes the issue by adding the now necessary version argument
to the NotifyImageHandler shell command.

Fixes #13803
)

* [nrfconnect] Add description of the OTA testing procedure

Signed-off-by: Damian Krolik <[email protected]>

* Restyled by prettier-markdown

* Apply review comments

* More review comments

* Restyled by prettier-markdown

* Silence mispell check

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

SetUpCodePairer was filtering devices by discriminator, but not
checking for a nonzero CM value, so could end up trying to commission
a device that's not commissionable and miss a device with a colliding
discriminator that is.
* Implement Localization Time Format cluster server support

* Run codegen

* Update src/app/clusters/time-format-localization-server/time-format-localization-server.cpp

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

Co-authored-by: Boris Zbarsky <[email protected]>
…tests) (#13725)

* A IDL parser:

Can parse current IDL format (but that may change).
Has working unit tests.

* one more test

* minor comment

* make the structs a bit more compact: easier to read

* one more tests

* more tests, fixed one bug

* Add unit test for cluster commands

* Unit test for cluster enums

* Unit test for cluster events

* Rename "structure_member" to field since that seems easier to type and is a good term

* Match the newest attribute format for IDLs

* Allow test_parsing to be run stand alone and hope that this fix also fixes mac

* Rename "parser" to a more specific name: the name parser is used in python and is too generic to attempt a top level import on it

* Restyle fixes

* Add support for global tag parsing after idl updated in master

* Add support for datatype sizes and unit tests

* Add test for sized strings in structs as well

* Ran restyler
…ration manager and attribute access override (#13633)

* Implement ActiveLocale using NVM attribute storage instead of configuration manager and attribute access override

* Run codegen
* Add plumbing for timeouts / add to commissioning

This lets us set a custom timeout for specific command like network
enable, where it is reasonable for them to take more than 12 seconds
on certain platforms.

* zapt file change.

* zap generated.

ZAP - Y U make so many copies of the same code?

* Invoke command plumbing for timeout

I don't see this actually being used. Where does InvokeCommand get
called from? Anyway, here's some plumbing. May as well save it.

* Address review comments

* Remove non-default timeout on test.

* Add todo to remove the timeout setter

* Add comment about timeouts.

* Update src/controller/AutoCommissioner.cpp

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

* Update src/controller/AutoCommissioner.cpp

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

Co-authored-by: Boris Zbarsky <[email protected]>
* Added ondone logic for group command

* generated files

* generation correction

* block time invoke when group command

* Removed error

* break out SendGroupCommandRequest

* Apply suggestions from code review

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

* review comments

* Apply suggestions from code review

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

Co-authored-by: Boris Zbarsky <[email protected]>
* Add new Simulated Test.

* Generated code.
* Restore configurability of abnormal termination

#### Problem

`CodeUtils.h` builds on `nlassert.h` and contains definitions documented
as configuring it, but due to an early bulk rename they don't actually
apply.

#### Change overview

- Rename `CHIP_ASSERT_ABORT` and `CHIP_ASSERT_LOG` back to the original
  `NL_` forms so that they affect `nlassert.h`.

- Rename `ChipDie()` to `CHIP_CONFIG_ABORT()` to avoid confusion with
  `chipDie()`. This was defined in most `CHIPPlatformConfig.h` files
  but never actually referenced; now, use it as the lowest-level
  abnormal termination operation.

- Replace direct calls to `abort()` with suitable CodeUtils calls.

#### Testing

CI, plus local verification (chip-tool+m5stack) with an alternate
`CHIP_CONFIG_ABORT()`.

* restyle

* split chipDie to reduce size while preserving current logging
* Enable cient side clusters.

* Generated Code.
@hnnajh hnnajh merged commit caa9201 into hnnajh:master Jan 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.