Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
fb35177
Update the event message
rosahay-silabs Sep 10, 2026
3517942
Rename `kWFXSystemEvent` to `kPlatformSLEvent`
rosahay-silabs Sep 10, 2026
dcdaaf3
Add kSLSystemEvent to PublicPlatformSpecificEventTypes enum
rosahay-silabs Sep 10, 2026
6b2d9a4
TEMP: commit code
rosahay-silabs Sep 10, 2026
2e773bf
bugfix name
rosahay-silabs Sep 11, 2026
d2edeae
Replace direct call to EnableStationMode with SetWiFiStationMode for …
rosahay-silabs Sep 11, 2026
ab29dcb
revert to `val`
rosahay-silabs Sep 11, 2026
a879333
Adds fix to make `SL_ONNETWORK_PAIRING` work as default SSID and PSK …
rosahay-silabs Sep 11, 2026
e44d5d0
Remove temporary commit configuration call in WiFi network connection…
rosahay-silabs Sep 12, 2026
ee46c17
Adding comments for variables
rosahay-silabs Sep 11, 2026
f815f0b
Enhance WiFi connection handling by disconnecting and clearing creden…
rosahay-silabs Sep 11, 2026
478f5c2
Refactor WiFi event handling in ConnectivityManagerImpl. Update log m…
rosahay-silabs Sep 12, 2026
77978db
Add method to retrieve last disconnection reason in WifiInterface. In…
rosahay-silabs Sep 12, 2026
c6aca24
Improve readability
rosahay-silabs Sep 12, 2026
9d61b3e
refactor(silabs-wifi): move reconnect to ConnectivityMgr
rosahay-silabs Sep 12, 2026
2fcfdf2
refactor(silabs-wifi): move reconnect to ConnectivityMgr
rosahay-silabs Sep 12, 2026
d969a55
refactor(silabs-wifi): simplify logging and error handling in WiFi st…
rosahay-silabs Sep 13, 2026
e1cf814
refactor(silabs-wifi): enhance WiFi station mode management with stat…
rosahay-silabs Sep 13, 2026
779f031
refactor(silabs-wifi): implement mapping of disconnection reasons to …
rosahay-silabs Sep 14, 2026
aeffd16
refactor(silabs-wifi): introduce ResetReconnectionWiFiStationState me…
rosahay-silabs Sep 15, 2026
058fb86
refactor(silabs-wifi): add stub for disabling station mode
rosahay-silabs Sep 15, 2026
fe95232
clean up comments
rosahay-silabs Sep 15, 2026
1279dc2
refactor(silabs-wifi): streamline disconnection handling by using dir…
rosahay-silabs Sep 15, 2026
d7bdf7e
refactor(silabs-wifi): simplify disconnection logic by consolidating …
rosahay-silabs Sep 15, 2026
7f96497
refactor(silabs-wifi): update MapToNetworkCommissioningStatusEnum to …
rosahay-silabs Sep 15, 2026
2048dde
Adds fix for #26861
rosahay-silabs Sep 15, 2026
b8a63c9
Adds fix for #26861
rosahay-silabs Sep 15, 2026
c5385f8
refactor(silabs-wifi): enable WiFi station mode during network connec…
rosahay-silabs Sep 15, 2026
79682c9
fix(silabs-wifi): return error from _Init method instead of CHIP_NO_E…
rosahay-silabs Sep 15, 2026
eb843fa
refactor(silabs-wifi): update log messages for WiFi events to improve…
rosahay-silabs Sep 15, 2026
4b91112
refactor(silabs-wifi): enhance logging for application-controlled WiF…
rosahay-silabs Sep 15, 2026
ad12e09
refactor(silabs-wifi): implement configuration commit and revert meth…
rosahay-silabs Sep 15, 2026
7be8879
refactor(silabs-wifi): improve error handling and logging in WiFi net…
rosahay-silabs Sep 15, 2026
a5e473e
Apply suggestion from @jmartinez-silabs
rosahay-silabs Sep 16, 2026
50183fe
refactor(silabs-wifi): consolidate disconnection logic into a dedicat…
rosahay-silabs Sep 16, 2026
c37c0ff
feat(silabs-wifi): implement auto-reconnect feature for WiFi station …
rosahay-silabs Sep 16, 2026
6623e29
feat(silabs-wifi): update WiFi station state management to reflect co…
rosahay-silabs Sep 16, 2026
9c97214
refactor(silabs-wifi): streamline WiFi network joining process and en…
rosahay-silabs Sep 16, 2026
592e0e7
feat(silabs-wifi): integrate WiFi driver setup into Matter shell init…
rosahay-silabs Sep 16, 2026
432a3d2
refactor(silabs-wifi): remove redundant event posting in connectivity…
rosahay-silabs Sep 16, 2026
80402e6
fix(silabs-wifi): reset reconnect count to prevent unintended connect…
rosahay-silabs Sep 16, 2026
d1b177a
refactor(silabs-wifi): enhance WiFi station state management by remov…
rosahay-silabs Sep 16, 2026
6f11512
refactor(silabs-wifi): rename auto-reconnect variable to auto-connect…
rosahay-silabs Sep 16, 2026
243dcba
refactor(silabs-wifi): improve WiFi station state handling and loggin…
rosahay-silabs Sep 16, 2026
6bfef30
refactor(silabs-wifi): enhance network validation checks and improve …
rosahay-silabs Sep 17, 2026
e5de36f
refactor(silabs-wifi): improve WiFi station state management and enha…
rosahay-silabs Sep 17, 2026
9bd64d1
Restyled by whitespace
restyled-commits Sep 17, 2026
5133917
refactor(silabs-wifi): enhance logging during station state transitio…
rosahay-silabs Sep 17, 2026
fde5f57
refactor(silabs-wifi): add detailed logging for disconnection events …
rosahay-silabs Sep 17, 2026
2edafaf
refactor(silabs-wifi): add detailed logging for state transitions and…
rosahay-silabs Sep 17, 2026
c52d854
refactor(silabs-wifi): update ChangeWiFiStationState to accept driveS…
rosahay-silabs Sep 18, 2026
3be7486
refactor(silabs-wifi): improve station connection logic and streamlin…
rosahay-silabs Sep 18, 2026
2d85061
Restyled by whitespace
rosahay-silabs Sep 18, 2026
d271b46
refactor(silabs-wifi): remove unused WiFi shell command includes and …
rosahay-silabs Sep 19, 2026
aa0d6d8
refactor(silabs-wifi): streamline error handling in WiFi station init…
rosahay-silabs Sep 19, 2026
89658b6
refactor(silabs-wifi): enhance error handling in WiFi state managemen…
rosahay-silabs Sep 19, 2026
76881db
refactor(silabs-wifi): improve error handling by replacing ReturnOnFa…
rosahay-silabs Sep 20, 2026
13b08cc
refactor(silabs-wifi): simplify configuration retrieval in RevertConf…
rosahay-silabs Sep 21, 2026
1d88a90
refactor(silabs-wifi): enhance WiFi state management by adding networ…
rosahay-silabs Sep 22, 2026
553338d
refactor(silabs-wifi): refine WiFi state transition logic and enhance…
rosahay-silabs Sep 22, 2026
2cc039a
refactor(silabs-wifi): enhance logging in DriveStationState and ensur…
rosahay-silabs Sep 22, 2026
f0ebff6
refactor(silabs-wifi): enhance WiFi station state management by intro…
rosahay-silabs Sep 22, 2026
cc5e992
refactor(silabs-wifi): update auto-connect logic and clean up TODOs r…
rosahay-silabs Sep 22, 2026
9f574d0
refactor(silabs-wifi): improve WiFi disconnection handling by introdu…
rosahay-silabs Sep 22, 2026
dcb4084
refactor(silabs-wifi): remove outdated TODO comments related to LIT c…
rosahay-silabs Sep 23, 2026
393abde
refactor(silabs-wifi): introduce disconnect pending state to improve …
rosahay-silabs Sep 23, 2026
7df0bd3
refactor(silabs-wifi): enhance disconnection handling by refining sta…
rosahay-silabs Sep 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/platform/silabs/CHIPDevicePlatformEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ namespace DeviceEventType {
*/
enum PublicPlatformSpecificEventTypes
{
/* None currently defined */
kSLSystemEvent = kRange_PublicPlatformSpecific,
};

/**
* Enumerates Silabs platform-specific event types that are internal to the Chip Device Layer.
*/
enum InternalPlatformSpecificEventTypes
{
kWFXSystemEvent = kRange_InternalPlatformSpecific,
kPlatformSLEvent = kRange_InternalPlatformSpecific,
};

} // namespace DeviceEventType
Expand Down
6 changes: 5 additions & 1 deletion src/platform/silabs/ConnectivityManagerImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,10 +117,14 @@ class ConnectivityManagerImpl final : public ConnectivityManager,

