lorawan: services: add Application Layer Clock Synchronization

This service allows to synchronize the clock with the application
server.

Synchronization requests are initiated by the device in a regular
interval, configurable via Kconfig.

The implementation only supports TS003-2.0.0, as the previous revision
TS003-1.0.0 requested to temporarily disable ADR and and set nb_trans
to 1. This causes issues on the server side and is not recommended
anymore.

Signed-off-by: Martin Jäger <martin@libre.solar>
This commit is contained in:
Martin Jäger 2022-08-22 17:37:10 +02:00 committed by Fabio Baltieri
commit 3b9ba15096
4 changed files with 289 additions and 0 deletions

View file

@ -33,4 +33,25 @@ config LORAWAN_SERVICES_THREAD_PRIORITY
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.
endif # LORAWAN_SERVICES