From 31a240ba638de92051e2b893f1cbfc79a3c1e0c1 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 6 Jul 2023 16:12:45 +0800 Subject: [PATCH 1/3] fix(lwm2m): update the stats correctly and timely --- apps/emqx_gateway_lwm2m/src/emqx_lwm2m_channel.erl | 8 ++++---- apps/emqx_gateway_lwm2m/src/emqx_lwm2m_session.erl | 4 ++-- apps/emqx_gateway_lwm2m/test/emqx_lwm2m_SUITE.erl | 6 ++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_channel.erl b/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_channel.erl index 77652744a..bbd2d4377 100644 --- a/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_channel.erl +++ b/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_channel.erl @@ -111,8 +111,8 @@ info(clientid, #channel{clientinfo = #{clientid := ClientId}}) -> info(ctx, #channel{ctx = Ctx}) -> Ctx. -stats(_) -> - []. +stats(#channel{session = Session}) -> + emqx_lwm2m_session:stats(Session). init( ConnInfo = #{ @@ -246,7 +246,7 @@ handle_call( Subs = emqx_lwm2m_session:info(subscriptions, Session), NSubs = maps:put(MountedTopic, NSubOpts, Subs), NSession = emqx_lwm2m_session:set_subscriptions(NSubs, Session), - {reply, {ok, {MountedTopic, NSubOpts}}, Channel#channel{session = NSession}}; + {reply, {ok, {MountedTopic, NSubOpts}}, [{event, updated}], Channel#channel{session = NSession}}; handle_call( {unsubscribe, Topic}, _From, @@ -269,7 +269,7 @@ handle_call( Subs = emqx_lwm2m_session:info(subscriptions, Session), NSubs = maps:remove(MountedTopic, Subs), NSession = emqx_lwm2m_session:set_subscriptions(NSubs, Session), - {reply, ok, Channel#channel{session = NSession}}; + {reply, ok, [{event, updated}], Channel#channel{session = NSession}}; handle_call(subscriptions, _From, Channel = #channel{session = Session}) -> Subs = maps:to_list(emqx_lwm2m_session:info(subscriptions, Session)), {reply, {ok, Subs}, Channel}; diff --git a/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_session.erl b/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_session.erl index e267692a6..8c37d48e2 100644 --- a/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_session.erl +++ b/apps/emqx_gateway_lwm2m/src/emqx_lwm2m_session.erl @@ -248,11 +248,11 @@ stats(subscriptions_max, _) -> stats(inflight_cnt, _) -> 0; stats(inflight_max, _) -> - 0; + infinity; stats(mqueue_len, _) -> 0; stats(mqueue_max, _) -> - 0; + infinity; stats(mqueue_dropped, _) -> 0; stats(next_pkt_id, _) -> diff --git a/apps/emqx_gateway_lwm2m/test/emqx_lwm2m_SUITE.erl b/apps/emqx_gateway_lwm2m/test/emqx_lwm2m_SUITE.erl index 1779bf842..df1a5d2b3 100644 --- a/apps/emqx_gateway_lwm2m/test/emqx_lwm2m_SUITE.erl +++ b/apps/emqx_gateway_lwm2m/test/emqx_lwm2m_SUITE.erl @@ -2486,6 +2486,12 @@ case100_subscription_api(Config) -> }, {201, _} = request(post, Path, SubReq), {200, _} = request(get, Path), + + %% check subscription_cnt + {200, #{subscriptions_cnt := 2}} = request( + get, "/gateways/lwm2m/clients/" ++ binary_to_list(ClientId) + ), + {204, _} = request(delete, Path ++ "/tx"), {200, [InitSub]} = request(get, Path). From b28909deb64e2561bf3dd92ecd91623b169bd503 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 6 Jul 2023 16:17:11 +0800 Subject: [PATCH 2/3] chore: update changes --- changes/ce/fix-11208.en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/ce/fix-11208.en.md diff --git a/changes/ce/fix-11208.en.md b/changes/ce/fix-11208.en.md new file mode 100644 index 000000000..56d5a398a --- /dev/null +++ b/changes/ce/fix-11208.en.md @@ -0,0 +1 @@ +Fix the issue of abnormal data statistics for LwM2M client. From d3d2c8a5329fdcb7e4c75c3d6ebf2bd57bd522c3 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 6 Jul 2023 16:38:16 +0800 Subject: [PATCH 3/3] chore(lwm2m): bump version --- apps/emqx_gateway_lwm2m/src/emqx_gateway_lwm2m.app.src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_gateway_lwm2m/src/emqx_gateway_lwm2m.app.src b/apps/emqx_gateway_lwm2m/src/emqx_gateway_lwm2m.app.src index 3a1e3fc62..db7cd665f 100644 --- a/apps/emqx_gateway_lwm2m/src/emqx_gateway_lwm2m.app.src +++ b/apps/emqx_gateway_lwm2m/src/emqx_gateway_lwm2m.app.src @@ -1,6 +1,6 @@ {application, emqx_gateway_lwm2m, [ {description, "LwM2M Gateway"}, - {vsn, "0.1.1"}, + {vsn, "0.1.2"}, {registered, []}, {applications, [kernel, stdlib, emqx, emqx_gateway, emqx_gateway_coap]}, {env, []},