// ===== Private members reserved for use by this class only.
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION
System::Clock::Timestamp mLastStationConnectFailTime;
// variables for tracking the station mode and state
WiFiStationMode mWiFiStationMode;
WiFiStationState mWiFiStationState;
// variables for tracking the last connection failure time and reconnect interval
System::Clock::Timestamp mLastStationConnectFailTime;
System::Clock::Timeout mWiFiStationReconnectInterval;
uint8_t mWiFiStationReconnectCount;
// flags for tracking the internet connectivity state
BitFlags<Flags> mFlags;

void DriveStationState(void);
Expand Down
320 changes: 163 additions & 157 deletions src/platform/silabs/ConnectivityManagerImpl_WIFI.cpp

Large diffs are not rendered by default.

55 changes: 30 additions & 25 deletions src/platform/silabs/NetworkCommissioningWiFiDriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,24 +45,32 @@ CHIP_ERROR SlWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChangeC
mpConnectCallback = nullptr;
mpStatusChangeCallback = networkStatusChangeCallback;
mDriver = this;
// TODO: default to SL_WIFI_SSID and SL_WIFI_PSK if not defined
#ifdef SL_ONNETWORK_PAIRING
memcpy(&mSavedNetwork.ssid[0], SL_WIFI_SSID, sizeof(SL_WIFI_SSID));
memcpy(&mSavedNetwork.key[0], SL_WIFI_PSK, sizeof(SL_WIFI_PSK));
mSavedNetwork.keyLen = sizeof(SL_WIFI_PSK);
mSavedNetwork.ssidLen = sizeof(SL_WIFI_SSID);
err = CHIP_NO_ERROR;
#else
// If reading fails, wifi is not provisioned, no need to go further.
err = SilabsConfig::ReadConfigValueBin(SilabsConfig::kConfigKey_WiFiSSID, mSavedNetwork.ssid, sizeof(mSavedNetwork.ssid),
mSavedNetwork.ssidLen);
if (err != CHIP_NO_ERROR)
{
#if defined(SL_ONNETWORK_PAIRING) && SL_ONNETWORK_PAIRING
memcpy(&mSavedNetwork.ssid, SL_WIFI_SSID, sizeof(SL_WIFI_SSID));
mSavedNetwork.ssidLen = sizeof(SL_WIFI_SSID);

err = CHIP_NO_ERROR;
#endif // SL_ONNETWORK_PAIRING
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
}
VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_NO_ERROR);

