[thread] Remove legacy APIs: joiner & ThreadMode (#32814)

* [thread] Remove Thread Joiner functionality from platform layer

Thread Joiner role is not used by Matter so this should
not be a part of Thread interface in Matter SDK. It is
a leftover from Weave.

* Remove unused ThreadMode setting
diff --git a/src/include/platform/ConnectivityManager.h b/src/include/platform/ConnectivityManager.h
index ed881f7..3000248 100644
--- a/src/include/platform/ConnectivityManager.h
+++ b/src/include/platform/ConnectivityManager.h
@@ -102,14 +102,6 @@
         kWiFiAPMode_OnDemand_NoStationProvision = 5,
     };
 
-    enum ThreadMode
-    {
-        kThreadMode_NotSupported          = 0,
-        kThreadMode_ApplicationControlled = 1,
-        kThreadMode_Disabled              = 2,
-        kThreadMode_Enabled               = 3,
-    };
-
     enum WiFiStationState
     {
         kWiFiStationState_NotConnected,
@@ -192,10 +184,7 @@
     void SetWiFiAPIdleTimeout(System::Clock::Timeout val);
 
     // Thread Methods
-    ThreadMode GetThreadMode();
-    CHIP_ERROR SetThreadMode(ThreadMode val);
     bool IsThreadEnabled();
-    bool IsThreadApplicationControlled();
     ThreadDeviceType GetThreadDeviceType();
     CHIP_ERROR SetThreadDeviceType(ThreadDeviceType deviceType);
     bool IsThreadAttached();
@@ -417,26 +406,11 @@
     return static_cast<ImplClass *>(this)->_GetAndLogWiFiStatsCounters();
 }
 
-inline ConnectivityManager::ThreadMode ConnectivityManager::GetThreadMode()
-{
-    return static_cast<ImplClass *>(this)->_GetThreadMode();
-}
-
-inline CHIP_ERROR ConnectivityManager::SetThreadMode(ThreadMode val)
-{
-    return static_cast<ImplClass *>(this)->_SetThreadMode(val);
-}
-
 inline bool ConnectivityManager::IsThreadEnabled()
 {
     return static_cast<ImplClass *>(this)->_IsThreadEnabled();
 }
 
