-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Allow setting up an auto-resubscribe ReadClient with just a peer id. #27941
Allow setting up an auto-resubscribe ReadClient with just a peer id. #27941
Conversation
This delegates all the work of setting up the CASE session, and the attendant retries, to the ReadClient. Fixes project-chip#23983
PR #27941: Size comparison from edbdf8a to e16a239 Increases (29 builds for bl602, bl702, bl702l, cc32xx, cyw30739, efr32, k32w, linux, mbed, nrfconnect, psoc6, qpg)
Decreases (5 builds for cc32xx, psoc6)
Full report (29 builds for bl602, bl702, bl702l, cc32xx, cyw30739, efr32, k32w, linux, mbed, nrfconnect, psoc6, qpg)
|
PR #27941: Size comparison from edbdf8a to c305f09 Increases (58 builds for bl602, bl702, bl702l, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
Decreases (5 builds for cc32xx, psoc6)
Full report (58 builds for bl602, bl702, bl702l, cc32xx, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that possible to write a test case for this? expire the session for subscription, then call this new API to create the session?
I tried to; testing CASESessionManager and anything that uses it is a pain, because it needs to do operational DNS-SD lookups.... I did spend some time this morning on it @yunhanw-google and could not get something sane in place so far; you have to bring up a lot of the stack to test this. I am going to see whether I can write some end-to-end tests once MTRDevice is using this. |
I see, thanks for the reply. |
* Add Basic Resource Monitoring Server Implementation * Add Basic Working Resource Monitoring Example App * Improve log output * Replace some HepafilterMonitoring specifics with more general ResourceMonitoring defines - using `using` - and adding by hand * Apply clang-format * More Hepa to ResourceMonitoring replacement * Add ActivatedCarbonFilterMonitoring Cluster * Rename ActivatedCarbonFilterMonitoring.cpp to ActivatedCarbonFilterMonitoringDelegate.cpp * Split delegate definitions into separate files * Cleanup some Headers * Rename member variables * Refactoring: Rename Delegate to Instance Add cluster-objects.h / cpp instead of defining it inside the server.h / cpp * Refactoring: Implement Read and Write function - have External Attribute Storage inside Instances - implement getters and Setters for Attributes * Refactoring: reorder methods to math the order in the .h file * Run Clang-Format * Add Getter for DegradationDirection Attribute - also clean up some namespaces * Add Construction Option To Set OnResetCondition To Supported Also add basic OnResetCondition implementation. * Add Default Values * Modified the AttributePersistenceProvider ReadValue function signiture to take the required attribute information directly rather than as a EmberAfAttributeMetadata structure. * Force External Storage for All Resource Monitoring Clusters * Force External Storage for All Resource Monitoring Clusters Regenerated Code * Expanded AttributePersistanceProvider API to include reading and wirting of uint8 and nullable uint8 * Add LastChangedTime to Attributes For ResourceMonitoring Clusters * Add LastChangedTime to Attributes For ResourceMonitoring Clusters Regenerated Code * Add `LastChangedTime` to Forced External Storage List For Resource Monitoring * Add LastChangedTime To Resource-Monitoring Server Implementation * Templated the AttributePersistanceProvider read and wiret function to work for all uint types. * Fixed AttributePersistanceProvider accepted types. Added read helper for type bool. * Restyled by clang-format * Formatting and some comments * Make OnResetCondition Pure Virtual And remove implementation from resource-monitor-server.cpp. It's not allowed to use the resource-monitoring-server::instance without deriving it yourself. * Set LastChangedTime In the OnResetCondition Handler * Fixed mismatched size return error of DefaultAttributePersistenceProvider * Add All Missing Aliased Clusters - CeramicFilterMonitoring - ElectrostaticFilterMonitoring - FuelTankMonitoring - InkCartridgeMonitoring - IonizingFilterMonitoring - OzoneFilterMonitoring - TonerCartridgeMonitoring - UvFilterMonitoring - WaterTankMonitoring - ZeoliteFilterMonitoring * Started work on tests for the AttributePersistenceProvider. * Add Missing Instances to resourceMonitoring Test App * Add Persistent Storage To LastChangedTime * Add README.md * Remove `ResourceMonitoringAliasesInstanceMap` as it wasn't really needed * Update Description Of Init() * Update Description of AppInit() and OnResetCondition() * Added unit tests for AttributePersistenceProvider testing the storage and retrival of all unsigned types and their nullable veriaties, bool and ByteSpan. Tested for small buffer errors. * Changed the type of aSize in ReadValue to size_t * Removed the dependancy on generated code in the AttributePersistencezprovider.h * Added static funtctions to get the KVS null representation for different types. * Fix Errors after Merge * Some Changes From Comments From The ModeBase PR * Added functions to read and write nullable bools and accompanying tests. * Incorporated boolean tests in the scalar test. * Added failure before init test * Restyled by clang-format * Move Headers To Resource-Monitoring-Common * Move Cpp files To resource-monitor-common * Remove All Unused Aliases For The Resource-Monitoring-Cluster this was decided in the AirQuality Call on 06.07.2023 * Fixed after merge. * Removed the failure on init test as it may have been causing seg faults in some tests. * Renamed GetNull -> GetNullValueForNullableType * Added the initialisation of valueReadBack and added a new templated function for nullable types to avoid the error: The left operand of '==' is a garbage value, on some platforms. * Added handline of signed ints and accompanying tests. * Added handline of nullable signed ints and accompanying tests. * Type cast null. * Restyled by clang-format * Changed shift bit to be af the same type are the return val. * Added tests got GetNull functions * Remove Aliased Clusters From Resource Monitoring Clusters except Hepa and ActivatedCarbon enable LastChangedTime for Hepa and ActivatedCarbon * Add Resource Monitoring Aliased Clusters Server implementation To Linux All-Clusters-App * Remove Todo * Remove Aliased Clusters From Resource Monitoring Clusters except Hepa and ActivatedCarbon * Remove Redundant Check apparently it's not necessary / allow to check this * Apply Restyled patch * Remove Tests For Removed Aliased Clusters - all except Hepa and ActivatedCarbon * Fix Spelling * Remove Unused / disallowed #include <maps> * Remove resource-monitoring-instances.h * Remove Unneeded Destructors * Use Default Descructor and Make Class Non copyable or moveable * Change IsAliascluster to IsValidAliasCluster * Fix Typo * Reset ChangeIndication Attribute On ResetCondition Command Spec requires this to be reset as well * Set FeatureMap To 3 For testing with Warning Feature enabled * Rename mFeature To mFeatureMap * Rewrite Some Comments From "function" to "method" * Remove Const * Update Comment Of Init() Method added the exact CHIP_ERROR_XXX that this can return. * Remove Commented Code * Added TODO For REP Feature * Change From "Next value" To "UINT8_MAX" * Use ChipLogDetail Instead Of ChipLogError * Fix Log on Some Platforms On some platforms (e.g. ASR) uint32_t seems to be a long and will produce a error if %u is used. So cast it to unsinged long on all platforms and use %lu. * Update README.md For Linux Resource-Monitoring-Example-App * Remove Aliased Clusters From Resource Monitoring Clusters except Hepa and ActivatedCarbon * Regen Code * Apply Restylerd Patch * Update Wordlist - Add HEPA * Remove PICS values For Resource Monitoring Clusters That Were Removed * Remove PICS For Resource Monitoring Clusters from PICS.yaml * Add Resource Monitoring README.md To docs/examples/index.md * TC-IDM-1.2 (project-chip#27024) * TC-IDM-1.2 Adds automation for TC-IDM-1.2 Also Adds suppressResponse to CommandSender as well as a test-only function to test timedResponse flag with no corresponding TimedInvoke action + plumbing through the python layers * Restyled by isort * Updates from review comments * Couple formatting fixes * Cleanup. * Add a port to pase in python, fix filtering * Consolidate CommandSender functions * Timed invoke can be inferred --------- Co-authored-by: Restyled.io <commits@restyled.io> * 【Feature】operational state cluster sdk implementation and example cluster server application (project-chip#26971) * Add operational state cluster implement * Enable operational state cluster server in all-clusters-app.zap * Restyled by clang-format * Restyled by gn * Enable CommandHandlerInterfaceOnlyClusters feature in operational state cluster * Fix the data type no match the operational state cluster xml * Add Uncopyable feature to operational state server class * Fix no define function * Add operational state cluster in other platform * Restyled by clang-format * Restyled by gn * Function / Data Struct in headfile are documented. * Document why operational states to be in storage * document the function note * Add prefix members with m for class OperationalStateServer * Fix Bug: do const_cast no needed * Optimize to returning a const reference * Remove the api no needed to be implemented * use to_underlying to instead static_cast * use reduce_size api to optimize the MutableByteSpan * Fix: memory leak in exceptional situation * Rename the structs for pretty confusing * comment the member * remove the documentation return in functions * Add delete keyword in Uncopyable class * modify the document of functions * modify the document of functions * Fix spelling error in function notes * Fix: memory leak in exceptional situation * Fix: read operational state list or phase list fail in some exception situations * use MakeOptional to optimize the function call * modify the document of functions * Fix: ErrorStateStruct's ErrorStateDetails need to be null/missing * Add the document for function * Optimize ErrorStateStruct's field -- ErrorStateLabel and ErrorStateDetails * document the method signature * document the class * remove temporary variable * Add test cases in TestOperationalStateDataProvider * Remove implementing EnumerateAcceptedCommands in Operational State Cluster * Enable all commands in operational state cluster for all-clusters-app * Zap regen all * Revert file same as master branch * Optimize operational state server's implement * Add operational state delegate implement * Add operational state cluster delegates * Zap regen * Modify path of head file included * add file included in BUILD.gn * Restyled by whitespace * Restyled by clang-format * Restyled by gn * add operational state cluster impl in other platforms * Restyled by gn * Remove log in operational-state-delegate-impl.cpp * remove unuseful file * Update src/app/clusters/operational-state-server/operational-state-delegate.h Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Optimize struct GenericOperationalState * drop the extra chip:: in operational-state api * Optimize struct GenericOperationalError * Optimize to put a struct instance on the state, then call the delegate to fill it in * Use GetOperationalStateAtIndex api to instead GetOperationalStateList api * Optimize struct GenericOperationalPhase * Optimize struct GenericOperationalPhase * Optimize HandleXXStateCallback api param * Remove unuseful code and document * Use constexpr val to instead number * Fix use of totalOperationalTime * enable operational state cluster event in Operatinal State cluster * Add unit test of operational state delegate * Add the rest unit test of operational state delegate * Optimize class OperationalStateDelegate , add two private member * move the constexpr val * fix the err in TestOperationalStateDelegate * Optimize api GenericOperationalError * Add OperationalStateDelegateImpl unit test * add document * change Log event api in operational state cluster * Add document * sync code to examples/placeholder * Restyled by whitespace * Restyled by clang-format * Restyled by gn * replace GetOperationalState with GetCurrentOperationalState * update document * update document * update document * replace GetOperationalError with GenericOperationalError * update document * document the api for GetOperationalStateDelegate in head file * optimize the use of operator [] for Span class * fix the spelling error * provide a way to construct a GenericOperationalState without providing a state * optimize the code of if-else * Optimize code * update document * Optimize class OperationalStateServer: put all the public bits together instead of interleaving them with the private bits. * modify document * Add CurrentPhase and CountdownTime attribute into AttributeAccessInterface-only * zap regen * remove unuseful member in class Delegate * remove useful code * document the api * Add set/get current phase api * Add set/get countdownTime api * delegate could be null, and that should be handled without crashing, via returning an error * command callbacks need to respond with an error * remove something that is not in the spec * optimize the name of class member function * Optimize struct GenericOperationCompletion * update struct GenericOperationCompletion test case * Optimize struct GenericOperationCompletion api * add coutdownTime attribute in operational state cluter * change api of initializing OperationalStateServer instances * remove the code using operational state in other platform * Add operational state server init in linux all-cluster-app * Restyled by whitespace * Restyled by clang-format * Restyled by prettier-json * Add TestOperationalState.yaml * rm TestOperationalStateDelegateImpl.cpp * Restyled by whitespace * Restyled by gn * Restyled by prettier-yaml * remove the api, filing a followup issue to emit the right events * fix CI build error * fix CI build err * Restyled by clang-format * fix build error * Restyled by clang-format * update document * use NullOptional to instead Missing * return CHIP_ERROR_INCORRECT_STATE when delegate is nullptr * optimize reading the operational state list * move the position of testcase * fix ci build err * fix ci build err * Restyled by clang-format * fix readability-else-after-return error * fix Unknown key in CI build * add note in ciTest.json for darwin-framework-tool * update document for api * use Zcl instead NotSpecified in log * fix TestOperationalState error * zap_regen_all * optimize lambda function use * Restyled by clang-format * fix ci error: readability-else-after-return --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Justin Wood <woody@apple.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Add Smoke CO Cluster to All Clusters App (project-chip#27124) * Smoke/CO: Add Cluster to All Clusters App Implement SelfTestRequest in all-clusters-app * Smoke/CO: Update zap Update endOfServiceAlert Add Smoke CO Alarm events * Modify the flash settings of nrf52840dk_nrf52840 * Modify the flash settings of nrf52840dk_nrf52840 * Modify the flash settings of nrf52840dk_nrf52840 * Revert "Modify the flash settings of nrf52840dk_nrf52840" This reverts commit 3ab364b. * Revert "Modify the flash settings of nrf52840dk_nrf52840" This reverts commit 4fc1ff9. * Revert "Modify the flash settings of nrf52840dk_nrf52840" This reverts commit 136efe7. * Disable nrf testing DFU in CI for all-clusters-app * Revert "Disable nrf testing DFU in CI for all-clusters-app" This reverts commit 4a7525b. * Add smco-stub to Open IoT SDK --------- Co-authored-by: Hare <renilr0@outlook.com> * Remove redundant chip::app:: prefixes * Use Bitset Instead Of Just a Number For FeatureMap * Remove Options from CHIPProjectAppConfig.h not needed or wrong * Remove network commissioning bits As of earlier today that's handled by AppInit. Which is good, because the bits here are buggy. * Make Hepa And ActivateCarbon Filter Monitoring Instances Static * Remove ClusterId From Specialized Hepa and Activated Carbon Construtors They should know their cluster ids, and now they do! * Add Getter for Endpoint * Remove Nonsense Comment * Remove Aliased Cluster IDs That Got Removed * Fix Typo * Simplify HandleResetCondition Method * [SMCO] Update XML to spec changes (project-chip#27606) * [SMCO] Update XML to spec changes * [SMCO] Regen zap --------- Co-authored-by: Hare <renilr0@outlook.com> * Update Smoke CO Alarm Implementation (project-chip#27566) * Smoke/CO: Add ExpiryDate * Smoke/CO: Add emberAfHandleEventTrigger * Smoke/CO: Update the handling of attribute changes Unmute when critical alarm is triggered * Smoke/CO: Update the handling of DeviceMuted Cannot mute when critical alarms exist * Smoke/CO: Update zap * Smoke/CO: Update README.md Add building options description * Smoke/CO: Update zap fix UnitTesting cluster * Revert "Smoke/CO: Update zap" This reverts commit 4607dab. * Revert "Smoke/CO: Update zap" This reverts commit 7534419. * Add Unit Testing * Smoke/CO: Update zap Sync Silab changes * Smoke/CO: Add ExpressedState priority * Smoke/CO: Update endOfServiceAlert of zap * [SMCO] Add mExpressedStatePriority * [SMCO] Add timer for test * Separate Warning and Critical Triggered Event --------- Co-authored-by: Hare <renilr0@outlook.com> * [ota-requestor] Added update cancelling in case of apply failure (project-chip#27591) The Ota Requestor's Apply API returns CHIP_ERROR, however it is not handled by the DefaultOTARequestorDriver. Added cancelling update in case of Apply failure to reset the OTA Requestor state and prevent stucking in kApplying state. * Zap regen all (project-chip#27939) Co-authored-by: Andrei Litvin <andreilitvin@google.com> * Workaround Fan PercentSetting floating point precision error after "ceil()" (project-chip#27912) * Workaround Fan Percent Setting floating point err Workaround floating point precision error which will cause invalid value after ceil() For example, the current value: speedMax: 10 percent: 70 speedMax * (percent * 0.01) = 7.000000000000001 (floating point precision error) ceil(speedMax * (percent * 0.01)) = 8 => The error propagate to ceil and cause the final result error. * Restyled by clang-format * Workaround Fan PercentSetting float error (2nd) Use integer multiply & devide to workaround floating point precision error which causes incorrect Fan PercentSetting value after ceil calculation. * Update src/app/clusters/fan-control-server/fan-control-server.cpp Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * [ReadHandler] Report Scheduler class (project-chip#27553) * Added a new class that will handle the scheduling of reports. * Restyled by clang-format * Removed un-necessary define in TestReportScheduler and applied refactor of SetReportingIntervals to SetMaxReportingIntervals to platform code * Added TimerDelegate and wrapper functions around calls to Timer. Remove unnecessary checks for nullptr * Added VerifyOrReturn after NL_TEST_ASSERTS for nullptr * Completed TimerDelegate class and modified ReadHandlerNodes so they carry their own callback * Modified TimerDelegate to allow to pass different objects as context * ifdefing out ScheduleRun() to debug failing CI * Added issue # to TODOs, refactored Min/Max Intervals to Min/Max Timestamp * Clarified some comments regarding timing * Restyled by whitespace * Restyled by clang-format * Added interface to GetMonotonicTimestamp in the timer delegate * Apply suggestions from code review Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Completed renaming to eliminate compiling error, moved TestReporScehduler in reporting namespace, addressed some low hanging fruits * Removed useless objects from tests as well as useless typecasting, and unnecessary check * Fixed comment about private methods used in ReportScheduler as a friend class * Changed to SetMinReportInterval to SetMinReportingIntervalForTests, removed the IsChunkedReport from comment about friend class, added a mock timestamp and timer to test to better control time in simulation for specific timing test cases * Apply suggestions from code review Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Restyled by clang-format * Removed all calls to ReadHandler States to prevent Engine calls from the Test as it seems to impact the CI --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * [wifi] combine ipv4 and ipv6 event so that dns server will start only when ipv6 is ready (project-chip#27884) * [Ameba] Route hook voidptr (project-chip#27882) * [routehook] fix void ptr dereference * restyle * Change endpointId type to int to align with other override functions (project-chip#27922) * Remove dead-code init callbacks from some clusters. (project-chip#27936) Init callbacks are only called for clusters listed in ClustersWithInitFunctions. "Basic" was not the right name for "Basic Information", so that one was effectively not listed, and neither "Refrigerator Alarm" nor "Group Key Management" were listed. * [Python] unrestrict vendor id (project-chip#27911) * Change the names of cluster-objects function arguments. (project-chip#27945) Using "tag" as a function argument leads to compile failure when a struct with a field named "Tag" (which becomes a member named "tag") is added to the spec. Change to aTag (and aWriter) to avoid the name collision. This does not change either API or ABI for consumers; just the naming of the argument inside the function. * Make FindOrEstablishSession inside CASE callbacks work. (project-chip#27942) The following sequence of events: 1. Someone calls FindOrEstablishSession. 2. When the session establishment fails, OperationalSessionSetup dispatches the relevant notifications. 3. One of those notification handlers tries to FindOrEstablishSession to the same peer. failed, because FindOrEstablishSession would pick up the existing OperationalSessionSetup and add the new callbacks to it... but the existing OperationalSessionSetup was already in callback notification, so would just ignore the new callbacks. So the new FindOrEstablishSession call would never complete and would never try any actual session establishment. The fix is to destroy the OperationalSessionSetup before notifying its callbacks, so a FindOrEstablishSession from one of the callbacks ends up creating a new OperationalSessionSetup as needed. * Allow setting up an auto-resubscribe ReadClient with just a peer id. (project-chip#27941) * Allow setting up an auto-resubscribe ReadClient with just a peer id. This delegates all the work of setting up the CASE session, and the attendant retries, to the ReadClient. Fixes project-chip#23983 * Address review comment. * update ci to 0.7.25 (project-chip#27585) * update ci to 0.7.25 * change some container versions to fix ci error * Add Copyright * Sort out Includes Add what is needed using "include what you use" tool * Make Methods To Private and move private section to bottom instead of in between * Initialize All The Member Varaibles With Initializer List also updated the comment with the new parameters * Explicit Delete Move Constructors * Make More Methods To Private * Update Comment For OnResetCondition Command Handler * Add FeatureMap To Zcl*.json Files * [Ameba] [wifi] fix ssid and password length after getting from nvs (project-chip#27883) * [wifi] fix ssid and password length after getting from nvs * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io> * [Python] SetupPayload export version property. (project-chip#27959) * Moving us to github container registry (project-chip#27879) Co-authored-by: Restyled.io <commits@restyled.io> * Add a "country-code" argument to darwin-framework-tool pairing commands. (project-chip#27951) * [matter_yamltests] Add timeout argument supports for the chip-tool/python yaml runner (project-chip#27934) * [Python] Modify rotatingId to a hexadecimal string (project-chip#27933) * Allow use of already commissioned device in TC_DeviceBasicComposition (project-chip#27919) Testcase adjusted to allow commissioned device in test instead of PASE based device * [Bouffalolab] Add build option to enable rotating device id (project-chip#27906) * add option to enable rotating device id * add more files for mbedtls for bl702 * fix restyle and test data * [ICD]Post the MsgSentEvent on retransmits also (project-chip#27968) * Post the MsgSentEvent on retransmits also * Add a comment explaining why we set ExpectedResponse to false * Fixing the .zap files for contradicting device type data (project-chip#27962) * Fixing the .zap files for contradicting device type data Github: ZAP#862 * Minor cleanup Github: ZAP#862 * Fixing script typos (project-chip#27971) * [Telink] Add Smoke Sensor app demo (project-chip#27609) * [Telink]: Added draft smoke sensor Added draft smoke sensor app for telink platform Signed-off-by: dmytro.k <ur6lal@gmail.com> * [Telink]: Added draft smoke sensor Added draft smoke sensor app for telink platform Signed-off-by: dmytro.k <ur6lal@gmail.com> * [Telink]: Added draft smoke sensor Added smoke sensor app for telink platform Signed-off-by: dmytro.k <ur6lal@gmail.com> * [Teilnk] format fix * [Telink]: Added smoke sensor Added smoke sensor app for telink platform Signed-off-by: dmytro.k <ur6lal@gmail.com> * [Telink] remove spaces * Restyled by whitespace * Restyled by clang-format * Restyled by prettier-markdown * code style fix * reviewer feedback fix --------- Signed-off-by: dmytro.k <ur6lal@gmail.com> Co-authored-by: dmytro.k <ur6lal@gmail.com> Co-authored-by: Restyled.io <commits@restyled.io> * Do not allow zero size array in test (project-chip#27973) * Modifed test july 14 (project-chip#27960) * Semi-Automated ---> Automated TC-ACL-2.2 TC-APPLAUNCHER-3.8 TC-APPLAUNCHER-3.9 TC-SC-5.1 TC-SC-5.2 Semi-Automated test TC-BINFO-2.2 * Auto generated files * Modified endpoint variable to readable format * Update Smoke CO Alarm Implementation (project-chip#27955) * Add event field to Smoke CO Alarm implementation * Fix INVALID_COMMAND * Simplify the switch-case --------- Co-authored-by: Hare <renilr0@outlook.com> * [Linux] DnssdImpl: rework avahi implementation (project-chip#26397) * InetInterface: add IsLoopback() to InterfaceIterator and InterfaceAddressIterator Required for improving dns-sd avahi based implementation * [Linux] DnssdImpl: rework avahi implementation This commit fixes two problems with the previous avahi based dns-sd implementation: - Publishing more than one service at the same time did not work. This needs to be possible e.g. when a node is commissioned into multiple fabrics. The previous implementation falsely assumed that additional services can be added to already committed (=published) AvahiEntryGroup, which is not the case. An AvahiEntryGroup can only publish multiple services ALL AT ONCE. The new implementation creates a new AvahiEntryGroup per service, on demand. - The previous implementation took ownership of the platform-global default hostname, (by overwriting it). This is not a good idea because the default hostname is usually of relevance for other non-matter services on a given Linux platform. The new implementation establishes the matter-mandated MAC-derived hostname separately and explicitly adds interface addresses. * DnssdImpl.cpp: avoid shadowing local vars to prevent warning/error * DnssdImpl.cpp: make work without INET_CONFIG_ENABLE_IPV4 * DnssdImpl.cpp: fix missing error variable assignment in SuccessOrExit() (found by code-lints) * Apply restyled Patch * Remove ResetCondtion::Type And Encode they are only needed for sending the command, it does not send the command. * Remove While Loop's Body is a very complicated no-op. Keep the while itself, it basically check if this is not malformed TLV * Reclassify excessive logging in LevelControl and OnOffServer from Progress to Detail (project-chip#27938) * [OPSTATE] Fix: change in type for OperationalState attribute (project-chip#27958) * OperationalState attribute simply to Enum * temporary remove some test step in TestOperationalState * zap regen all * modify the code related of the OperationalState attribute type * update OperationalState type to Enum in TestOperationalState.yaml * Restyled by clang-format * modify the api of GetCurrentOperationalState in class Delegate * modify the api of SetOperationalState in class Delegate * optimize the Operational State cluster definition * zap regen all * Restyled by clang-format * modify the note for RVC Operational State cluster definition --------- Co-authored-by: Restyled.io <commits@restyled.io> * Add a "country-code" argument to chip-tool pairing commands. (project-chip#27948) * Move cloudbuild to github images since 0.7.25 vscode image does not exist (project-chip#27992) * Bump third_party/openthread/repo from `8bc2504` to `f7690fe` (project-chip#27984) Bumps [third_party/openthread/repo](https://github.com/openthread/openthread) from `8bc2504` to `f7690fe`. - [Release notes](https://github.com/openthread/openthread/releases) - [Commits](openthread/openthread@8bc2504...f7690fe) --- updated-dependencies: - dependency-name: third_party/openthread/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump third_party/mbedtls/repo from `b18d45f` to `4e73afe` (project-chip#27983) Bumps [third_party/mbedtls/repo](https://github.com/ARMmbed/mbedtls) from `b18d45f` to `4e73afe`. - [Release notes](https://github.com/ARMmbed/mbedtls/releases) - [Commits](Mbed-TLS/mbedtls@b18d45f...4e73afe) --- updated-dependencies: - dependency-name: third_party/mbedtls/repo dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Move OnResetCondition Handling to Cluster Implementation - add PreResetCondition and PostResetCondition() methods to be overwritten fixes project-chip#27986 * Apply Restyled Patch * Fix Typo * Update cloudbuild image to 1 from 0.8 (project-chip#27994) * TC-TIMESYNC-3.1: python automation (project-chip#27925) Using python because it's the easiest way to do wildcard and iterate over all the endpoints Also changing other tests to force EP0 * update time sync TC_TIMESYNC_2_7 and TC_TIMESYNC_2_8 (project-chip#27545) * include missed set time zone * expect null when DST expires, missed offset sign, removed unused variables * Remove gdbgui requirement for esp32 (project-chip#28007) * Remove gdbgui requirement for esp32 * Fix qemu * Fix chef as well * Added check for board control before including header/function calls (project-chip#28008) * Bump pip-tools to 7.0.0 (project-chip#28009) * Enforce length constraint for CountryCode in SetRegulatoryConfig. (project-chip#27949) We were not checking the length (which must be 2), so would allow 1-char or 0-char values. Also aligns the exact logic with the Location attribute write code and adds some error logging. * [matter_yamltests] Be stricter about the response key for command targetting group and disallow the use of the endpoint key (project-chip#27989) Co-authored-by: Andrei Litvin <andy314@gmail.com> * [ICD]Add needed elements to the ICD Manager to handle LIT mode (project-chip#27916) * Add needed elements to the ICD Manager to handle LIT mode * separate IcdMonitorinTable in its own sourceset to fix build issues on examples that have the ICD cluster but not not enable chip_enable_icd_server * address comments. Don't force Slow Polling interval in SIT to 15s to respect the current SHOULD conformance * fix test build * Make the Darwin compat story for struct/event renames better (project-chip#28012) * Refactor struct/event codegen in Darwin a bit. This makes the cluster and struct/event names into inline partial parameters. This changeset has been tested to not modify the generated code at all. * Make our renamed struct/event codegen more backwards compatible. When we just moved all the members to the super-class, it left the subclass in a situation where none of its properties are available in the release where the subclass itself is available. This change restores those properties on the subclasses. The @dynamic in implementations is needed to avoid compiler errors. * Remove Init For Resource Monitoring Clusters From main-common.cpp And put it in resource-monitoring-helper.cpp. This will use the ClusterInitCallbacks to initialize the instance objects. This removes the need to have the init code in every example app, just include the helper.cpp file. * Apply Restyled Patch --------- Signed-off-by: dmytro.k <ur6lal@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Graf Tobias <4622393+tobiasgraf@users.noreply.github.com> Co-authored-by: William Hicklin <william.hicklin@dyson.com> Co-authored-by: William <hicklin@users.noreply.github.com> Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: C Freeman <cecille@google.com> Co-authored-by: mideayanghui <106149377+mideayanghui@users.noreply.github.com> Co-authored-by: Justin Wood <woody@apple.com> Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> Co-authored-by: EricZijian_Siter <ericzijian1994@gmail.com> Co-authored-by: Hare <renilr0@outlook.com> Co-authored-by: Kamil Kasperczyk <66371704+kkasperczyk-no@users.noreply.github.com> Co-authored-by: Andrei Litvin <andy314@gmail.com> Co-authored-by: Andrei Litvin <andreilitvin@google.com> Co-authored-by: Erwin Pan <erwinpan1@gmail.com> Co-authored-by: lpbeliveau-silabs <112982107+lpbeliveau-silabs@users.noreply.github.com> Co-authored-by: pankore <86098180+pankore@users.noreply.github.com> Co-authored-by: Yufeng Wang <yufengwang@google.com> Co-authored-by: tianfeng-yang <130436698+tianfeng-yang@users.noreply.github.com> Co-authored-by: Vivien Nicolas <vnicolas@apple.com> Co-authored-by: Timothy Maes <timothy.maes@qorvo.com> Co-authored-by: wyhong <30567533+wy-hh@users.noreply.github.com> Co-authored-by: Junior Martinez <67972863+jmartinez-silabs@users.noreply.github.com> Co-authored-by: Bharat Raju <brdandu@silabs.com> Co-authored-by: Alex Tsitsiura <s07641069@gmail.com> Co-authored-by: dmytro.k <ur6lal@gmail.com> Co-authored-by: manjunath-grl <102359958+manjunath-grl@users.noreply.github.com> Co-authored-by: Lukas Zeller <luz@plan44.ch> Co-authored-by: milanr-q <114670456+milanr-q@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: fesseha-eve <88329315+fessehaeve@users.noreply.github.com> Co-authored-by: CuRahman <111998767+CuRahman@users.noreply.github.com> Co-authored-by: Anthony DiGirolamo <tonymd@google.com>
…roject-chip#27941) * Allow setting up an auto-resubscribe ReadClient with just a peer id. This delegates all the work of setting up the CASE session, and the attendant retries, to the ReadClient. Fixes project-chip#23983 * Address review comment.
This delegates all the work of setting up the CASE session, and the attendant retries, to the ReadClient.
Fixes #23983
Testing: I did manual testing using a hacked-up version of chip-tool that ensured we had no existing session before calling the new API, and made sure that CASE got established and that if the server was not available at that point we did the normal auto-resubscribe retries of CASE until it did become available.