# LoRaWAN Services configuration # # Copyright (c) 2022 Martin Jäger # 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