LoRa Network Server Changelog

2.1.5 (August 2018)

Component Versions

  • lora-network-server v2.1.5
  • lora-lens-server v2.1.5
  • lora-query v1.0.4

Bug Fixes

  • AS923 tx frequency allowed down to 915 MHz for New Zealand

2.1.4 (August 2018)

Component Versions

  • lora-network-server v2.1.4
  • lora-lens-server v2.1.4
  • lora-query v1.0.4

Notes

  • Included in upgrade to AEP 1.6.0 and not available for AEP v1.4.x systems
  • Upgrade to 2.1.4 cannot be rolled back. The database migration cannot be undone. Stop the network server and backup the database in /var/config/lora/lora-network-server.db if you want the possibility to go back to 2.0.19.

General Changes

  • Lens Check-ins
    • periodic check-in to lens for updates
  • Gateway Key authentication to Lens
  • End-Device Profiles
    • profile information provided on join
      • Conduit will request profile from Lens if it does not have the profile or has been updated
  • Network Profiles
    • profile information provided on join
      • Conduit will request profile from Lens if it does not have the profile or has been updated
    • Send MAC commands to configure end-devices to network profile settings after join
      • Ping Slot Datarate
      • Ping Slot Frequency
      • Beacon Frequency
      • Tx Param
      • Rx Param
      • Rx Timing
      • Duty Cycle
      • New Channel
      • Downlink Channel
      • Device Time
  • Policy Manager – update policies from Lens
  • Traffic Manager – filter for join requests based on deveui and joineui
  • Session Management – keep in sync with network profile
  • Channel Plan Support
    • IN865 – remove use of DR6 per LW 1.0.2
    • AS923 – reduced minimum frequency to 915 MHz for additional channels

Enhancements

  • Improved downlink scheduling using gateway clock (tmst)
  • Dual-card support, choose MTAC-LORA card based on selected channel plan if 868 and 915 cards are installed.
  • LoRa v2.1 Gateway support with geolocation MQTT messages to report fine timestamp, 3rd party service to resolve device location from timestamps required

Bug Fixes

  • Packets deleted from the downlink queue were still being sent to the end-device, the packet was only removed from the database – fixed to remove packets from the queue in memory and database
  • MQTT clear did not remove packets from the database queue – fixed to remove packets from database via MQTT message
  • MQTT null message was never popped from the queue causing tight loop and eventual crash, null message should only be caused by low system memory

