User Tools

Site Tools


wiki:lora:basic_station_forwarder

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
wiki:lora:basic_station_forwarder [2022/12/15 11:07]
ehe
wiki:lora:basic_station_forwarder [2024/03/07 13:52]
ehe
Line 11: Line 11:
 It implements the same protocols and authentication methods than [[https://​lora-developers.semtech.com/​build/​software/​lora-basics/​lora-basics-for-gateways/​|Semtech LoRa Basics™ Station]] reference implementation. It implements the same protocols and authentication methods than [[https://​lora-developers.semtech.com/​build/​software/​lora-basics/​lora-basics-for-gateways/​|Semtech LoRa Basics™ Station]] reference implementation.
  
-{{:playground:​lora:​basicstation_overview.png?​800|}}+{{:wiki:​lora:​basicstation_overview.png?​800|}}
  
  
Line 44: Line 44:
  
  
-<note important>​For gateways configured with version 4.4.1 for AWS, it's necessary to install [[https://​wikikerlink.fr/​wirnet-productline/​doku.php?​id=wiki:​firmware:​lastversion#​download|Liveburner IPK 5.X]] and [[https://​wikikerlink.fr/​wirnet-productline/​doku.php?​id=wiki:​lora:​bspf_ressources#​download|Basic Station Packet Forwarder]]</​note> ​+<note important>​For gateways configured with version 4.4.1 for AWS, it's necessary to install [[https://​wikikerlink.fr/​wirnet-productline/​doku.php?​id=wiki:​firmware:​lastversion#​download|Liveburner IPK 5.X]] and [[https://​wikikerlink.fr/​wirnet-productline/​doku.php?​id=wiki:​lora:​bspf_ressources#​download|Basic Station Packet Forwarder]]. \\ 
 +Please see on [[wiki:​lora:​aws|AWS IoT Core for LoRaWAN - Kerlink documentation]] for more information</​note> ​
  
 ==== Installation ==== ==== Installation ====
Line 78: Line 79:
         ├── bin         ├── bin
         │   ├── klk_bs_config         │   ├── klk_bs_config
 +        │   ├── klk_loriot_config
 +        │   ├── klk_ttn_config
         │   └── station         │   └── station
         ├── etc         ├── etc
Line 160: Line 163:
 </​note>​ </​note>​
  
 +=== LNS Connection Status ===
 +
 +Since version 2.5.0, the [[wiki:​systeme_mana:​peripherals#​other_leds|backhaul LEDs]] (Wirnet iFemtocell/​iZeptocell) indicate the status of the LNS connection :
 +  * a green LED indicates that connection to the LNS has been established
 +  * a red LED indicates that connection has been either lost or not yet established
 +
 +<​note>​
 +When WMC is used at the same time than Basic Station Packet Forwarder, the backhaul LED's behavior is unreliable.
 +</​note>​
  
 ===== Advanced configuration ===== ===== Advanced configuration =====
 +
 +==== LBT/CCA specific case ====
 +
 +<​note>​Only available since [[bspf_v2.4.1|version 2.4]] ( for "Land Mobile Station"​ use cases, please contact Kerlink support)</​note>​
 +
 +For LNS which doesn'​t embed AS923-1 with LBT, it needs to be activated manually by using following commands:
 +
 +<code bash>
 +# 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
 +</​code>​
 +
 +
  
 ==== Kerlink Basic Station Packet Forwarder configuration ==== ==== Kerlink Basic Station Packet Forwarder configuration ====
Line 174: Line 202:
   * Change CUPS request interval   * Change CUPS request interval
   * Activate packet buffering (database)   * Activate packet buffering (database)
 +  * Activate or disable websockets ping functionality (and set the ping interval)
  
 An example of this configuration file is provided in ''/​user/​basic_station/​etc/​station.conf.example''​. An example of this configuration file is provided in ''/​user/​basic_station/​etc/​station.conf.example''​.
Line 203: Line 232:
   - Restart application ''/​etc/​init.d/​station restart''​   - Restart application ''/​etc/​init.d/​station restart''​
  
 +==== TTN LNS configuration tool ====
 +
 +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:
 +  * an API token
 +  * the API server URL
 +  * the chose frequency plan
 +
 +<note warning>''​klk_bs_config''​ is still required after this to complete the Basic Station configuration.</​note>​
 +
 +<note important>​
 +  * On TTN ''​klk_ttn_config''​ can only be used one time per gateway due to certain TTN restrictions (even after removing the gateway from TTN)\\
 +  * On TTI the gateway needs to be remove and purged in order to reuse ''​klk_ttn_config''​
 +</​note>​
 +
 +++++Example:​|
 +<note warning>
 +Take care to the URL format, it will not work if there is a trailing slash at the end.
 +</​note>​
 +<code bash>
 +# Use TTN configuration tool for TTN LNS
 +klk_ttn_config -u https://​eu1.cloud.thethings.network -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870
 +
 +# Use TTN configuration tool for TTI LNS where tenant is your Tenant ID
 +klk_ttn_config -u https://​tenant.eu1.cloud.thethings.industries -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870
 +</​code>​
 +++++
 +
 +<​note>​
 +The ''​klk_ttn_config''​ tool has been designed to be called from a [[wiki:​systeme_mana:​ztp|Zero Touch Provisioning]] job.
 +</​note>​
 +
 +++++How to generate an TTI API key?|
 +**Prerequisite:​** You have to create a TTI account \\
 +
 +To automatically connect Kerlink Gateways to TTI LNS, you have to delegate some rights to Kerlink thanks to an “API key”. Please follow those steps: \\ \\
 +Step 1 - Connect to your TTI user account \\
 +{{:​images:​1_tti_user_account.jpg?​250|}} \\
 +
 +Step 2 - Go to Personal API keys OR TTI organization API key \\
 +{{:​images:​2_personal_api_keys.jpg?​300|}} \\
 +
 +Step 3 - Add a new API key \\
 +{{:​images:​3_add_api_key.jpg?​900|}} \\
 + 
 +Step 4 - Create the API key with rights limited to GW creation and edition \\
 +{{:​images:​4_rights_limited.jpg?​450|}} ​ \\
 +
 +Step 5 - Save API key \\
 +{{:​images:​5_save_api_key.jpg?​450|}} \\
 +++++
 +==== Loriot LNS configuration tool ====
 +
 +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:
 +  * an API key
 +  * the API server URL
 +  * a network ID
 +  * LoRaWAN region
 +  * Channel plans (1 to 8) comma separated (optional)
 +<note important>​
 +''​klk_bs_config''​ is still required after this to complete the Basic Station configuration.
 +</​note>​
 +
 +++++Example:​|
 +<code bash>
 +# Use Loriot configuration tool in region US902 with 3 channel plans (US915_CH16_23,​ US915_CH40_47 and US915_CH56_63)
 +klk_loriot_config -k ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK-321abcdefgh -u https://​eu1.loriot.io/​1/​nwk -n ABCD1234 -r US902-928 -p 3,6,8
 +</​code>​
 +++++
 +<​note>​
 +The ''​klk_loriot_config''​ tool has been designed to be called from a [[wiki:​systeme_mana:​ztp|Zero Touch Provisioning]] job.
 +</​note>​
 +
 +++++How to generate an LORIOT API key?|
 +**Prerequisite:​** LORIOT account \\
 +
 +[[https://​docs.loriot.io/​display/​NMS/​Create+an+API+key|LORIOT - Create an API key]]
 +++++
 +==== AWS LNS configuration tool ====
 +
 +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:
 +  * an API user ID
 +  * an API key ID
 +  * an API key secret
 +  * the region of the AWS server the gateway will be declared on
 +  * the LoRaWan region of the gateway
 +  * the Frequency Sub Band(s) to use (required for US915 and AU915)
 +<note important>​
 +''​klk_bs_config''​ is still required after this to complete the Basic Station configuration.
 +</​note>​
 +
 +++++Example:​|
 +<code bash>
 +# Use AWS configuration tool
 +klk_aws_config -u some_user -k ABCDEFGHIJKLMNOPQRST-s ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN-r eu-west-1 -l US915 -f 1 -b
 +</​code>​
 +++++
 +<​note>​
 +The ''​klk_aws_config''​ tool has been designed to be called from a [[wiki:​systeme_mana:​ztp|Zero Touch Provisioning]] job.
 +</​note>​
 +
 +++++How to generate an AWS API key?|
 +**Prerequisite:​** You have to create a AWS account \\
 +
 +To automatically connect Kerlink Gateways to AWS LNS, you have to delegate some rights to Kerlink thanks to an “API key”. Please follow those steps: \\ \\
 +Step 1 - Connect to your AWS server \\
 +
 +Step 2 - Go to Console > Services > IAM then hitting the Add users button to create a new AWS user \\
 +{{:​images:​1_aws_user_account.png?​800|}} \\
 +
 +Step 3 - Name the user (= user ID) and set the access type to Programmatic Access \\
 +<note important>​DO NOT check “AWS Management Console access”</​note>​
 +{{:​images:​2_aws_access_type.png?​500|}} \\
 + 
 +Step 4 - DO NOT add user to any group. Also SKIP other steps until creation \\
 +{{:​images:​3_aws_no_group.png?​500|}} ​ \\
 +
 +Step 5 - Select the new user \\
 +{{:​images:​4_aws_select_user.png?​500|}} \\
 +
 +Step 6 - In Security Credentials section: ​
 +  * Select Application running outside AWS
 +  * Give a tag value  (optional)
 +  * Copy Access Key ID and Secret
 + \\
 +{{:​images:​5_aws_security.png?​500|}} ​ \\
 +
 +Step 7 - Add a new inline policy \\
 +{{:​images:​6_aws_inline_policy.png?​500|}} \\
 +
 +Step 8 - Switch to the JSON view and add the following content \\
 +<​code>​
 +{
 +    "​Version":​ "​2012-10-17",​
 +    "​Statement":​ [
 +        {
 +            "​Sid":​ "​VisualEditor0",​
 +            "​Effect":​ "​Allow",​
 +            "​Action":​ [
 +                "​iot:​DeleteCertificate",​
 +                "​iot:​UpdateCertificate",​
 +                "​iotwireless:​GetWirelessGatewayCertificate",​
 +                "​iotwireless:​GetWirelessGateway",​
 +                "​iotwireless:​UpdateWirelessGateway",​
 +                "​iotwireless:​AssociateWirelessGatewayWithCertificate",​
 +                "​iotwireless:​ListWirelessGateways",​
 +                "​iotwireless:​GetServiceEndpoint",​
 +                "​iot:​CreateKeysAndCertificate",​
 +                "​iotwireless:​CreateWirelessGateway"​
 +            ],
 +            "​Resource":​ "​*"​
 +        }
 +    ]
 +}
 +</​code> ​ \\
 +
 +Step 9 - Review policy \\
 +This API user now has the minimum rights required
 + \\
 +
 +
 +++++
 +==== Gateway name customization option ====
 +
 +This option can be used to customize the gateway name displayed on LNS.
 +
 +<code bash>
 +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]
 +</​code>​
 +
 +++++Examples:​|
 +<code bash>
 +# Use TTN configuration tool
 +klk_ttn_config -u https://​eu1.cloud.thethings.network -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870 --naming ttn-test/​eui
 +</​code>​
 +{{:​images:​ttn.png?​nolink&​1000|}}
 +
 +<code bash>
 +# Use Loriot configuration tool
 +klk_loriot_config -k ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK-321abcdefgh -u https://​eu1.loriot.io/​1/​nwk -n ABCD1234 -r US902-928 -p 3,6,8 --naming loriot-test/​serial
 +</​code>​
 +{{:​images:​loriot.png?​nolink&​1000|}}
 +
 +<code bash>
 +# Use AWS configuration tool
 +klk_aws_config -u some_user -k ABCDEFGHIJKLMNOPQRST-s ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN-r eu-west-1 -l US915 -f 1 -b --naming aws-test/​knet
 +</​code>​
 +{{:​images:​aws.png?​nolink&​1000|}}
 +
 +++++
wiki/lora/basic_station_forwarder.txt · Last modified: 2024/04/11 12:09 by ehe