Retry confirmed class C downlink on timeout#7731
Merged
Merged
Conversation
db917c9 to
72efec3
Compare
c6de893 to
2d2c6e0
Compare
2d2c6e0 to
b3c1d2e
Compare
halimi
commented
Oct 2, 2025
johanstokking
approved these changes
Oct 3, 2025
Member
johanstokking
left a comment
There was a problem hiding this comment.
Okay this is great stuff. Can you confirm this works well locally after the last commit too?
Contributor
Author
I pushed one more cleanup commit, it was a leftover from the previous implementation. I'm running the tests on this last commit and it looks good until so far. I will update the test results. |
Contributor
Author
|
I've tested it on my local test env and it works as expected. I've updated the test results images. |
johanstokking
approved these changes
Oct 5, 2025
ryaplots
approved these changes
Oct 6, 2025
Contributor
|
template file changes look good |
nicholaspcr
approved these changes
Oct 6, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The NS resends the class C confirmed downlink after the
mac_settings.class_c_timeouttime.When the NS sends a confirmed downlink to a class C device then the device should send an uplink within the
mac_settings.class_c_timeout. If no uplink has arrived within the timeout then the NS sends aNACKto the AS and the AS resends the downlink message again maximum 8 times and after that drops it.Changes
Testing
Steps
Set a short value for the
mac_settings.class_c_timeout(e.g. 30 sec), it should be less than the period how the end device sends the uplinks (e.g. 5 min).Send a confirmed downlink message to a class C device.
ACK.ACKthen the NS should resend the pending downlink.ACKthen the NS shouldn't resend the pending downlink.Send more than one confirmed downlink to a class C device.
Results
I've tested it on my test env and it works as expected.
ACK.ACKthen the NS should resend the pending downlink. (Theclass_c_timeoutwas set to 7 min)ACKthen the NS shouldn't resend the pending downlink. (Theclass_c_timeoutwas set to 7 min)Send more than one confirmed downlink to a class C device.
Regressions
...
Notes for Reviewers
@PavelJankoski @ryaplots The
mjmlnode package has been updated #7720 and now it generates a different file for the email templatesbase.html.tmpl. I had to regenerate the golden files otherwise the go tests are failing. Could you please review the new template file changes?Checklist
README.mdfor the chosen target branch.CHANGELOG.md.CONTRIBUTING.md, there are no fixup commits left.