Packet Filtering

Embedded LNS

With embedded LNS all packets are filtered so only known devices (DevEUI, AppKey) are processed, unknown device packets are dropped.

Packet Forwarders

When using packet forwarders, Semtech UDP, Basic Station or others, there are a few options for packet filters.

Only the Join Request uplink contains the DevEUI, so only Join Requests COULD be filtered by OUI. However, DevEUI filters have not been included in the Basic Station protocol, instead JoinEUI filters are provided. If a DevEUI filter was available the network management would be more complicated, deploying a sensor would require an update to the gateway configuration to allow the end-device to work. Normally it is the Join Request or Uplink being received is the signal used by the network to know which gateways are available to be used as downlink paths.

Sensor data is sent in Uplink packets.  Uplink packets have the following fields DevAddr, FCnt, FCtrl, FPort, Data, MIC. The DevAddr is assigned by the network, the first 7 bit are a NetID that can be used to identify/filter for a specific network. Each network provider has a LoRa Alliance assigned NetID. We have NetID 0x17 assigned to Multitech by the alliance as part of our membership, although it is not specifically used in our network with the embedded network server. 

A packet forwarder gateway does not know which DevAddr is assigned to a specific device DevEUI, having such a list would complicate the gateway software and mobile devices would not be possible on public networks. LoRaWAN has designed the gateway to LNS protocol to be as stateless as possible, i.e. no device lists or session info available at the gateway to validate uplink packets or author downlink packets.

Packet Fields

  • Join Request – DevEUI, JoinEUI
  • Uplink – DevAddr (assigned by network in encrypted join accept)
    • First 7 bits of the DevAddr are part of NetID assigned by LoRa Alliance to identify a network provider to be used for filtering packets.
  • The gateway does not know which DevAddr that is assigned to a DevEUI as it is encrypted in the Join Accept packet.
    A dynamic list of DevEUIs and DevAddrs to filter would need a Basic Station protocol message to communicate to each gateway.
    This has not been designed in by the LoRaWAN network providers as a needed feature for the public networks, probably since they setup peer networking to other providers, so gathering the most packets is in the interest of their business.

     
     
    Below is the current status of gateway forwarder features, filtering is available in our current firmware.
     

    UDP Packet Forwarder

    No filters currently implemented, unless ChirpStack bridge is used (see below)
     

    Basic Station

    JoinEUI filter configurable by network in router config message, filter join requests on the JoinEUI field
    NetID filter configurable by network in router config message, filter on the first 7 bits of the DevAddr field in each uplink
    AWS Basic Station configuration provides these parameters to filter join requests on JoinEUI and uplinks on NetID

    Chirpstack Bridge

    JoinEUI filter configurable by network in router config message, filter join requests on the JoinEUI field
    NetID filter configurable by network in router config message, filter on the first 7 bits of the DevAddr field in each uplink
    ChirpStack bridge configuration provides these parameters to filter join requests on JoinEUI and uplinks on NetID
    If the bridge is installed on the gateway the filter options are available to configure.