-inline bool ConnectivityManager::IsThreadApplicationControlled()
-{
-    return static_cast<ImplClass *>(this)->_IsThreadApplicationControlled();
-}
-
 inline ConnectivityManager::ThreadDeviceType ConnectivityManager::GetThreadDeviceType()
 {
     return static_cast<ImplClass *>(this)->_GetThreadDeviceType();
diff --git a/src/include/platform/ThreadStackManager.h b/src/include/platform/ThreadStackManager.h
index 523b4fe..540fb77 100644
--- a/src/include/platform/ThreadStackManager.h
+++ b/src/include/platform/ThreadStackManager.h
@@ -108,7 +108,6 @@
     CHIP_ERROR GetExternalIPv6Address(chip::Inet::IPAddress & addr);
     CHIP_ERROR GetPollPeriod(uint32_t & buf);
 
-    CHIP_ERROR JoinerStart();
     CHIP_ERROR SetThreadProvision(ByteSpan aDataset);
     CHIP_ERROR SetThreadEnabled(bool val);
     CHIP_ERROR AttachToThreadNetwork(const Thread::OperationalDataset & dataset,
@@ -451,11 +450,6 @@
     return static_cast<ImplClass *>(this)->_GetPollPeriod(buf);
 }
 
-inline CHIP_ERROR ThreadStackManager::JoinerStart()
-{
-    return static_cast<ImplClass *>(this)->_JoinerStart();
-}
-
 inline void ThreadStackManager::ResetThreadNetworkDiagnosticsCounts()
 {
     static_cast<ImplClass *>(this)->_ResetThreadNetworkDiagnosticsCounts();
diff --git a/src/include/platform/internal/GenericConnectivityManagerImpl_NoThread.h b/src/include/platform/internal/GenericConnectivityManagerImpl_NoThread.h
index c84f216..865feb9 100755
--- a/src/include/platform/internal/GenericConnectivityManagerImpl_NoThread.h
+++ b/src/include/platform/internal/GenericConnectivityManagerImpl_NoThread.h
@@ -44,10 +44,7 @@
 protected:
     // ===== Methods that implement the ConnectivityManager abstract interface.
 
-    ConnectivityManager::ThreadMode _GetThreadMode(void);
-    CHIP_ERROR _SetThreadMode(ConnectivityManager::ThreadMode val);
     bool _IsThreadEnabled(void);
-    bool _IsThreadApplicationControlled(void);
     ConnectivityManager::ThreadDeviceType _GetThreadDeviceType(void);
     CHIP_ERROR _SetThreadDeviceType(ConnectivityManager::ThreadDeviceType deviceType);
     bool _IsThreadAttached(void);
@@ -58,30 +55,12 @@
 };
 
 template <class ImplClass>
-inline ConnectivityManager::ThreadMode GenericConnectivityManagerImpl_NoThread<ImplClass>::_GetThreadMode(void)
-{
-    return ConnectivityManager::kThreadMode_NotSupported;
-}
-
-template <class ImplClass>
-inline CHIP_ERROR GenericConnectivityManagerImpl_NoThread<ImplClass>::_SetThreadMode(ConnectivityManager::ThreadMode val)
-{
-    return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
-}
-
-template <class ImplClass>
 inline bool GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadEnabled(void)
 {
     return false;
 }
 
 template <class ImplClass>
-inline bool GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadApplicationControlled(void)
-{
-    return false;
-}
-
-template <class ImplClass>
 inline bool GenericConnectivityManagerImpl_NoThread<ImplClass>::_IsThreadAttached(void)
 {
     return false;
diff --git a/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.h b/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.h
index 3e0e6c1..f20412f 100755
--- a/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.h
+++ b/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.h
@@ -58,10 +58,7 @@
 
     void _Init();
     void _OnPlatformEvent(const ChipDeviceEvent * event);
-    ConnectivityManager::ThreadMode _GetThreadMode();
-    CHIP_ERROR _SetThreadMode(ConnectivityManager::ThreadMode val);
     bool _IsThreadEnabled();
-    bool _IsThreadApplicationControlled();
     ConnectivityManager::ThreadDeviceType _GetThreadDeviceType();
     CHIP_ERROR _SetThreadDeviceType(ConnectivityManager::ThreadDeviceType deviceType);
 #if CHIP_CONFIG_ENABLE_ICD_SERVER
@@ -82,7 +79,6 @@
     enum class Flags : uint8_t
     {
         kHaveServiceConnectivity = 0x01,
-        kIsApplicationControlled = 0x02
     };
 
     BitFlags<Flags> mFlags;
@@ -103,12 +99,6 @@
 }
 
 template <class ImplClass>
-inline bool GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadApplicationControlled()
-{
-    return mFlags.Has(Flags::kIsApplicationControlled);
-}
-
-template <class ImplClass>
 inline bool GenericConnectivityManagerImpl_Thread<ImplClass>::_IsThreadAttached()
 {
     return ThreadStackMgrImpl().IsThreadAttached();
diff --git a/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp b/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp
index 6df48f5..403ddd6 100644
--- a/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp
+++ b/src/include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp
@@ -57,43 +57,6 @@
 }
 
 template <class ImplClass>
-ConnectivityManager::ThreadMode GenericConnectivityManagerImpl_Thread<ImplClass>::_GetThreadMode()
-{
-    if (mFlags.Has(Flags::kIsApplicationControlled))
-    {
-        return ConnectivityManager::kThreadMode_ApplicationControlled;
-    }
-
-    return ThreadStackMgrImpl().IsThreadEnabled() ? ConnectivityManager::kThreadMode_Enabled
-                                                  : ConnectivityManager::kThreadMode_Disabled;
-}
-
-template <class ImplClass>
-CHIP_ERROR GenericConnectivityManagerImpl_Thread<ImplClass>::_SetThreadMode(ConnectivityManager::ThreadMode val)
-{
-    CHIP_ERROR err = CHIP_NO_ERROR;
-
-    VerifyOrExit(val == ConnectivityManager::kThreadMode_Enabled || val == ConnectivityManager::kThreadMode_Disabled ||
-                     val == ConnectivityManager::kThreadMode_ApplicationControlled,
-                 err = CHIP_ERROR_INVALID_ARGUMENT);
-
-    if (val == ConnectivityManager::kThreadMode_ApplicationControlled)
-    {
-        mFlags.Set(Flags::kIsApplicationControlled);
-    }
-    else
-    {
-        mFlags.Clear(Flags::kIsApplicationControlled);
-
-        err = ThreadStackMgrImpl().SetThreadEnabled(val == ConnectivityManager::kThreadMode_Enabled);
-        SuccessOrExit(err);
-    }
-
-exit:
-    return err;
-}
-
-template <class ImplClass>
 void GenericConnectivityManagerImpl_Thread<ImplClass>::UpdateServiceConnectivity()
 {
     constexpr bool haveServiceConnectivity = false;
diff --git a/src/platform/Linux/ThreadStackManagerImpl.cpp b/src/platform/Linux/ThreadStackManagerImpl.cpp
index 5fd865d..846b2db 100644
--- a/src/platform/Linux/ThreadStackManagerImpl.cpp
+++ b/src/platform/Linux/ThreadStackManagerImpl.cpp
@@ -574,12 +574,6 @@
     return CHIP_ERROR_NOT_IMPLEMENTED;
 }
 
-CHIP_ERROR ThreadStackManagerImpl::_JoinerStart()
-{
-    // TODO: Remove Weave legacy APIs
-    return CHIP_ERROR_NOT_IMPLEMENTED;
-}
-
 CHIP_ERROR ThreadStackManagerImpl::GLibMatterContextCallScan(ThreadStackManagerImpl * self)
 {
     VerifyOrDie(g_main_context_get_thread_default() != nullptr);
diff --git a/src/platform/Linux/ThreadStackManagerImpl.h b/src/platform/Linux/ThreadStackManagerImpl.h
index 8b0cf24..374108d 100755
--- a/src/platform/Linux/ThreadStackManagerImpl.h
+++ b/src/platform/Linux/ThreadStackManagerImpl.h
@@ -117,8 +117,6 @@
 
     CHIP_ERROR _GetPollPeriod(uint32_t & buf);
 
-    CHIP_ERROR _JoinerStart();
-
     void _ResetThreadNetworkDiagnosticsCounts();
 
     CHIP_ERROR _StartThreadScan(NetworkCommissioning::ThreadDriver::ScanCallback * callback);
diff --git a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.h b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
index aa3d2e1..896c5ef 100644
--- a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
+++ b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.h
@@ -145,8 +145,6 @@
     bool IsThreadAttachedNoLock(void);
     bool IsThreadInterfaceUpNoLock(void);
 
-    CHIP_ERROR _JoinerStart(void);
-
 private:
     // ===== Private members for use by this class only.
 
@@ -264,9 +262,6 @@
 #endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD_DNS_CLIENT
 #endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD_SRP_CLIENT
 
-    static void OnJoinerComplete(otError aError, void * aContext);
-    void OnJoinerComplete(otError aError);
-
     inline ImplClass * Impl() { return static_cast<ImplClass *>(this); }
 };
 
diff --git a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp
index 707e1f7..15f9f80 100644
--- a/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp
+++ b/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread.hpp
@@ -1200,78 +1200,6 @@
 }
 
 template <class ImplClass>
