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
Support multiple LoRa standard channels on device #6526
Comments
@adriansmares, i'm happy to have a go at this if you can give a steer on which direction is preferred |
Hi @adriansmares. Yes we are somewhat affected by #6182. We've explicitly defined And we've updated our system to 3.27.0 about two weeks ago, and figured (from the PR above) that We are mostly using We've found two workarounds so far.
|
So you guys were ahead of your times, sort of, and this issue (#6526) is just a symptom of your real problem (#6527). For pretty much the whole existence of the LoRaWAN specification, the fixed channel plans were, as the name implies, fixed. This means that both the frequencies and the data rate indices were fixed - This is why our desired channel generation loop does not edit the actual data rate indices for the fixed channel plans - it does not make sense to edit them, as they cannot be updated with I am not entirely sure how future RP2/TS01 specifications will change this behavior, but for now pretty much all of the published LoRaWAN versions ban the use of If you would like to get back the old behavior, there are a couple of places which you need to edit back in your fork:
After you have done these two changes, it should be possible to use your old solution (define the standard channels in the normal channel list of the frequency plan). |
@adriansmares indeed we are working outside the fixed band plan intended limits. We don't specifically need the NS to send down |
This is not correct. The channels for an AU915 device are as follows: [
{
"uplink_frequency": "915200000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "915400000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "915600000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "915800000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "916000000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "916200000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "916400000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "916600000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "916800000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "917000000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "917200000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "917400000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "917600000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "917800000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "918000000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "918200000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5,
"enable_uplink": true
},
{
"uplink_frequency": "918400000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "918600000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "918800000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "919000000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "919200000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "919400000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "919600000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "919800000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "920000000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "920200000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "920400000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "920600000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "920800000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "921000000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "921200000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "921400000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "921600000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "921800000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "922000000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "922200000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "922400000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "922600000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "922800000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "923000000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "923200000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "923400000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "923600000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "923800000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "924000000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "924200000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "924400000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "924600000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "924800000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "925000000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "925200000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "925400000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "925600000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "925800000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "926000000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "926200000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "926400000",
"downlink_frequency": "923300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "926600000",
"downlink_frequency": "923900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "926800000",
"downlink_frequency": "924500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "927000000",
"downlink_frequency": "925100000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "927200000",
"downlink_frequency": "925700000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "927400000",
"downlink_frequency": "926300000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "927600000",
"downlink_frequency": "926900000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "927800000",
"downlink_frequency": "927500000",
"max_data_rate_index": 5
},
{
"uplink_frequency": "915900000",
"downlink_frequency": "923300000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "917500000",
"downlink_frequency": "923900000",
"min_data_rate_index": 6,
"max_data_rate_index": 6,
"enable_uplink": true
},
{
"uplink_frequency": "919100000",
"downlink_frequency": "924500000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "920700000",
"downlink_frequency": "925100000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "922300000",
"downlink_frequency": "925700000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "923900000",
"downlink_frequency": "926300000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "925500000",
"downlink_frequency": "926900000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
},
{
"uplink_frequency": "927100000",
"downlink_frequency": "927500000",
"min_data_rate_index": 6,
"max_data_rate_index": 6
}
] Notice that both lorawan-stack/pkg/networkserver/grpc_gsns.go Lines 647 to 651 in 36a7135
Which expands to: lorawan-stack/pkg/networkserver/utils.go Lines 37 to 48 in 36a7135
Notice that the If the data rates are not relevant, I would like to understand what your real problem is when you leave the two standard channels as part of the |
@adriansmares I see. I think the catch is we want use a custom data rate for those channel, i.e. #6527 |
In that case the two proposed changes in #6526 (comment) should suffice - please let me know if that is not the case. |
sounds good, i presume this isnt of any use to other TTS users so we can close this issue. Hopefully this kind of flexibility comes in future LoRaWAN specifications 🙏 |
Summary
Gateways with multiple concentrators (i.e. a 16ch gateway) can listen on more than one LoRa standard channel but this is not supported in the frequency plan definitions
Current Situation
Only a single LoRa standard channel is configurable. A previous work around to specify the extra channels as normal uplink-channels with only a single data rate is no longer supported due to #6182
Why do we need this? Who uses it, and when?
Devices wanting to use more than one sub band for uplinks and wide channels
Proposed Implementation
Change lora-standard-channels to a list and then support added to the stack
Alternatively allow a device to support multiple frequency plans like a gateway (frequency_plan_ids) and set the desired channels to the full set of channels across the plans
Contributing
Code of Conduct
The text was updated successfully, but these errors were encountered: