This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:lora:basic_station_forwarder [2024/01/31 12:20] ehe |
wiki:lora:basic_station_forwarder [2025/02/12 10:09] (current) ehe |
||
---|---|---|---|
Line 9: | Line 9: | ||
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.). | 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 [[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://doc.sm.tc/station/index.html|Semtech LoRa Basics™ Station]] reference implementation. |
{{:wiki:lora:basicstation_overview.png?800|}} | {{:wiki:lora:basicstation_overview.png?800|}} | ||
Line 16: | Line 16: | ||
===== What are the differences with Semtech LoRa Basics™ Station ? ===== | ===== What are the differences with Semtech LoRa Basics™ Station ? ===== | ||
- | The [[https://lora-developers.semtech.com/build/software/lora-basics/lora-basics-for-gateways/|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. | + | The [[https://doc.sm.tc/station/index.html|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. | 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. | ||
Line 94: | Line 94: | ||
</code> | </code> | ||
++++ | ++++ | ||
+ | ==== Kerlink CUPS configuration ==== | ||
+ | <note important>Only available since [[bspf_v3.3.0|Basic Station Packet Forwarder 3.3.0]]</note> | ||
- | ==== Configuration ==== | + | 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: | ||
+ | * cups-boot.uri | ||
+ | * cups-boot.key | ||
+ | * cups-boot.crt | ||
+ | |||
+ | Once connected to Kerlink CUPS, Basic Station Packet Forwarder will get its CUPS/LNS configuration. | ||
+ | |||
+ | <note>Link to Cockpit wiki will be soon available to set LNS configuration using Kerlink CUPS. | ||
+ | </note> | ||
+ | ==== Manual 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). | 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 [[https://lora-developers.semtech.com/build/software/lora-basics/lora-basics-for-gateways/?url=authmodes.html|Semtech documentation]], the procedure to connect to server may differ depending on authentication mode used by server. | + | As explained by [[https://doc.sm.tc/station/authmodes.html|Semtech documentation]], the procedure to connect to server may differ depending on authentication mode used by server. |
=== No authentication on LNS server === | === No authentication on LNS server === | ||
Line 179: | Line 191: | ||
<note>Only available since [[bspf_v2.4.1|version 2.4]] ( for "Land Mobile Station" use cases, please contact Kerlink support)</note> | <note>Only available since [[bspf_v2.4.1|version 2.4]] ( for "Land Mobile Station" use cases, please contact Kerlink support)</note> | ||
- | By default, LBT is **NOT** activated for AS923-1 region. It needs to be activated manually by using following commands: | + | For LNS which doesn't embed AS923-1 with LBT, it needs to be activated manually by using following commands: |
<code bash> | <code bash> | ||
Line 219: | Line 231: | ||
- | ==== Packet buffering (Beta version) ==== | + | ==== Packet buffering ==== |
- | Packet buffering allows to store all uplink packets not correctly transmitted to LNS server. | + | Packet buffering allows to store uplink packets not transmitted to the LNS server when the link between gateway and server is broken. |
- | Application will then retry periodically to re-connect to 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. | + | 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: | In order to activate it: | ||
- Copy ''/user/basic_station/etc/station.conf.example'' to ''/user/basic_station/etc/station.conf'' | - Copy ''/user/basic_station/etc/station.conf.example'' to ''/user/basic_station/etc/station.conf'' | ||
- | - Edit ''/user/basic_station/etc/station.conf'' and locate ''[database]'' section | + | - Edit ''/user/basic_station/etc/station.conf'' and locate the ''[database]'' section |
- Un-comment ''enable = True'' line | - Un-comment ''enable = True'' line | ||
- Save file | - Save file | ||
- Restart application ''/etc/init.d/station restart'' | - Restart application ''/etc/init.d/station restart'' | ||
+ | |||
+ | ==== Local DevAddr Filtering ==== | ||
+ | |||
+ | 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 ) | ||
+ | |||
+ | ++++Example:| | ||
+ | |||
+ | <code bash> | ||
+ | klk_bs_config -e -f "24abcdef/7" -f "!24abcdef/12" | ||
+ | </code> | ||
+ | Will configure basic station to forward messages provided by devices with DevAddr between 0x24000000 and 0x249fffff , or between 0x24b00000 and 0x25ffffff . | ||
+ | |||
+ | ++++ | ||
+ | <note info> | ||
+ | The lead "0x" is not required before the base address of the filter. | ||
+ | </note> | ||
==== TTN LNS configuration tool ==== | ==== TTN LNS configuration tool ==== | ||
Line 238: | Line 270: | ||
\\ | \\ | ||
To use this tool, you need: | To use this tool, you need: | ||
- | * an API token* | + | * an API token |
* the API server URL | * the API server URL | ||
* the chose frequency plan | * the chose frequency plan | ||
Line 295: | Line 327: | ||
* a network ID | * a network ID | ||
* LoRaWAN region | * LoRaWAN region | ||
+ | * region list: | ||
+ | * AU915-928 | ||
+ | * AS923 | ||
+ | * CN470-510 | ||
+ | * CN779-787 | ||
+ | * EU433 | ||
+ | * EU863-870 | ||
+ | * IN865-867 | ||
+ | * KR920-923 | ||
+ | * RU864-870 | ||
+ | * US902-928 | ||
* Channel plans (1 to 8) comma separated (optional) | * Channel plans (1 to 8) comma separated (optional) | ||
<note important> | <note important> | ||
''klk_bs_config'' is still required after this to complete the Basic Station configuration. | ''klk_bs_config'' is still required after this to complete the Basic Station configuration. | ||
- | </note> | ||
- | <note warning> | ||
- | The Loriot Basic Station server does not respond to websocket pings. It is therefore advised to disable this functionality when connecting to such a server. | ||
</note> | </note> | ||
Line 307: | Line 347: | ||
# Use Loriot configuration tool in region US902 with 3 channel plans (US915_CH16_23, US915_CH40_47 and US915_CH56_63) | # 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 | klk_loriot_config -k ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJK-321abcdefgh -u https://eu1.loriot.io/1/nwk -n ABCD1234 -r US902-928 -p 3,6,8 | ||
- | # Disable websocket pings | ||
- | klk_bs_config --enable --ping_interval None | ||
</code> | </code> | ||
++++ | ++++ | ||
Line 315: | Line 353: | ||
</note> | </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 ==== | ==== AWS LNS configuration tool ==== | ||
- | To ease declaration of a gateway on the AWS LNS, use the ''klk_aws_config'' tool. | + | <note warning>If you already have declare your gateway on AWS, please delete it or add deletion right in AWS API key</note> |
- | This tool creates the gateway on the server and installs the resulting LNS credentials on the gateway. | + | |
+ | 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: | To use this tool, you need: | ||
Line 342: | Line 386: | ||
</note> | </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": [ | ||
+ | "iotwireless:GetWirelessGatewayCertificate", | ||
+ | "iotwireless:GetWirelessGateway", | ||
+ | "iotwireless:DeleteWirelessGateway", | ||
+ | "iotwireless:UpdateWirelessGateway", | ||
+ | "iotwireless:AssociateWirelessGatewayWithCertificate", | ||
+ | "iotwireless:GetServiceEndpoint", | ||
+ | "iotwireless:CreateWirelessGateway", | ||
+ | "iotwireless:TagResource", | ||
+ | "iot:CreateKeysAndCertificate", | ||
+ | "iot:UpdateCertificate", | ||
+ | "iot:DescribeThing", | ||
+ | "iot:DeleteCertificate" | ||
+ | ], | ||
+ | "Resource": "*" | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </code> \\ | ||
+ | |||
+ | Step 9 - Review policy \\ | ||
+ | This API user now has the minimum rights required | ||
+ | \\ | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | ==== Actility LNS configuration tool ==== | ||
+ | |||
+ | 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: | ||
+ | * an API Client ID and its secret | ||
+ | * the API server URL | ||
+ | * the actility LoRaWAN region ID ( see https://oss-api.thingpark.com/tpe/7.3/Things-Management/network-manager/documentation-network-manager.html#/rf-regions ) | ||
+ | <note important> | ||
+ | ''klk_bs_config'' is still required after this to complete the Basic Station configuration. | ||
+ | </note> | ||
+ | |||
+ | ++++Example:| | ||
+ | <code bash> | ||
+ | # Use Actility configuration tool in region EU868 on 8 channels | ||
+ | klk_actility_config -i sub-123456789/test -s Abcdef1234567890Ghijklm987654321 -u https://community.thingpark.io -r EU868_8channels.448 | ||
+ | </code> | ||
+ | ++++ | ||
+ | <note> | ||
+ | The ''klk_actility_config'' tool has been designed to be called from a [[wiki:systeme_mana:ztp|Zero Touch Provisioning]] job. | ||
+ | </note> | ||
+ | |||
+ | ++++How to generate an ACTILITY API key?| | ||
+ | |||
+ | [[https://community.thingpark.org/index.php/build-your-first-end-to-end-use-case/|ACTILITY- Access ThingPark Community Platform]] | ||
+ | ++++ | ||
==== Gateway name customization option ==== | ==== Gateway name customization option ==== | ||