Similarly to legacy (GWMP) packet forwarder, the Basic Station Packet Forwarder is a program running on a LoRa gateway. It forwards the LoRa packets emitted by end-devices and received by the gateway to a LoRa Network Server (LNS) and vice-versa, hence its name.
The Kerlink Basic Station Packet Forwarder (BSPF) is based on “lorad” daemon from Common Packet Forwarder.
Once installed and configured, it is able to connect to a “LNS” or a “CUPS” server and handle all associated services (Radio configuration, Forward uplink packets, schedule downlink packets, etc.).
It implements the same protocols and authentication methods than Semtech LoRa Basics™ Station reference implementation.
The Semtech LoRa Basics™ Station is a nice reference implementation. But, as the original packet forwarder, it has the same drawbacks: It's a monolithic approach, designed to be hardly linked to the gateway radio architecture and to be used on one Network Server.
In other words, Kerlink Basic Station Packet Forwarder is the same package for all Kerlink iSeries gateways and can be configured while another previously-configured LNS is still functional.
Main features of reference implementation are implemented in Kerlink Basic Station Packet Forwarder, including:
The features not supported are listed below:
The additional features:
If the software version of your gateway is not compatible, refer to resources section to upgrade to 5.x
basicstation_X.Y.Z_klkgw.ipk
file using the instructions of the software updates page.The installation of the “basicstation” package adds the following content on the file system:
After installation Kerlink Basic Station Packet Forwarder is disabled by default. Once Basic Station Packet Forwarder started, if no configuration is available, it will connect to Kerlink CUPS using:
Once connected to Kerlink CUPS, Basic Station Packet Forwarder will get its CUPS/LNS configuration.
Once installed, Kerlink Basic Station Packet Forwarder is disabled by default. It should first be configured for the wanted server (CUPS and/or LNS).
As explained by Semtech documentation, the procedure to connect to server may differ depending on authentication mode used by server.
/user/basic_station/etc/tc.uri
config file.
A tool named klk_bs_config
is used to handle these steps.
Additionally to previous mode, a *.trust
file should be provided to check server authenticity. (excepting for “Publicly known”/“Globally signed” certificates like “let's encrypt”, AWS, etc…)
Additionally to previous mode, *.key
and *.crt
files should be provided to authenticate client (gateway) on server.
Example with an AWS CUPS server:
klk_bs_config --disable rm -f /user/basic_station/etc/*.key /user/basic_station/etc/*.trust /user/basic_station/etc/*.crt # Then, follow procedure depending on your LNS type
Since version 2.5.0, the backhaul LEDs (Wirnet iFemtocell/iZeptocell) indicate the status of the LNS connection :
For LNS which doesn't embed AS923-1 with LBT, it needs to be activated manually by using following commands:
# Disable current config klk_bs_config --disable # Use "Japan" lorad configuration explicitly and prevent from reconfiguration from LNS klk_bs_config --enable --loradconf AS923-1-JP.json --ignore-reconf
By default, Kerlink Basic Station Packet Forwarder doesn't need any configuration files excepting those described above.
However, for advanced configuration, default settings can be modified by creating a configuration file named /user/basic_station/etc/station.conf
.
It allows to:
An example of this configuration file is provided in /user/basic_station/etc/station.conf.example
.
Default Router EUI is the gateway EUI64 (printed on box and available in /tmp/board_info.json
).
However, it can be overridden by setting it in this configuration file:
/user/basic_station/etc/station.conf.example
to /user/basic_station/etc/station.conf
/user/basic_station/etc/station.conf
and locate [router]
sectionid = <WANTED_EUI>
/etc/init.d/station restart
Packet buffering allows to store uplink packets not transmitted to the LNS server when the link between gateway and server is broken.
The application will then retry periodically to re-connect to the LNS Server and as soon as the connection is back, all stored packets will be pushed in FIFO mode (First In, First Out) to respect packets chronology.
In order to activate it:
/user/basic_station/etc/station.conf.example
to /user/basic_station/etc/station.conf
/user/basic_station/etc/station.conf
and locate the [database]
sectionenable = True
line/etc/init.d/station restart
In the case the LNS does not provide any NetID filter in the router_config message, it is possible to set local filters in order to only forward LoRa uplinks provided by a subset of devices.
To configure this feature, use the '-f' option of the klk_bs_config tool, and provide inclusive and/or exclusive filters to indicate the sets of DevAddr to be kept and/or rejected.
( see https://wikikerlink.fr/wirnet-productline/doku.php?id=wiki:lora:advanced_features#lorawan_frame_filtering for more details about filters values )
To ease declaration of a gateway on the TTN (thethings.network), TTI (thethings.industries) or TTS (The Things Stack Enterprise / Open Source) LNS, use the klk_ttn_config
tool.
This tool adds the gateway on the server and creates its associated CUPS and LNS keys.
To use this tool, you need:
klk_bs_config
is still required after this to complete the Basic Station configuration.
klk_ttn_config
can only be used one time per gateway due to certain TTN restrictions (even after removing the gateway from TTN)klk_ttn_config
klk_ttn_config
tool has been designed to be called from a Zero Touch Provisioning job.
To ease declaration of a gateway on the Loriot LNS, use the klk_loriot_config
tool.
This tool creates the gateway on the server and installs the resulting LNS credentials on the gateway.
To use this tool, you need:
klk_bs_config
is still required after this to complete the Basic Station configuration.
klk_loriot_config
tool has been designed to be called from a Zero Touch Provisioning job.
To ease declaration of a gateway on the AWS LNS, use the klk_aws_config
tool.
This tool creates the gateway on the server and installs the resulting LNS credentials on the gateway.
To use this tool, you need:
klk_bs_config
is still required after this to complete the Basic Station configuration.
klk_aws_config
tool has been designed to be called from a Zero Touch Provisioning job.
To ease declaration of a gateway on the Actility LNS, use the klk_actility_config
tool.
This tool creates the gateway on the server and installs the resulting LNS credentials on the gateway.
To use this tool, you need:
klk_bs_config
is still required after this to complete the Basic Station configuration.
klk_actility_config
tool has been designed to be called from a Zero Touch Provisioning job.
This option can be used to customize the gateway name displayed on LNS.
Optional parameters: --naming Set gateway naming strategy prefix[/scheme] schemes: "knet" : prefix-EUI[:-6] (default) "eui" : prefix-EUI "serial" : prefix-board serial "model" : model-EUI[:-6]