Known Issues

  • AS923 gateway cannot transmit below 920 MHz
  • 2.0.19 (March 2018)

    Component Versions

    • lora-network-server v2.0.19
    • lora-lens-server v2.0.19
    • lora-query v1.0.4

    General Changes

    • Support for 2000 devices and 10 remote gateways
    • Attempt to schedule class C downlink up to 5 seconds out
    • Move missed packets and acks from gateway stats to network stats

    Enhancements

    • Restart lora services if a packet forwarder has not been seen in 10 minutes
    • Add ChannelMask config setting for use with multiple gateways on different FSB settings
    • Emit queue_full message via MQTT/UDP to applications
    • Publish application message with AppPort in topic for MQTT filtering.
    • New lora-query commands, see lora-query -x help See Lora Network Server

    Bug Fixes

    • Create correct Join Accept for some JoinEUI values such as 1234567890abcdef, Join accept packets with invalid length were created
    • Application specific MQTT messages had devEUI output twice, lora/<APP-EUI>/<DEV-EUI>/<PORT>/up and lora/<APP-EUI>/<DEV-EUI>/up

    Known Issues

    • Packets deleted from the downlink queue are still being sent to the end-device, the packet is only removed from the database.
    • MQTT clear does not remove packets from the database queue
    • MQTT null message are never popped from the queue causing tight loop and eventual crash, null message should only be caused by low system memory

    1.0.43 (November 2017)

    Changes

    • Add channel for 923.6 for AS923 in 3rd MAC command sent to end-device after join
    • Send AS923 commands after join in one downlink packet if downlink dwelltime is set to 0

    Bug Fixes

    • Fix: Include 13 byte header size in max packet calculations to conform with regional time-on-air regulations
    • Fix: Send AS923 commands after join in three downlink packets if downlink dwelltime is set to 1 to fit in DR2

    Known Issues

    • AS923 – ADR cannot be used with DR6 and DR7, incorrect channel mask is set to be able to use the max DR

    1.0.42 (October 2017)

    Changes

    • Update default LBT threashold to -80 for AS923 according to Japan regulations
    • Enforce downlink payload sizes according by datarate according to channel plan
    • One uplink packet must be receieved before scheduling Class C downlink after a join
    • Filter duplicate packets received on wrong channels by comparing RSSI/SNR. Duplicates were seen when end-devices are transmitting close to GW.

    Bug Fixes

    • Fix: use byte copy routine to stop alignment trap logged on join
    • Fix: Calculation for max gateway tx power per channel plan with antenna gain. US915, AU915, IN865 plans

    Known Issues

    • Downlink packet size is not including packet header, downlink packets can exceed regional time-on-air regulations

    1.0.41 (September 2017)

    Changes

    • Allow Class C packets to be sent without waiting for uplink after server reset
    • Add IN865 Channel Plan
    • MQTT username and password options

    Bug Fixes

    • Fix: Only one packet will be scheduled with Channel Mask or Additional Channels in first downlink. This packet will be sent until device ACK’s receipt.

    Known Issues

    • No enforcement of downlink payload sizes, work-around is to use lowest packet size of datarates used in selected Channel Plan

    1.0.37 (June 2017)

    Changes

    • GlobalConf: set sxOffset default to -162 according to MTAC-LORA-H calibration
    • AU915: Allow Datarates 0-6 for uplink according to LoRaWAN Regional Parameters 1.0.2 – Sec 2.7.7
      • Bug Fixes

        • Fix: AS923 downlink datarate constrained to max 5 and min according to downlink dwell time per LoRaWAN Regional Parameters 1.0.2 – Sec 2.7.7
        • Fix: If device class is configured in DB use class setting, default to class A if not found
        • Fix: Correct ADR channel mask, KR920 if LBT is enabled or default frequency used for additional channels only 7 channels are created

        Known Issues

        • Multiple packets for first downlink to set end-device channels and datarates through ADR or AddChannel commands may be scheduled multiple times. Downlink packets will not be cleared until ACK’d by end-device

        1.0.35 (May 2017)

        Changes

        • EU868
          • Force 869.4 as additional frequency base if configured above 868.8
            • There are only 4 possible additional channels due to Alarm band restrictions in 868-870 MHz

            • 869.4 => Channels 868.8, 869.0, 869.525, 869.8
        • Use 1% duty-cycle if additional frequencies are between 865-868
      • MTAC-LORA: set default rssi_offset to -162 according to MTAC_LORA_H calibration testing

      Bug Fixes

      • Fix: Allow disable duty-cycle when scheduling downlinks for testing

      1.0.32 (May 2017)

      Changes

      • EU868 Channels above 868.8 changed to avoid using alarm bands. Only two frequency settings will be possible 869.2 or 869.4. If setting is 869.1-869.2 then 869.2 will be used. If setting is above 869.2 then 869.4 will be used.
        • 869.2 => Channels 868.8, 869.0, 869.2, 869.525
        • 869.4 => Channels 869.0, 869.2, 869.525, 869.8
      • Add “database backup” command to command interface (UDP:6677) to force write of database to flash

      Bug Fixes

      • Fix: Network server can schedule downlink in response to uplink with counter past 16-bit max, full support for 32-bit uplink/downlink counters
      • Fix: Allow negative antenna gain for long wire attenuation adjustments

      1.0.31 (April 2017)

      Changes

      • Add tx_notch_freq setting for EU868 and IN865 in global_conf.json
      • Add support for LBT configuration of packet forwarder
      • FSK report 10 for SNR

      Bug Fixes

      • Fix: When additional channels is set to 0 do not set radio_1 to disabled, packet forwarder would not start
      • Fix: Link check answer compute margin from demodulation floor based on packet SF
      • Fix: Downlink scheduled to unknown dot was sent to last scheduled dot, downlink will be dropped

      Known Issues

      • Bug: Downlink will not be scheduled with uplink counter rolls over 16-bit max
      • Bug: Negative Antenna gain are not accepted, network server cannot start with this configuration

      1.0.26 (March 2017)

      Changes

      • Add joinDelay and rx1Delay settings
      • Add support for AS923 and KR920 Channel plans
        • AS923 MaxEIRP and dwelltime settings
        • AS923 DL Channels are not configurable
        • KR920 LBT is not supported
      • Set channel mask in first downlink packet for AU915 and US915
      • Add zero touch activation option for unique appkeys without pre-registration
      • Add ‘device keygen [APPEUI]‘ command for zero touch appkey generation
      • Reduce default database backup interval to 1 hour

      Bug Fixes

      • Fix: Max lease-time max 49 days fixed to allow 64-bit value in ms
      • Fix: Use DR2 for AS923 RX2 join downlink
      • Fix: Fix CRC for lora packets broken in 1.0.25
      • Fix: FSK mode must enable CRC for end-device to receive
      • Fix: Remove override of JoinTime for private mode, it will already be set
      • Fix: seed RNG with current time
      • Fix: send downlinks with CRC disabled per LoRaWAN
      • Fix: Verify NetworkID is matched to AppEUI in Join Packet
      • Fix: Fail MIC check if invalidKey is set

      Known Issues

      • Bug: Downlink scheduled to unknown dot will be sent to last scheduled dot
      • IPK install files to be used with mLinux 3.4 or AEP 1.4 or greater.

      1.0.13 (Sep 8 2016)

      Changes

      • Change duty-cycle algorithm to use sliding window with configurable window size from 1 minute to 24 hours default: 1 hour
      • Added support for LoRaWAN 1.0.1 AU915 channel plan
      • Beacon to use 16-bit CRC-CCITT
      • Accept messages from packet forwarder protocol v2, no handling of extra protocol messages
      • ADR use 0007 channel mask for when EU868 has only 3 channels enabled
      • Check global queue for scheduling conflicts and use Rx2 if possible
      • Remove separate settings for EU and US min/max datarates and create single min/max datarate setting

      Bug Fixes

      • lost ack required downlink packets, ignore duplicate ack frames
      • ack required downlink data packets had incremented seqno when ack not received, do not increment seq no until ack received
      • crash after 65k packets due to stat counter rollover
      • crash in scheduling, added lock to downlink scheduling queue
      • crash on join, delete nodes from database properly add copy constructor to node info retrieved from database
      • downlink seqno not reset on join, uplink and downlink seqno are now reset to 0 on join
      • US915 responds to DR4 on wrong frequency in public mode, server now responds on correct frequency according to uplink frequency used

      Known Issues

      • Maximum lease-time is ~49 days because of 32-bit rollover
      • Downlink packets are sent with CRC enabled, LoraWAN specifies CRC should not be used for downlink packets

      1.0.8

      Changes

      • ADR support with configuration of ADRStep as SNR difference between datarates (default:3dB)
      • Antenna gain is configurable to use none default antennas and adhere to regulations
      • Class C downlink scheduling
      • Node configuration with unique APP-EUI and APP-KEY settings
      • Test options to disable duty-cycle or rx windows
      • Added MQTT topics for joined, packet_recv, packet_sent, queue_full, clear events and commands

      Bug Fixes

      • Downlink frame counter 16-bit rollover
      • Duplicate filtering
      • Backup database after network settings are changed

      0.0.9

      Changes

      • Configurable port for downstream packets
        • Queue data with {"port": 1, "data":"Q==="}
        • Also allows MacCommands to be sent on port 0
      • Port now in upstream packets from MQTT/UDP
      • Config allows disabling of Rx windows
      • Added configuration of ADR thresholds
      • LinkCheckAns now returns SNR margin based on received SF demod floor
      • ACK is sent on duplicate packet received

      Bug Fixes

      • Node with address FFFFFFFF in database could cause segfault when node would join
        • Added code to remove all nodes with FFFFFFFF address on start-up
        • Added check to CommandParser to not allow adding node with this address
        • AppPortUp and AppPortDown defaults were set to opposite of documentation and AEP defaults

      Known Issues

      • Manually joined nodes will not be reloaded from database after restart of network server or reboot of device
      • Downlink counter is not reset when device re-joins

       

      0.0.8

      Changes

      • Ack’s for downstream packets
        • Queue data with {"data":"Q===","ack":true}

      Bug Fixes

      • Prepend NwkID before looking for existing address in database
      • Retransmit ack for duplicate packets
      • Response for US915 – DR4 follows Table 22: Data rate mapping in LoRaWAN r1.0
      • Duty Cycle time on air calculation matches mDot calculations

      Known Issues

       

      0.0.7

      Changes

      • added “joined” and “class” topics for MQTT and UDP messages
      • use NetID 7 LSB for network address prefix

      Bug Fixes

      • EU868 RX2 bandwidth 125 kHz
      • Use timeOnAir function for duty cycle

      Known Issues

       

      0.0.6

      Changes

      • Save/load server stats on stop/start
      • Enforce 150 ms networkLeadTime

      Bug Fixes

      • Mqtt downstream message non-json format does not crash server
      • Fixed alignment trap on join

      Known Issues

       

      0.0.5

      Changes

      • LSB byte order for EUI in join packet
      • 915 RX windows use same datarate scheme as public
      • Rx1DatarateOffset and Rx2Datarate configurable and sent to mDot in join response
      • Public/Private setting changes sync word for packet-forwarder
      • Ping changed to MacCommand
      • Node list is cleared if network eui or key changes
      • Scheduler will look for room to fit a larger payload

      Bug Fixes

      • Queued app data will only be popped off if sent in packet, was causing some data loss
      • Increased default network lead time to 150 ms, some packets were not sent to packet forwarder soon enough

      Known Issues

      • Use only with mDot 0.0.15 and after
      • Breaks compatibility with mDot 0.0.14 and prior
      • mDot 0.0.14 can work partially in 868 mode or with 915 set to +TXDR=9

       

      0.0.4

      Changes

      • Allow variable band to ignore duty cycle if under 7dBm
      • Use NetID to compute session keys

      Bug Fixes

      • Packet counting corrected
      • Full config is displayed by command port ‘config’ command
      • Zero out timestamp fields
      • Fixed

      Known Issues