New Modified Region


#1

We are looking to upgrade to the latest versions of LoRaServer, LoRa-App-Server and LoRa-Gateway-Bridge. However we need to add a modified IN865 region to support a similar frequency band in NZ, i.e. implement a new NZ865.
Previously, with older versions we have managed to achieve this by compiling those applications with the following changes:

For LoRaServer

  • add new region definition file band_nz_865_867.go to loraserver/vendor/github.com/brocaar/lorawan/band/ based on band_in_865_867.go
  • network_server.go - add new region to rfRegionMapping (e.g. band.NZ_865_867: backend.NZ865, )
  • main.go - add new region to var bands = [] string { (e.g. string(band.NZ_865_867), )
  • loraserver/vendor/github.com/brocaar/lorawan/band/band.go - add new region to // Available ISM bands (e.g. NZ_865_867 Name = “NZ_865_867” and add new case to func GetConfig (e.g. case NZ_865_867: return newNZ865Band(repeaterCompatible)
  • backend.go - add new region to //Supported RF Regions (e.g. NZ865 RFRegion = “NZ865”)

For Lora-App-Server

  • backend.go - add new region to //Supported RF Regions (e.g. NZ865 RFRegion = “NZ865”)

For Lora-Gateway-Bridge

  • add new region definition file band_nz_865_867.go to lora-gateway-bridge/vendor/github.com/brocaar/lorawan/band/ based on band_in_865_867.go
  • network_server.go - add new region to rfRegionMapping (e.g. band.NZ_865_867: backend.NZ865, )
  • backend.go - add new region to //Supported RF Regions (e.g. NZ865 RFRegion = “NZ865”)
  • main.go - add new region to var bands = [] string { (e.g. string(band.NZ_865_867), )
  • lora-gateway-bridge/vendor/github.com/brocaar/lorawan/band/band.go - add new region to // Available ISM bands (e.g. NZ_865_867 Name = “NZ_865_867” and add new case to func GetConfig (e.g. case NZ_865_867: return newNZ865Band(repeaterCompatible)
  • Create new band_nz_865_867_test.go in lora-gateway-bridge/vendor/github.com/brocaar/lorawan/band/ based on band_in_865_867_test.go

My question is whether for the latest versions a similar process should work, or do we need to do something different, or is there an easier approach now?

Many thanks, Ron