mesh: Allow Key Refresh Phase 0 to 3 transition
authorIsak Westin <isak.westin@loytec.com>
Thu, 29 Sep 2022 11:03:44 +0000 (13:03 +0200)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:55 +0000 (14:55 +0530)
Transition to Phase 3 from Phase 0 does not cause any state change, but
is a valid transition. See MshPRFv1.0.1 section 4.2.14.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
mesh/cfgmod-server.c

index 7044b67..be90ef8 100644 (file)
@@ -436,6 +436,10 @@ static uint16_t cfg_key_refresh_phase(struct mesh_node *node,
                                return 0;
                }
 
+               if (pkt[2] == KEY_REFRESH_TRANS_THREE &&
+                                               phase == KEY_REFRESH_PHASE_NONE)
+                       goto done;
+
                status = mesh_net_key_refresh_phase_set(net, idx, pkt[2]);
                l_debug("Set KR Phase: net=%3.3x transition=%d", idx, pkt[2]);