173 lines
5.4 KiB
Plaintext
173 lines
5.4 KiB
Plaintext
# LoRaWAN Services configuration
|
|
#
|
|
# Copyright (c) 2022 Martin Jäger <martin@libre.solar>
|
|
# Copyright (c) 2022 tado GmbH
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig LORAWAN_SERVICES
|
|
bool "LoRaWAN Services backend"
|
|
depends on LORAWAN
|
|
select ENTROPY_GENERATOR
|
|
help
|
|
Enables the LoRaWAN background services, e.g. used for
|
|
firmware-upgrade over the air (FUOTA).
|
|
|
|
The services use a dedicated thread and a work queue.
|
|
|
|
if LORAWAN_SERVICES
|
|
|
|
module = LORAWAN_SERVICES
|
|
module-str = lorawan_services
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config LORAWAN_SERVICES_THREAD_STACK_SIZE
|
|
int "Services thread stack size"
|
|
default 2048
|
|
help
|
|
Stack size of thread running LoRaWAN background services.
|
|
|
|
config LORAWAN_SERVICES_THREAD_PRIORITY
|
|
int "Services thread priority"
|
|
default 2
|
|
help
|
|
Priority of the thread running LoRaWAN background services.
|
|
|
|
config LORAWAN_APP_CLOCK_SYNC
|
|
bool "Application Layer Clock Synchronization"
|
|
help
|
|
Enables the LoRaWAN Application Layer Clock Synchronization service
|
|
according to LoRa Alliance TS003-2.0.0.
|
|
|
|
The service uses the default port 202.
|
|
|
|
config LORAWAN_APP_CLOCK_SYNC_PERIODICITY
|
|
int "Application Layer Clock Synchronization periodicity"
|
|
depends on LORAWAN_APP_CLOCK_SYNC
|
|
range 128 4194304
|
|
default 86400
|
|
help
|
|
Initial setting for clock synchronization periodicity in seconds.
|
|
|
|
The value can be updated remotely by the application server within a
|
|
range from 128 (0x80) to 4194304 (0x400000).
|
|
|
|
Default setting: 24h.
|
|
|
|
config LORAWAN_FRAG_TRANSPORT
|
|
bool "Fragmented Data Block Transport"
|
|
select FLASH_MAP
|
|
select FLASH_PAGE_LAYOUT
|
|
select IMG_MANAGER
|
|
help
|
|
Enables the LoRaWAN Fragmented Data Block Transport service
|
|
according to TS004-1.0.0 as published by the LoRa Alliance.
|
|
|
|
The used default port for this service is 201.
|
|
|
|
choice LORAWAN_FRAG_TRANSPORT_DECODER
|
|
bool "Fragmented Data Block Transport decoder implementation"
|
|
depends on LORAWAN_FRAG_TRANSPORT
|
|
default LORAWAN_FRAG_TRANSPORT_DECODER_SEMTECH
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_DECODER_SEMTECH
|
|
bool "Semtech"
|
|
help
|
|
The default decoder implementation from LoRaMAC-node.
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_DECODER_LOWMEM
|
|
bool "Low Memory Footprint Algorithm"
|
|
help
|
|
Alternate implementation with reduced RAM footprint.
|
|
|
|
endchoice # LORAWAN_FRAG_TRANSPORT_DECODER
|
|
|
|
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_IMAGE_SIZE
|
|
int "Total size of firmware image"
|
|
depends on LORAWAN_FRAG_TRANSPORT
|
|
default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_CODE_PARTITION))
|
|
help
|
|
Size of the flash partition for the application firmware image
|
|
in bytes.
|
|
|
|
The minimum number of fragments to be transferred is calculated from
|
|
this value divided by the fragment size.
|
|
|
|
This setting has significant influence on RAM usage.
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_MAX_FRAG_SIZE
|
|
int "Maximum size of transported fragments"
|
|
depends on LORAWAN_FRAG_TRANSPORT
|
|
range 1 239
|
|
default 232
|
|
help
|
|
Maximum size of one fragment transferred during the fragmented data
|
|
block transport session of the FUOTA process. It is chosen on the
|
|
server side.
|
|
|
|
The fragment has to fit into the LoRaWAN payload, which can be up to
|
|
242 bytes depending on the region and frequency settings. 3 bytes of
|
|
the payload are consumed for protocol information.
|
|
|
|
For some MCUs like the STM32WL the fragment size has to be a multiple
|
|
of 8 (see flash driver for further information).
|
|
|
|
This setting has significant influence on RAM usage. If the exact
|
|
fragment size is known, use that value for MIN and MAX config to
|
|
reduce memory consumption.
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_MIN_FRAG_SIZE
|
|
int "Minimum size of transported fragments"
|
|
depends on LORAWAN_FRAG_TRANSPORT
|
|
range 1 239
|
|
default 48
|
|
help
|
|
Minimum size of one fragment transferred during the fragmented data
|
|
block transport session of the FUOTA process. It is chosen on the
|
|
server side.
|
|
|
|
The fragment has to fit into the LoRaWAN payload, which can be up to
|
|
242 bytes depending on the region and frequency settings. 3 bytes of
|
|
the payload are consumed for protocol information.
|
|
|
|
For some MCUs like the STM32WL the fragment size has to be a multiple
|
|
of 8 (see flash driver for further information).
|
|
|
|
This setting has significant influence on RAM usage. If the exact
|
|
fragment size is known, use that value for MIN and MAX config to
|
|
reduce memory consumption.
|
|
|
|
config LORAWAN_FRAG_TRANSPORT_MAX_REDUNDANCY
|
|
int "Percentage of redundant fragments"
|
|
depends on LORAWAN_FRAG_TRANSPORT
|
|
range 1 100
|
|
default 20
|
|
help
|
|
The built-in forward error correction (FEC) mechanism allows to
|
|
reconstruct missed packages from additional redundant packages
|
|
sent by the server after all packages have been sent.
|
|
|
|
This parameter specifies the maximum amount of packet loss (in
|
|
percent) for which it should be possible to reconstruct the full
|
|
firmware image.
|
|
|
|
This setting has significant influence on RAM usage.
|
|
|
|
config LORAWAN_REMOTE_MULTICAST
|
|
bool "Remote Multicast Setup"
|
|
depends on LORAWAN_APP_CLOCK_SYNC
|
|
depends on !LORAWAN_NVM_NONE
|
|
help
|
|
Enables the LoRaWAN Remote Multicast Setup service according to
|
|
TS005-1.0.0 as published by the LoRa Alliance.
|
|
|
|
The service is run automatically in the background. It is responsible
|
|
for multicast session key exchange and setting up a class C session.
|
|
The exchanged keys are stored in the non-volatile memory.
|
|
|
|
The used default port for this service is 200.
|
|
|
|
endif # LORAWAN_SERVICES
|