otError ThreadNetif::Down(void) { VerifyOrExit(mIsUp); #if OPENTHREAD_ENABLE_DTLS mDtls.Stop(); #endif #if OPENTHREAD_ENABLE_DNS_CLIENT mDnsClient.Stop(); #endif #if OPENTHREAD_ENABLE_SNTP_CLIENT mSntpClient.Stop(); #endif mCoap.Stop(); mMleRouter.Disable(); RemoveAllExternalUnicastAddresses(); UnsubscribeAllExternalMulticastAddresses(); UnsubscribeAllRoutersMulticast(); UnsubscribeAllNodesMulticast(); mIsUp = false; GetIp6().RemoveNetif(*this); mMeshForwarder.Stop(); #if OPENTHREAD_ENABLE_CHANNEL_MONITOR GetInstance().GetChannelMonitor().Stop(); #endif GetNotifier().Signal(OT_CHANGED_THREAD_NETIF_STATE); exit: return OT_ERROR_NONE; }
otError ThreadNetif::Down(void) { mCoap.Stop(); #if OPENTHREAD_ENABLE_DNS_CLIENT mDnsClient.Stop(); #endif #if OPENTHREAD_ENABLE_CHANNEL_MONITOR GetInstance().GetChannelMonitor().Stop(); #endif mMleRouter.Disable(); mMeshForwarder.Stop(); GetIp6().RemoveNetif(*this); RemoveAllExternalUnicastAddresses(); UnsubscribeAllExternalMulticastAddresses(); mIsUp = false; #if OPENTHREAD_ENABLE_DTLS mDtls.Stop(); #endif return OT_ERROR_NONE; }