-
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
Get peer's node ID from session instead of packet header for response handling #9287
Get peer's node ID from session instead of packet header for response handling #9287
Conversation
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.
I think this is part of PR #8726 Would you please help me review that PR, it fixes lots of incorrect usage of packet header like this one. |
dea3bf4
to
9eec07e
Compare
For my own knowledge: how is reporting used today? I am looking through the spec and see reporting mentioned as a transaction for subscriptions, however I also am aware there is a lot of back and forth regarding how subscriptions are implemented. How does reporting work right now, how much is based on spec and what do the tests validate? |
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.
Any chance to add tests beyond end-to-end in darwin?
End to end tests are slower and darwin in particular is limited to only 5 CI runners so it is slower than any linux tests.
I would like to express some concern about darwin-only tests because slow and ideally maybe some way to record what is spec and what is temporary until it better evolves. |
I can describe what reporting does today. Currently some clusters support configuring reports on a specific attribute. When reports are configured the server sends a report of the attributes state out to each "bound" peer. The added Darwin tests are just setting up these reports on the OnOff Cluster and making sure at least one report is sent out.
|
Size increase report for "esp32-example-build" from f4c307f
Full report output
|
This is so different from spec that we didn't even think it was worth enabling it in the Android controller. See #8757 |
… handling (project-chip#9287) * Get peer's node ID from session instead of packet header for response handling * Fix typo
Problem
The reports from peer node are getting dropped when received on the controller.
Change overview
The unicast encrypted messages do not carry node IDs in packet headers. The controller code was using the source node ID to identify which device sent the message. This PR updates it to use session information to identify the device object.
Testing
A new test (
testSendClusterTestCluster_Reporting_0002_ReportOnOff_Test
) has been added to ensure that reports are received and processed on the controller.