From 8ffb64d46f2422ba166699c25fb2a7ecedf5f7ed Mon Sep 17 00:00:00 2001 From: Seppo Takalo Date: Thu, 28 Sep 2023 13:28:33 +0300 Subject: [PATCH] net: lwm2m: Allow configuring update period Add new configuration value CONFIG_LWM2M_UPDATE_PERIOD that allows calculating update period from last update, instead of calculating it from the lifetime. In runtime, server is allowed to change the lifetime of the registration which causes update perdiod to be effected. When fixed update period is preferred, UPDATE_PERIOD config is then used. Signed-off-by: Seppo Takalo --- .../api/images/lwm2m_lifetime_both.png | Bin 0 -> 17612 bytes .../images/lwm2m_lifetime_seconds_early.png | Bin 0 -> 14563 bytes doc/connectivity/networking/api/lwm2m.rst | 47 ++++++++++++++++++ samples/net/lwm2m_client/overlay-queue.conf | 6 ++- subsys/net/lib/lwm2m/Kconfig | 12 ++++- subsys/net/lib/lwm2m/lwm2m_rd_client.c | 22 +++++--- tests/net/lib/lwm2m/interop/prj.conf | 2 + .../lib/lwm2m/lwm2m_rd_client/CMakeLists.txt | 1 + 8 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 doc/connectivity/networking/api/images/lwm2m_lifetime_both.png create mode 100644 doc/connectivity/networking/api/images/lwm2m_lifetime_seconds_early.png diff --git a/doc/connectivity/networking/api/images/lwm2m_lifetime_both.png b/doc/connectivity/networking/api/images/lwm2m_lifetime_both.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdf0bbb662965d525b6b24f6dade674d9b2f0fe GIT binary patch literal 17612 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 Il7{~O3l2&u4FCWD literal 0 HcmV?d00001 diff --git a/doc/connectivity/networking/api/images/lwm2m_lifetime_seconds_early.png b/doc/connectivity/networking/api/images/lwm2m_lifetime_seconds_early.png new file mode 100644 index 0000000000000000000000000000000000000000..119005ce5c7f0ea96030961a6f8c04cbf6ec4d11 GIT binary patch literal 14563 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 client.lifetime) { + early = client.lifetime; + } + + next = MIN(period, client.lifetime - early); + next = MAX(next, MINIMUM_PERIOD); + + return client.last_update + next * MSEC_PER_SEC; } static int64_t next_rx_off(void) diff --git a/tests/net/lib/lwm2m/interop/prj.conf b/tests/net/lib/lwm2m/interop/prj.conf index 5d255e0513e..66d6334264f 100644 --- a/tests/net/lib/lwm2m/interop/prj.conf +++ b/tests/net/lib/lwm2m/interop/prj.conf @@ -61,6 +61,8 @@ CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE=40 # Use QUEUE mode by default CONFIG_LWM2M_QUEUE_MODE_ENABLED=y CONFIG_LWM2M_QUEUE_MODE_UPTIME=20 +CONFIG_LWM2M_UPDATE_PERIOD=30 +CONFIG_LWM2M_SECONDS_TO_UPDATE_EARLY=10 # LwM2M configuration as OMA-ETS-LightweightM2M_INT-V1_1-20190912-D Configuration 3 CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME=30 diff --git a/tests/net/lib/lwm2m/lwm2m_rd_client/CMakeLists.txt b/tests/net/lib/lwm2m/lwm2m_rd_client/CMakeLists.txt index 81e129c56c1..2a8e8959c25 100644 --- a/tests/net/lib/lwm2m/lwm2m_rd_client/CMakeLists.txt +++ b/tests/net/lib/lwm2m/lwm2m_rd_client/CMakeLists.txt @@ -32,3 +32,4 @@ add_compile_definitions(CONFIG_LWM2M_QUEUE_MODE_ENABLED=1) add_compile_definitions(CONFIG_LWM2M_TLS_SESSION_CACHING=1) add_compile_definitions(CONFIG_LWM2M_RD_CLIENT_LISTEN_AT_IDLE=1) add_compile_definitions(CONFIG_LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP=1) +add_compile_definitions(CONFIG_LWM2M_UPDATE_PERIOD=0)