-void GenericThreadStackManagerImpl_OpenThread<ImplClass>::OnJoinerComplete(otError aError, void * aContext)
-{
-    static_cast<GenericThreadStackManagerImpl_OpenThread *>(aContext)->OnJoinerComplete(aError);
-}
-
-template <class ImplClass>
-void GenericThreadStackManagerImpl_OpenThread<ImplClass>::OnJoinerComplete(otError aError)
-{
-#if CHIP_PROGRESS_LOGGING
-
-    ChipLogProgress(DeviceLayer, "Join Thread network: %s", otThreadErrorToString(aError));
-
-    if (aError == OT_ERROR_NONE)
-    {
-        otError error = otThreadSetEnabled(mOTInst, true);
-
-        ChipLogProgress(DeviceLayer, "Start Thread network: %s", otThreadErrorToString(error));
-    }
-#endif // CHIP_PROGRESS_LOGGING
-}
-
-template <class ImplClass>
-CHIP_ERROR GenericThreadStackManagerImpl_OpenThread<ImplClass>::_JoinerStart(void)
-{
-    VerifyOrReturnError(mOTInst, CHIP_ERROR_INCORRECT_STATE);
-    CHIP_ERROR error = CHIP_NO_ERROR;
-
-    Impl()->LockThreadStack();
-    VerifyOrExit(!otDatasetIsCommissioned(mOTInst) && otThreadGetDeviceRole(mOTInst) == OT_DEVICE_ROLE_DISABLED,
-                 error = MapOpenThreadError(OT_ERROR_INVALID_STATE));
-    VerifyOrExit(otJoinerGetState(mOTInst) == OT_JOINER_STATE_IDLE, error = MapOpenThreadError(OT_ERROR_BUSY));
-
-    if (!otIp6IsEnabled(mOTInst))
-    {
-        SuccessOrExit(error = MapOpenThreadError(otIp6SetEnabled(mOTInst, true)));
-    }
-
-    {
-        otJoinerDiscerner discerner;
-        // This is dead code to remove, so the placeholder value is OK.
-        // See ThreadStackManagerImpl.
-        uint16_t discriminator = 3840;
-
-        discerner.mLength = 12;
-        discerner.mValue  = discriminator;
-
-        ChipLogProgress(DeviceLayer, "Joiner Discerner: %u", discriminator);
-        otJoinerSetDiscerner(mOTInst, &discerner);
-    }
-
-    {
-        otJoinerPskd pskd;
-        // This is dead code to remove, so the placeholder value is OK.d
-        // See ThreadStackManagerImpl.
-        uint32_t pincode = 20202021;
-
-        snprintf(pskd.m8, sizeof(pskd.m8) - 1, "%09" PRIu32, pincode);
-
-        ChipLogProgress(DeviceLayer, "Joiner PSKd: %s", pskd.m8);
-        error = MapOpenThreadError(otJoinerStart(mOTInst, pskd.m8, NULL, NULL, NULL, NULL, NULL,
-                                                 &GenericThreadStackManagerImpl_OpenThread::OnJoinerComplete, this));
-    }
-
-exit:
-    Impl()->UnlockThreadStack();
-
-    ChipLogProgress(DeviceLayer, "Joiner start: %s", chip::ErrorStr(error));
-
-    return error;
-}
-
-template <class ImplClass>
 void GenericThreadStackManagerImpl_OpenThread<ImplClass>::_UpdateNetworkStatus()
 {
     VerifyOrReturn(mOTInst);
diff --git a/src/platform/Tizen/ThreadStackManagerImpl.cpp b/src/platform/Tizen/ThreadStackManagerImpl.cpp
index e6252d9..f92676b 100644
--- a/src/platform/Tizen/ThreadStackManagerImpl.cpp
+++ b/src/platform/Tizen/ThreadStackManagerImpl.cpp
@@ -521,12 +521,6 @@
     return CHIP_ERROR_NOT_IMPLEMENTED;
 }
 
