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/02/09 08:50] ehe [Loriot LNS configuration tool] |
wiki:lora:basic_station_forwarder [2025/09/08 14:35] (current) ehe [Actility LNS configuration tool] |
||
|---|---|---|---|
| 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. | ||
| + | |||
| + | It's now possible to set LNS configuration using Cockpit: [[https://cockpit.docs.kerlink.com/en/update-config/configure-lorawan|Configure LoRaWAN with Wanesy Management Cockpit]] | ||
| + | |||
| + | ==== 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> | ||
| + | |||
| + | ==== Local JoinEui Filtering ==== | ||
| + | |||
| + | In the case the LNS does not provide any JoinEui filter in the router_config message, it is possible to set local filters in order to only forward LoRa JoinRequest matching by a subset of EUIs. | ||
| + | |||
| + | To configure this feature, use the '-j' option of the klk_bs_config tool, and provide inclusive and/or exclusive filters to indicate the sets of JoinEuis to be kept and/or rejected. | ||
| + | |||
| + | ++++Example:| | ||
| + | |||
| + | <code bash> | ||
| + | klk_bs_config -e -j "848bcdfffe60b9df/48" | ||
| + | </code> | ||
| + | Will configure basic station to forward join requests using JoinEuis between 0x848bcdfffe600000 and 0x848bcdfffe60ffff . | ||
| + | |||
| + | ++++ | ||
| + | <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 241: | Line 291: | ||
| * the API server URL | * the API server URL | ||
| * the chose frequency plan | * the chose frequency plan | ||
| - | |||
| - | <note warning>''klk_bs_config'' is still required after this to complete the Basic Station configuration.</note> | ||
| <note important> | <note important> | ||
| Line 256: | Line 304: | ||
| # Use TTN configuration tool for TTN LNS | # Use TTN configuration tool for TTN LNS | ||
| klk_ttn_config -u https://eu1.cloud.thethings.network -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870 | klk_ttn_config -u https://eu1.cloud.thethings.network -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870 | ||
| + | klk_bs_config -e | ||
| # Use TTN configuration tool for TTI LNS where tenant is your Tenant ID | # 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 | klk_ttn_config -u https://tenant.eu1.cloud.thethings.industries -t NNSXS.R6D3ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI.ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIABCDEFGHIJKLMNOPQ -f EU_863_870 | ||
| + | klk_bs_config -e | ||
| </code> | </code> | ||
| ++++ | ++++ | ||
| Line 295: | Line 345: | ||
| * 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> | ||
| - | ''klk_bs_config'' is still required after this to complete the Basic Station configuration. | ||
| - | </note> | ||
| ++++Example:| | ++++Example:| | ||
| Line 304: | Line 362: | ||
| # 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 | ||
| + | klk_bs_config -e | ||
| </code> | </code> | ||
| ++++ | ++++ | ||
| Line 317: | Line 376: | ||
| ==== 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 327: | Line 388: | ||
| * the LoRaWan region of the gateway | * the LoRaWan region of the gateway | ||
| * the Frequency Sub Band(s) to use (required for US915 and AU915) | * 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:| | ++++Example:| | ||
| Line 335: | Line 393: | ||
| # Use AWS configuration tool | # Use AWS configuration tool | ||
| klk_aws_config -u some_user -k ABCDEFGHIJKLMNOPQRST-s ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN-r eu-west-1 -l US915 -f 1 -b | klk_aws_config -u some_user -k ABCDEFGHIJKLMNOPQRST-s ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMN-r eu-west-1 -l US915 -f 1 -b | ||
| + | klk_bs_config -e | ||
| </code> | </code> | ||
| ++++ | ++++ | ||
| Line 379: | Line 438: | ||
| "Effect": "Allow", | "Effect": "Allow", | ||
| "Action": [ | "Action": [ | ||
| - | "iot:DeleteCertificate", | ||
| - | "iot:UpdateCertificate", | ||
| "iotwireless:GetWirelessGatewayCertificate", | "iotwireless:GetWirelessGatewayCertificate", | ||
| "iotwireless:GetWirelessGateway", | "iotwireless:GetWirelessGateway", | ||
| + | "iotwireless:DeleteWirelessGateway", | ||
| "iotwireless:UpdateWirelessGateway", | "iotwireless:UpdateWirelessGateway", | ||
| "iotwireless:AssociateWirelessGatewayWithCertificate", | "iotwireless:AssociateWirelessGatewayWithCertificate", | ||
| - | "iotwireless:ListWirelessGateways", | ||
| "iotwireless:GetServiceEndpoint", | "iotwireless:GetServiceEndpoint", | ||
| + | "iotwireless:CreateWirelessGateway", | ||
| + | "iotwireless:TagResource", | ||
| "iot:CreateKeysAndCertificate", | "iot:CreateKeysAndCertificate", | ||
| - | "iotwireless:CreateWirelessGateway" | + | "iot:UpdateCertificate", |
| + | "iot:DescribeThing", | ||
| + | "iot:DeleteCertificate" | ||
| ], | ], | ||
| "Resource": "*" | "Resource": "*" | ||
| Line 401: | Line 462: | ||
| + | ++++ | ||
| + | ==== 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 ) | ||
| + | |||
| + | ++++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 | ||
| + | klk_bs_config -e | ||
| + | </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 ==== | ||