Skip to content

Remove group packet filtering by replacing sli_zigbee_am_multicast_member #112

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

Merged
merged 9 commits into from
Apr 9, 2025

Conversation

puddly
Copy link
Collaborator

@puddly puddly commented Apr 7, 2025

Instead of using a packet filter callback, replace the EmberZNet-internal sli_zigbee_am_multicast_member function with a no-op. This prevents the stack from filtering out the packets we are interested in and is a much lighter-weight approach compared to using a packet filter callback to inject ephemeral entries into the group table. The downside here is API stability but this will be visible when upgrading the SDK.


For background, Zigbee has three ways for messages to be sent: unicast (device-to-device), broadcast (device-to-everything), and multicast (device-to-group). Group messages are used by some IKEA devices and remotes to be able to control light bulbs directly from sensors, without using a coordinator in the mesh. The SDK unfortunately requires you to explicitly register a group ID to un-ignore the group, which is not really possible when there are 2^16 of them. This PR bypasses the SDK function responsible for filtering out these messages.

@puddly
Copy link
Collaborator Author

puddly commented Apr 7, 2025

Firmware builds for those interested in trying them out:

Unzip the ZIP files first. For SkyConnect/ZBT-1 users, upload the GBL file with the web flasher: https://connectzbt1.home-assistant.io/firmware-update/

@puddly puddly merged commit 26e2982 into NabuCasa:stable Apr 9, 2025
12 checks passed
puddly added a commit to puddly/silabs-firmware-builder that referenced this pull request Apr 9, 2025
…ember` (NabuCasa#112)

* Revert "Disable "member of all groups" feature"

This reverts commit 0cd1723.

* Fix packet handoff group handling

* Bump patch number to 2

* Cycle through the multicast table instead of using the first entry

* Provide an interface for GCC linker `wrap`

* Replace the stack function directly

* Remove unused config

* Only replace `wrapped_stack_functions` if it is present in the manifest

* Update changelog
puddly added a commit that referenced this pull request Apr 10, 2025
* Revert "Gecko SDK 4.4.6 (#89)" for stable (#107)

* Revert "Gecko SDK 4.4.6 (#89)"

This reverts commit 18a0155.

* Update OpenThread RCP firmware README

* Bump the firmware patch number to 7.4.4.1 (#108)

* Remove group packet filtering by replacing `sli_zigbee_am_multicast_member` (#112)

* Revert "Disable "member of all groups" feature"

This reverts commit 0cd1723.

* Fix packet handoff group handling

* Bump patch number to 2

* Cycle through the multicast table instead of using the first entry

* Provide an interface for GCC linker `wrap`

* Replace the stack function directly

* Remove unused config

* Only replace `wrapped_stack_functions` if it is present in the manifest

* Update changelog

* Reapply "Gecko SDK 4.4.6 (#89)" for stable (#107)

This reverts commit 420fa6b.

* Drop patch number override
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.

1 participant