-CHIP_ERROR ThreadStackManagerImpl::_JoinerStart()
-{
-    ChipLogError(DeviceLayer, "Not implemented");
-    return CHIP_ERROR_NOT_IMPLEMENTED;
-}
-
 CHIP_ERROR ThreadStackManagerImpl::_StartThreadScan(NetworkCommissioning::ThreadDriver::ScanCallback * callback)
 {
     ChipLogError(DeviceLayer, "Not implemented");
diff --git a/src/platform/Tizen/ThreadStackManagerImpl.h b/src/platform/Tizen/ThreadStackManagerImpl.h
index 07092f4..e4b256c 100644
--- a/src/platform/Tizen/ThreadStackManagerImpl.h
+++ b/src/platform/Tizen/ThreadStackManagerImpl.h
@@ -103,8 +103,6 @@
 
     CHIP_ERROR _GetPollPeriod(uint32_t & buf);
 
-    CHIP_ERROR _JoinerStart();
-
     void _ResetThreadNetworkDiagnosticsCounts();
 
     CHIP_ERROR _StartThreadScan(NetworkCommissioning::ThreadDriver::ScanCallback * callback);
diff --git a/src/platform/webos/ThreadStackManagerImpl.cpp b/src/platform/webos/ThreadStackManagerImpl.cpp
index 3022519..fdb49ce 100644
--- a/src/platform/webos/ThreadStackManagerImpl.cpp
+++ b/src/platform/webos/ThreadStackManagerImpl.cpp
@@ -532,12 +532,6 @@
     return CHIP_ERROR_NOT_IMPLEMENTED;
 }
 
-CHIP_ERROR ThreadStackManagerImpl::_JoinerStart()
-{
-    // TODO: Remove Weave legacy APIs
-    return CHIP_ERROR_NOT_IMPLEMENTED;
-}
-
 CHIP_ERROR ThreadStackManagerImpl::_StartThreadScan(ThreadDriver::ScanCallback * callback)
 {
     // There is another ongoing scan request, reject the new one.
diff --git a/src/platform/webos/ThreadStackManagerImpl.h b/src/platform/webos/ThreadStackManagerImpl.h
index a21d4cb..59b1a8e 100644
--- a/src/platform/webos/ThreadStackManagerImpl.h
+++ b/src/platform/webos/ThreadStackManagerImpl.h
@@ -105,8 +105,6 @@
 
     CHIP_ERROR _GetPollPeriod(uint32_t & buf);
 
-    CHIP_ERROR _JoinerStart();
-
     void _ResetThreadNetworkDiagnosticsCounts();
 
     CHIP_ERROR _StartThreadScan(NetworkCommissioning::ThreadDriver::ScanCallback * callback);