My question is based on the above lorasever version. And please forgive my poor English…
I found that each NS (loraserver) has a default channel plan depending on configured region band, Extra Channel and EnabledChannel in configuration file, which means it’s impossible to link NSs with different region channel plan to the same AS, because the load balance strategy may choose a random NS to handle uplink pakcet.Yet we can filter packet using gateway macs which links to the NS.
The channelMask in LinkADRReq is generated according to the difference between device session’s EnableUplinks and the channel plan of NS. And now I can update NS Enabled channels and restart it to trigger a LinkADRReq.Yet the channelmask can be applied when calcaulating diffrence.
But how to sync device channel using channelmask? An applicaiton in lora-app-server is bind to a fixed service-profile and it can’t be modified, which means it’s impossible to control a device’s enabled uplink freely, unless you want to change all device’s channel in the applicaiton.
I’m not sure what you have tried, but this works. For each region you need to setup a separate load-balancer pool, when your instances are behind a loadbalancer. Also you want to configure your MQTT topics with a region prefix, to separate data per region.
I’ve tried many tricks to provide region based services for my classmates, because they usually switch between various regions or channels to test device.
I’ve tried filtering packets by gateway mac or DevAddr + DevEUI. We got only two gateways and serveral SX1301modules. When they begin to switch band, I need to move device and gateway from one NS to the other again and again.
Setting up a separate load-balancer pool means to redistribute msg and custom topics for diffent region.
If loraserver could be divided into fNS, sNS and hNS, device packets can be passed to the expected NS which holds device-profile and service-profile. I’m curious about how roaming strategy will be implement?
I tried passing packets after collect once or performing internal band switch , but still failed to run up NS.