If we are in IV update in progress state, and receive a Secure Network beacon with an IV index equal to last known IV index + 1, and IV update flag set to 1, it should be ignored. See MshPRFv1.0.1 section 3.10.5. --- mesh/net.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mesh/net.c b/mesh/net.c index dc3d1fd80..c225fdb9a 100644 --- a/mesh/net.c +++ b/mesh/net.c @@ -2671,6 +2671,10 @@ static bool update_iv_ivu_state(struct mesh_net *net, uint32_t iv_index, if (iv_index == net->iv_index) return false; + /* Ignore beacon with invalid IV index value */ + if (net->iv_update && iv_index == net->iv_index + 1) + return false; + if (!net->iv_update) { l_debug("iv_upd_state = IV_UPD_UPDATING"); net->iv_upd_state = IV_UPD_UPDATING; -- 2.20.1