From 2e27bcb365741f4609c312477f245161aa07a893 Mon Sep 17 00:00:00 2001 From: Arkadiusz Balys Date: Thu, 25 Apr 2024 15:24:40 +0200 Subject: [PATCH] [OpenThread] Disable IPv6 interface during erasing persistent info. Apart from disabling Thread, and erasing Persistent Info, we should disable the IPv6 interface as well and block receiving further packets. Otherwise, if we don't reboot the device after erasing Thread persistent data, we can get a packet and as a result, it causes an assert during processing AES_ECB (because crypto keys have been removed). --- .../OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp index 7c3111a2082339..a0df50413741a7 100644 --- a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp +++ b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp @@ -1212,6 +1212,7 @@ void GenericThreadStackManagerImpl_OpenThread::_ErasePersistentInfo(v ChipLogProgress(DeviceLayer, "Erasing Thread persistent info..."); Impl()->LockThreadStack(); otThreadSetEnabled(mOTInst, false); + otIp6SetEnabled(mOTInst, false); otInstanceErasePersistentInfo(mOTInst); Impl()->UnlockThreadStack(); }