err = SilabsConfig::ReadConfigValueBin(SilabsConfig::kConfigKey_WiFiPSK, mSavedNetwork.key, sizeof(mSavedNetwork.key),
mSavedNetwork.keyLen);
VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_NO_ERROR);
if (err != CHIP_NO_ERROR)
{
#if defined(SL_ONNETWORK_PAIRING) && SL_ONNETWORK_PAIRING
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
memcpy(&mSavedNetwork.key, SL_WIFI_PSK, sizeof(SL_WIFI_PSK));
mSavedNetwork.keyLen = sizeof(SL_WIFI_PSK);

err = CHIP_NO_ERROR;
#endif // SL_ONNETWORK_PAIRING
}
VerifyOrReturnError(err == CHIP_NO_ERROR, CHIP_NO_ERROR);
mStagingNetwork = mSavedNetwork;
err = ConnectWiFiNetwork(reinterpret_cast<const char *>(mSavedNetwork.ssid), mSavedNetwork.ssidLen,
reinterpret_cast<const char *>(mSavedNetwork.key), mSavedNetwork.keyLen);
Expand Down Expand Up @@ -100,17 +108,19 @@ Status SlWiFiDriver::AddOrUpdateNetwork(ByteSpan ssid, ByteSpan credentials, Mut
uint8_t & outNetworkIndex)
{
outDebugText.reduce_size(0);
// since we only support one network, we always return 0
outNetworkIndex = 0;
// using ssid as the networkId
VerifyOrReturnError(mStagingNetwork.ssidLen == 0 || NetworkMatch(mStagingNetwork, ssid), Status::kBoundsExceeded);
VerifyOrReturnError(credentials.size() <= sizeof(mStagingNetwork.key), Status::kOutOfRange);
Comment thread
rosahay-silabs marked this conversation as resolved.
VerifyOrReturnError(ssid.size() <= sizeof(mStagingNetwork.ssid), Status::kOutOfRange);

VerifyOrReturnError(ssid.data() != nullptr, Status::kNetworkNotFound);
VerifyOrReturnError(ssid.data() != nullptr, Status::kNetworkIDNotFound);
MutableByteSpan ssidSpan(mStagingNetwork.ssid, sizeof(mStagingNetwork.ssid));
VerifyOrReturnError(CopySpanToMutableSpan(ssid, ssidSpan) == CHIP_NO_ERROR, Status::kBoundsExceeded);
mStagingNetwork.ssidLen = ssid.size();

VerifyOrReturnError(credentials.data() != nullptr, Status::kNetworkNotFound);
VerifyOrReturnError(credentials.data() != nullptr, Status::kNetworkIDNotFound);
MutableByteSpan keySpan(mStagingNetwork.key, sizeof(mStagingNetwork.key));
VerifyOrReturnError(CopySpanToMutableSpan(credentials, keySpan) == CHIP_NO_ERROR, Status::kBoundsExceeded);
mStagingNetwork.keyLen = credentials.size();
Expand Down Expand Up @@ -140,8 +150,10 @@ Status SlWiFiDriver::ReorderNetwork(ByteSpan networkId, uint8_t index, MutableCh

CHIP_ERROR SlWiFiDriver::ConnectWiFiNetwork(const char * ssid, uint8_t ssidLen, const char * key, uint8_t keyLen)
{
// if the WiFi station is provisioned, disconnect it and clear the credentials
if (ConnectivityMgr().IsWiFiStationProvisioned())
{
ConnectivityMgr().ClearWiFiStationProvision();
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
ChipLogProgress(DeviceLayer, "Disconnecting for current wifi");
WifiInterface::GetInstance().TriggerDisconnection();
}
Expand All @@ -158,11 +170,11 @@ CHIP_ERROR SlWiFiDriver::ConnectWiFiNetwork(const char * ssid, uint8_t ssidLen,
memcpy(wifiConfig.key, key, keyLen);
wifiConfig.keyLen = keyLen;

// dummy value which is overridden by the actual security value when connecting to the access point
wifiConfig.security.Set(chip::app::Clusters::NetworkCommissioning::WiFiSecurityBitmap::kWpa2Personal);

ChipLogProgress(NetworkProvisioning, "Setting up connection for WiFi SSID: %s", NullTerminated(ssid, ssidLen).c_str());
// Resetting the retry connection state machine for a new access point connection
WifiInterface::GetInstance().ResetConnectionRetryInterval();

ReturnErrorOnFailure(WifiInterface::GetInstance().SetWifiCredentials(wifiConfig));
ReturnErrorOnFailure(ConnectivityMgr().SetWiFiStationMode(ConnectivityManager::kWiFiStationMode_Disabled));
ReturnErrorOnFailure(ConnectivityMgr().SetWiFiStationMode(ConnectivityManager::kWiFiStationMode_Enabled));
Expand All @@ -172,22 +184,14 @@ CHIP_ERROR SlWiFiDriver::ConnectWiFiNetwork(const char * ssid, uint8_t ssidLen,
// TODO: Re-write implementation with proper driver based callback
void SlWiFiDriver::UpdateNetworkingStatus()
{
if (mpStatusChangeCallback == nullptr)
{
ChipLogError(NetworkProvisioning, "networkStatusChangeCallback is nil");
return;
}

if (mStagingNetwork.ssidLen == 0)
{
ChipLogError(NetworkProvisioning, "ssidLen is 0");
return;
}
VerifyOrReturn(mpStatusChangeCallback != nullptr);
VerifyOrReturn(mStagingNetwork.ssidLen != 0);

ByteSpan networkId = ByteSpan((const unsigned char *) mStagingNetwork.ssid, mStagingNetwork.ssidLen);
if (!WifiInterface::GetInstance().IsStationConnected())
{
// TODO: https://github.com/project-chip/connectedhomeip/issues/26861
// TODO: use the mLastDisconnectionReason to set the networking status
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
mpStatusChangeCallback->OnNetworkingStatusChange(Status::kUnknownError, MakeOptional(networkId),
MakeOptional(static_cast<int32_t>(SL_STATUS_FAIL)));
return;
Expand All @@ -199,7 +203,7 @@ void SlWiFiDriver::OnConnectWiFiNetwork()
{
if (mpConnectCallback)
{
TEMPORARY_RETURN_IGNORED CommitConfiguration();
// TODO: use the mLastDisconnectionReason to set the networking status
mpConnectCallback->OnResult(Status::kSuccess, CharSpan(), 0);
mpConnectCallback = nullptr;
}
Expand All @@ -226,6 +230,7 @@ void SlWiFiDriver::ConnectNetwork(ByteSpan networkId, ConnectCallback * callback
{
ChipLogError(NetworkProvisioning, "Failed to connect to WiFi network: %" CHIP_ERROR_FORMAT, err.Format());
mpConnectCallback = nullptr;
// TODO: use the mLastDisconnectionReason to set the networking status
callback->OnResult(networkingStatus, CharSpan(), 0);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/platform/silabs/PlatformManagerImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ void HandleWFXSystemEvent(sl_wfx_generic_message_t * eventData)

ChipDeviceEvent event;
memset(&event, 0, sizeof(event));
event.Type = DeviceEventType::kWFXSystemEvent;
event.Type = DeviceEventType::kPlatformSLEvent;

switch (eventData->header.id)
{
Expand Down
66 changes: 60 additions & 6 deletions src/platform/silabs/wifi/SiWx/WifiInterfaceImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
#include <inet/UDPEndPointImplLwIP.h>
// TODO: Remove nogncheck once we have a proper way to include this file.
#include <platform/CHIPDeviceLayer.h> // nogncheck
#endif // SL_INET_CONFIG_UDP_LWIP_QUEUE_UNTIL_NETIF_READY
#endif // SL_INET_CONFIG_UDP_LWIP_QUEUE_UNTIL_NETIF_READY
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
#include <lib/support/CHIPMem.h>
#include <lib/support/CHIPMemString.h>
#include <lib/support/logging/CHIPLogging.h>
Expand Down Expand Up @@ -709,7 +709,8 @@ sl_status_t WifiInterfaceImpl::JoinWifiNetwork(void)
#endif // SL_MATTER_NEUTRAL_LESS_SWITCH_WIFI

wfx_rsi.dev_state.Clear(WifiInterface::WifiState::kStationConnecting).Clear(WifiInterface::WifiState::kStationConnected);
ScheduleConnectionAttempt();
mLastDisconnectionReason = static_cast<uint16_t>(status);
WifiInterface::NotifyDisconnection(mLastDisconnectionReason);

return status;
}
Expand Down Expand Up @@ -742,7 +743,10 @@ sl_status_t WifiInterfaceImpl::JoinCallback(sl_wifi_event_t event, char * result
ChipLogError(DeviceLayer, "JoinCallback: failed: 0x%lx", status);
wfx_rsi.dev_state.Clear(WifiInterface::WifiState::kStationConnected);

mInstance.ScheduleConnectionAttempt();
uint16_t reason = static_cast<uint16_t>(status);
WifiInterfaceImpl & self = WifiInterfaceImpl::GetInstance();
self.mLastDisconnectionReason = reason;
self.NotifyDisconnection(self.mLastDisconnectionReason);
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
}

return status;
Expand Down Expand Up @@ -848,6 +852,8 @@ sl_status_t WifiInterfaceImpl::TriggerPlatformWifiDisconnection()
sl_status_t status = sl_net_down(SL_NET_WIFI_CLIENT_INTERFACE);
VerifyOrReturnError(status == SL_STATUS_OK, status, ChipLogError(DeviceLayer, "sl_net_down failed: 0x%lx", status));

mLastDisconnectionReason = static_cast<uint16_t>(status);
WifiInterface::NotifyDisconnection(mLastDisconnectionReason);
return SL_STATUS_OK;
}

Expand Down Expand Up @@ -893,8 +899,6 @@ CHIP_ERROR WifiInterfaceImpl::InitLitPrecheckInReconnectTimer()

CHIP_ERROR WifiInterfaceImpl::ConfigureLITConnect()
{
ResetConnectionRetryInterval();

VerifyOrReturnError(IsWifiProvisioned(), CHIP_NO_ERROR);

VerifyOrReturnError(!IsStationConnected(), CHIP_NO_ERROR);
Expand Down Expand Up @@ -1129,9 +1133,10 @@ CHIP_ERROR WifiInterfaceImpl::StartWifiTask()
return CHIP_NO_ERROR;
}

void WifiInterfaceImpl::ConfigureStationMode()
CHIP_ERROR WifiInterfaceImpl::EnableStationMode()
{
wfx_rsi.dev_state.Set(WifiState::kStationMode);
return CHIP_NO_ERROR;
Comment thread
rosahay-silabs marked this conversation as resolved.
}

bool WifiInterfaceImpl::IsStationModeEnabled()
Expand Down Expand Up @@ -1229,6 +1234,55 @@ CHIP_ERROR WifiInterfaceImpl::ConnectToAccessPoint()
return CHIP_NO_ERROR;
}

chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatusEnum
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated
WifiInterfaceImpl::MapToNetworkCommissioningStatusEnum(uint32_t reason)
{
/*
kSuccess
kOutOfRange
kBoundsExceeded
kNetworkIDNotFound
kDuplicateNetworkID
kNetworkNotFound
kRegulatoryError
kAuthFailure
kUnsupportedSecurity
kOtherConnectionFailure
kIPV6Failed
kIPBindFailed
kUnknownError
*/
using Status = chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatusEnum;
Comment thread
rosahay-silabs marked this conversation as resolved.
Outdated

switch (reason)
{
case SL_STATUS_OK:
return Status::kSuccess;
case SL_STATUS_SI91X_NO_AP_FOUND:
case SL_STATUS_SI91X_BEACON_MISSED_FROM_AP_DURING_JOIN:
case SL_STATUS_SI91X_REJOIN_FAILURE:
return Status::kNetworkNotFound;
case SL_STATUS_SI91X_INVALID_CHANNEL:
return Status::kRegulatoryError;
case SL_STATUS_SI91X_INVALID_PSK_IN_WEP_SECURITY:
case SL_STATUS_SI91X_DEAUTHENTICATION_RECEIVED_FROM_AP:
case SL_STATUS_SI91X_ASSOCIATION_FAILED:
case SL_STATUS_SI91X_JOIN_AUTHENTICATION_FAILED:
case SL_STATUS_SI91X_MAX_BEACON_MISCOUNT:
case SL_STATUS_SI91X_DEAUTH_REQUEST_FROM_SUPPLICANT:
case SL_STATUS_SI91X_DEAUTH_REQUEST_FROM_FROM_AP:
case SL_STATUS_SI91X_AUTHENTICATION_TIMEOUT:
return Status::kAuthFailure;
case SL_STATUS_SI91X_INVALID_SECURITY_MODE_IN_JOIN_COMMAND:
return Status::kUnsupportedSecurity;
case SL_STATUS_SI91X_ASSOCIATION_TIMEOUT:
case SL_STATUS_SI91X_FOUR_WAY_HANDSHAKE_FAILED:
return Status::kOtherConnectionFailure;
default:
return Status::kUnknownError;
}
}

bool WifiInterfaceImpl::HasAnIPv4Address()
{
bool hasIPv4 = false;
Expand Down
4 changes: 2 additions & 2 deletions src/platform/silabs/wifi/SiWx/WifiInterfaceImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class WifiInterfaceImpl final : public WifiInterface
CHIP_ERROR GetMacAddress(sl_wfx_interface_t interface, chip::MutableByteSpan & addr) override;
CHIP_ERROR StartNetworkScan(chip::ByteSpan ssid, ScanCallback callback) override;
CHIP_ERROR StartWifiTask() override;
void ConfigureStationMode() override;
CHIP_ERROR EnableStationMode() override;
bool IsStationConnected() override;
bool IsStationModeEnabled() override;
bool IsStationReady() override;
Expand All @@ -70,7 +70,7 @@ class WifiInterfaceImpl final : public WifiInterface
CHIP_ERROR GetAccessPointInfo(chip::DeviceLayer::NetworkCommissioning::WiFiScanResponse & info) override;
CHIP_ERROR GetAccessPointExtendedInfo(wfx_wifi_scan_ext_t & info) override;
CHIP_ERROR ResetCounters() override;

chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatusEnum MapToNetworkCommissioningStatusEnum(uint32_t reason) override;
#if CHIP_CONFIG_ENABLE_ICD_SERVER
CHIP_ERROR ConfigureBroadcastFilter(bool enableBroadcastFilter) override;
CHIP_ERROR ConfigurePowerSave(PowerSaveInterface::PowerSaveConfiguration configuration, uint32_t listenInterval) override;
Expand Down
Loading
Loading