You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upon configuring the Forwarding Limitations through the CLI, the NS sends ConfigureFwdLimitReq to the relay. The contents of this MAC command reveal that TTS by default sets the 'unlimited' Reload Rate instead of the specified default values in TS011-1.0.0 section 8.8
Steps to Reproduce
Register a 1.0.4 device
Enable this device to act as a relay: ttn-lw-cli relays create <app-id> <device-id> --mode.serving
Configure one of the Forwarding Limitation rules: ttn-lw-cli relays update <app-id> <device-id> --mode.serving.limits.join-requests.reload-rate 60
Send an uplink from the relay
Observe the MAC output of ConfigureFwdLimitReq
Current Result
The payload of ConfigureFwdLimitReq looks like this:
The translation of this payload is as follows:
ResetLimitCounter: 0
JoinReq bucket: (Rate: 60, Size: 60),
Notify bucket: (Rate: 127, Size: 127),
GlobalUplink bucket: (Rate: 127, Size: 127),
Overall bucket: (Rate: 127, Size: 127),
Expected Result
The NS should set all buckets for which no ReloadRate is configured to the default value as specified in TS011-1.0.0, which in the same format as in 'current result' should look like this:
JoinReq bucket: (Rate: 4, Size: 8),
Notify bucket: (Rate: 4, Size: 8),
GlobalUplink bucket: (Rate: 8, Size: 16),
Overall bucket: (Rate: 8, Size: 16),
Relevant Logs
No response
URL
No response
Deployment
The Things Stack Community Edition
The Things Stack Version
3.32.1
Client Name and Version
The Things Network Command-line Interface: ttn-lw-cli
Version: 3.31.1
Build date: 2024-08-01T15:00:26Z
Git commit: e351ea62e
Go version: go1.21.12
OS/Arch: windows/amd64
Other Information
No response
Proposed Fix
Set the default values as specified in TS011-1.0.0.
Contributing
I can help by doing more research.
I can help by implementing a fix after the proposal above is approved.
I can help by testing the fix before it's released.
As an additional comment, the ResetLimitCounter should not be set to 0 by default. The meaning of 0 is that the token counters are set to 0, effectively muting the relay until the next bucket reload occurs. IMO, this is not a good default value, I would propose setting this to 1 (Set token counter to Reload Rate) or 3 (Do not change token counter).
Upon further investigation, the 'unlimited' values are not even user-configurable. The CLI does not allow setting the ReloadRate to 127 for all Relay buckets nor to 63 for the EndDevice buckets, which are the 'unlimited' values for these buckets. According to 10.4 and 10.7 however, these appear to be accepted values.
Summary
Upon configuring the Forwarding Limitations through the CLI, the NS sends
ConfigureFwdLimitReq
to the relay. The contents of this MAC command reveal that TTS by default sets the 'unlimited' Reload Rate instead of the specified default values in TS011-1.0.0 section 8.8Steps to Reproduce
ttn-lw-cli relays create <app-id> <device-id> --mode.serving
ttn-lw-cli relays update <app-id> <device-id> --mode.serving.limits.join-requests.reload-rate 60
ConfigureFwdLimitReq
Current Result
The payload of
ConfigureFwdLimitReq
looks like this:The translation of this payload is as follows:
ResetLimitCounter: 0
JoinReq bucket: (Rate: 60, Size: 60),
Notify bucket: (Rate: 127, Size: 127),
GlobalUplink bucket: (Rate: 127, Size: 127),
Overall bucket: (Rate: 127, Size: 127),
Expected Result
The NS should set all buckets for which no ReloadRate is configured to the default value as specified in TS011-1.0.0, which in the same format as in 'current result' should look like this:
JoinReq bucket: (Rate: 4, Size: 8),
Notify bucket: (Rate: 4, Size: 8),
GlobalUplink bucket: (Rate: 8, Size: 16),
Overall bucket: (Rate: 8, Size: 16),
Relevant Logs
No response
URL
No response
Deployment
The Things Stack Community Edition
The Things Stack Version
3.32.1
Client Name and Version
Other Information
No response
Proposed Fix
Set the default values as specified in TS011-1.0.0.
Contributing
Validation
Code of Conduct
The text was updated successfully, but these errors were encountered: