Semtech Basic Station packet-forwarder

The Semtech Basic Station backend implements the LNS protocol. It exposes a websocket handler to which Basic Station powered gateways can connect.

Authentication modes

No Authentication

The LoRa Gateway Bridge will not perform any authentication or authorization and all connections are accepted.

TLS Server Authentication

The basic_station backend Configuration must be configured with a tls_cert and tls_key. The CA certificate used to sign the server TLS certificates must be provided to the Basic Station so that the gateway is able to authenticate the LoRa Gateway Bridge.

TLS Server and Client Authentication

Added to the TLS Server Authentication, the basic_station backend Configuration must be configured with the ca_cert used to sign the used Basic Station client certificates.

Important: The Common Name (CN) must contain the Gateway ID (64 bits) of each gateway as a HEX encoded string, e.g. 0102030405060708.

Channel-plan / router_config

When using Basic Station powered gateways, assigning a Gateway Profile to a gateway within LoRa (App) Server is a requirement. As part of the connection handshake, LoRa Gateway Bridge must send the channel-plan configuration to the Basic Station. The flow for this is:

  • Basic Station sends a version message to the LoRa Gateway Bridge
  • The LoRa Gateway Bridge sends a stats Event
  • LoRa Server responds with a config Command, containing the channel-plan from the Gateway Profile
  • The LoRa Gateway Bridge forwards this as router_config to the Basic Station

Known issues

  • The Basic Station does not send RX / TX stats

Prometheus metrics

The Semtech Basic Station packet-forwarder backend exposes several Prometheus metrics for monitoring.

backend_basicstation_websocket_ping_pong_count

The number of WebSocket Ping/Pong requests sent and received (per event type).

backend_basicstation_websocket_received_count

The number of WebSocket messages received by the backend (per msgtype).

backend_basicstation_websocket_sent_count

The number of WebSocket messages sent by the backend (per msgtype).

backend_basicstation_gateway_connect_count

The number of gateway connections received by the backend.

backend_basicstation_gateway_disconnect_count

The number of gateways that disconnected from the backend.