Skip to content

Commit 391dd07

Browse files
committed
Change by following the review's comment:
* Change the name of option to [pair_mode]-[network] * Remove redundant compile flags * Move to start the Wi-Fi Manager in initialization stage * Unconditional the defintion * Add the cancel-publish / cancel-subscribe dbus interface * Fix bugs: - Redundant callback function registration - Remove the incorrect StackLock Signed-off-by: Lo,Chin-Ran <chin-ran.lo@nxp.com>
1 parent 1092e48 commit 391dd07

19 files changed

+184
-127
lines changed

examples/chip-tool/commands/pairing/Commands.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ class PairWiFiPAF : public PairingCommand
178178
{
179179
public:
180180
PairWiFiPAF(CredentialIssuerCommands * credsIssuerConfig) :
181-
PairingCommand("wifi-paf", PairingMode::WiFiPAF, PairingNetworkType::WiFi, credsIssuerConfig)
181+
PairingCommand("wifipaf-wifi", PairingMode::WiFiPAF, PairingNetworkType::WiFi, credsIssuerConfig)
182182
{}
183183
};
184184
#endif

examples/chip-tool/commands/payload/SetupPayloadParseCommand.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,14 @@ CHIP_ERROR SetupPayloadParseCommand::Print(chip::SetupPayload payload)
108108
}
109109
humanFlags.Add("On IP network");
110110
}
111+
if (payload.rendezvousInformation.Value().Has(RendezvousInformationFlag::kWiFiPAF))
112+
{
113+
if (!humanFlags.Empty())
114+
{
115+
humanFlags.Add(", ");
116+
}
117+
humanFlags.Add("WIFIPAF");
118+
}
111119
}
112120
else
113121
{

examples/platform/linux/AppMain.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -360,15 +360,16 @@ int ChipLinuxAppInit(int argc, char * const argv[], OptionSet * customOptions,
360360
CHIP_ERROR err = CHIP_NO_ERROR;
361361
#if CONFIG_NETWORK_LAYER_BLE
362362
RendezvousInformationFlags rendezvousFlags = RendezvousInformationFlag::kBLE;
363-
#elif CHIP_DEVICE_CONFIG_ENABLE_WPA && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
364-
RendezvousInformationFlags rendezvousFlags = RendezvousInformationFlag::kWiFiPAF;
365363
#else // CONFIG_NETWORK_LAYER_BLE
366364
RendezvousInformationFlag rendezvousFlags = RendezvousInformationFlag::kOnNetwork;
367365
#endif // CONFIG_NETWORK_LAYER_BLE
368366

369367
#ifdef CONFIG_RENDEZVOUS_MODE
370368
rendezvousFlags = static_cast<RendezvousInformationFlags>(CONFIG_RENDEZVOUS_MODE);
371369
#endif
370+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
371+
rendezvousFlags.Set(RendezvousInformationFlag::kWiFiPAF);
372+
#endif
372373

373374
err = Platform::MemoryInit();
374375
SuccessOrExit(err);

examples/platform/linux/Options.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ OptionDef sDeviceOptionDefs[] = {
121121
{ "wifi", kNoArgument, kDeviceOption_WiFi },
122122
{ "wifi-supports-5g", kNoArgument, kDeviceOption_WiFiSupports5g },
123123
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
124-
{ "wifi-paf", kNoArgument, kDeviceOption_WiFi_PAF },
124+
{ "wifipaf", kNoArgument, kDeviceOption_WiFi_PAF },
125125
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
126126
#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA
127127
#if CHIP_ENABLE_OPENTHREAD
@@ -195,11 +195,11 @@ const char * sDeviceOptionHelp =
195195
" --wifi-supports-5g\n"
196196
" Indicate that local Wi-Fi hardware should report 5GHz support.\n"
197197
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
198-
#if (CHIP_DEVICE_CONFIG_ENABLE_WIFI && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF)
198+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
199199
"\n"
200-
" --wifi-paf\n"
200+
" --wifipaf\n"
201201
" Enable Wi-Fi PAF via wpa_supplicant.\n"
202-
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
202+
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
203203
#if CHIP_ENABLE_OPENTHREAD
204204
"\n"
205205
" --thread\n"

src/app/server/CommissioningWindowManager.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ void CommissioningWindowManager::OnPlatformEvent(const DeviceLayer::ChipDeviceEv
7171
#if CONFIG_NETWORK_LAYER_BLE && CHIP_DEVICE_CONFIG_SUPPORTS_CONCURRENT_CONNECTION
7272
// If in NonConcurrentConnection, this will already have been completed
7373
mServer->GetBleLayerObject()->CloseAllBleConnections();
74+
#endif
75+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
76+
DeviceLayer::ConnectivityMgr().SetWiFiPAFAdvertisingEnabled(false);
7477
#endif
7578
}
7679
else if (event->Type == DeviceLayer::DeviceEventType::kFailSafeTimerExpired)

src/controller/AutoCommissioner.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -587,14 +587,13 @@ CHIP_ERROR AutoCommissioner::StartCommissioning(DeviceCommissioner * commissione
587587
mCommissioneeDeviceProxy = proxy;
588588
mNeedsNetworkSetup =
589589
(mCommissioneeDeviceProxy->GetSecureSession().Value()->AsSecureSession()->GetPeerAddress().GetTransportType() ==
590-
Transport::Type::kBle)
591-
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
592-
|| (mCommissioneeDeviceProxy->GetSecureSession().Value()->AsSecureSession()->GetPeerAddress().GetTransportType() ==
593-
Transport::Type::kWiFiPAF)
594-
#endif
595-
;
590+
Transport::Type::kBle);
596591
CHIP_ERROR err = CHIP_NO_ERROR;
597592
CommissioningStage nextStage = GetNextCommissioningStage(CommissioningStage::kSecurePairing, err);
593+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
594+
mNeedsNetworkSetup = mNeedsNetworkSetup || (mCommissioneeDeviceProxy->GetSecureSession().Value()->AsSecureSession()->GetPeerAddress().GetTransportType() ==
595+
Transport::Type::kWiFiPAF);
596+
#endif
598597
mCommissioner->PerformCommissioningStep(mCommissioneeDeviceProxy, nextStage, mParams, this, GetEndpoint(nextStage),
599598
GetCommandTimeout(mCommissioneeDeviceProxy, nextStage));
600599
return CHIP_NO_ERROR;

src/controller/CHIPDeviceController.cpp

+5-21
Original file line numberDiff line numberDiff line change
@@ -819,29 +819,15 @@ CHIP_ERROR DeviceCommissioner::EstablishPASEConnection(NodeId remoteDeviceId, Re
819819
if (DeviceLayer::ConnectivityMgr().GetWiFiPAF()->GetWiFiPAFState() != Transport::WiFiPAFBase::State::kConnected)
820820
{
821821
ChipLogProgress(Controller, "WiFi-PAF: Subscribing the NAN-USD devices");
822-
static constexpr useconds_t kWiFiStartCheckTimeUsec = WIFI_START_CHECK_TIME_USEC;
823-
static constexpr uint8_t kWiFiStartCheckAttempts = WIFI_START_CHECK_ATTEMPTS;
824-
825-
DeviceLayer::ConnectivityMgrImpl().StartWiFiManagement();
826-
{
827-
for (int cnt = 0; cnt < kWiFiStartCheckAttempts; cnt++)
828-
{
829-
if (DeviceLayer::ConnectivityMgrImpl().IsWiFiManagementStarted())
830-
{
831-
break;
832-
}
833-
usleep(kWiFiStartCheckTimeUsec);
834-
}
835-
}
836822
if (!DeviceLayer::ConnectivityMgrImpl().IsWiFiManagementStarted())
837823
{
838-
ChipLogError(NotSpecified, "Wi-Fi Management taking too long to start - device configuration will be reset.");
824+
ChipLogError(Controller, "Wi-Fi Management should have be started now.");
825+
ExitNow(CHIP_ERROR_INTERNAL);
839826
}
840827
mRendezvousParametersForDeviceDiscoveredOverWiFiPAF = params;
841-
DeviceLayer::ConnectivityMgr().WiFiPAFConnect(this, OnWiFiPAFSubscribeComplete, OnWiFiPAFSubscribeError);
828+
DeviceLayer::ConnectivityMgr().WiFiPAFConnect(params.GetSetupDiscriminator().value(), this, OnWiFiPAFSubscribeComplete, OnWiFiPAFSubscribeError);
842829
ExitNow(CHIP_NO_ERROR);
843830
}
844-
ChipLogProgress(Controller, "WiFi-PAF: Request to subscribe the NAN-USD device complete");
845831
}
846832
#endif
847833
session = mSystemState->SessionMgr()->CreateUnauthenticatedSession(params.GetPeerAddress(), params.GetMRPConfig());
@@ -917,16 +903,14 @@ void DeviceCommissioner::OnWiFiPAFSubscribeComplete(void * appState)
917903
auto self = static_cast<DeviceCommissioner *>(appState);
918904
auto device = self->mDeviceInPASEEstablishment;
919905

920-
ChipLogProgress(Controller, "WiFi-PAF: Subscription Completed!");
921906
if (nullptr != device && device->GetDeviceTransportType() == Transport::Type::kWiFiPAF)
922907
{
908+
ChipLogProgress(Controller, "WiFi-PAF: Subscription Completed, dev_id = %lu", device->GetDeviceId());
923909
auto remoteId = device->GetDeviceId();
924910
auto params = self->mRendezvousParametersForDeviceDiscoveredOverWiFiPAF;
925911

926912
self->mRendezvousParametersForDeviceDiscoveredOverWiFiPAF = RendezvousParameters();
927913
self->ReleaseCommissioneeDevice(device);
928-
DeviceLayer::ConnectivityMgr().GetWiFiPAF()->SetWiFiPAFState(Transport::WiFiPAFBase::State::kConnected);
929-
chip::DeviceLayer::StackLock stackLock;
930914
LogErrorOnFailure(self->EstablishPASEConnection(remoteId, params));
931915
}
932916
}
@@ -936,9 +920,9 @@ void DeviceCommissioner::OnWiFiPAFSubscribeError(void * appState, CHIP_ERROR err
936920
auto self = static_cast<DeviceCommissioner *>(appState);
937921
auto device = self->mDeviceInPASEEstablishment;
938922

939-
ChipLogProgress(Controller, "WiFi-PAF: Subscription Error!");
940923
if (nullptr != device && device->GetDeviceTransportType() == Transport::Type::kWiFiPAF)
941924
{
925+
ChipLogError(Controller, "WiFi-PAF: Subscription Error, id = %lu, err = %" CHIP_ERROR_FORMAT, device->GetDeviceId(), err.Format());
942926
self->ReleaseCommissioneeDevice(device);
943927
self->mRendezvousParametersForDeviceDiscoveredOverWiFiPAF = RendezvousParameters();
944928
if (self->mPairingDelegate != nullptr)

src/controller/SetUpCodePairer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ CHIP_ERROR SetUpCodePairer::StartDiscoverOverWiFiPAF(SetupPayload & payload)
262262

263263
CHIP_ERROR SetUpCodePairer::StopConnectOverWiFiPAF()
264264
{
265-
mWaitingForDiscovery[kWiFiPAF] = false;
265+
mWaitingForDiscovery[kWiFiPAFTransport] = false;
266266
return CHIP_NO_ERROR;
267267
}
268268
#endif

src/controller/SetUpCodePairer.h

+1-3
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,7 @@ class DLL_EXPORT SetUpCodePairer : public DevicePairingDelegate
154154
kBLETransport = 0,
155155
kIPTransport,
156156
kSoftAPTransport,
157-
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
158-
kWiFiPAF,
159-
#endif
157+
kWiFiPAFTransport,
160158
kTransportTypeCount,
161159
};
162160

src/include/platform/CHIPDeviceConfig.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@
428428
/**
429429
* CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
430430
*
431-
* Name of the WiFi PAF/DNAN-USD
431+
* Name of the WiFiPAF commission function
432432
*/
433433
#ifndef CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
434434
#define CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF 0

src/include/platform/CHIPDeviceEvent.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,8 @@ enum InternalEventTypes
277277
*/
278278
kCHIPoBLEConnectionError,
279279
kCHIPoBLENotifyConfirm,
280-
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
281280
kCHIPoWiFiPAFWriteReceived,
282-
#endif
281+
kCHIPoWiFiPAFConnected,
283282
};
284283

285284
static_assert(kEventTypeNotSet == 0, "kEventTypeNotSet must be defined as 0");

src/include/platform/ConnectivityManager.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,12 @@ class ConnectivityManager
174174
bool IsWiFiStationProvisioned();
175175
void ClearWiFiStationProvision();
176176
CHIP_ERROR GetAndLogWiFiStatsCounters();
177-
#if CHIP_DEVICE_CONFIG_ENABLE_WPA && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
177+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
178178
CHIP_ERROR SetWiFiPAFAdvertisingEnabled(bool val);
179179

180180
typedef void (*OnConnectionCompleteFunct)(void * appState);
181181
typedef void (*OnConnectionErrorFunct)(void * appState, CHIP_ERROR err);
182-
CHIP_ERROR WiFiPAFConnect(void * appState, OnConnectionCompleteFunct onSuccess, OnConnectionErrorFunct onError);
182+
CHIP_ERROR WiFiPAFConnect(const SetupDiscriminator & connDiscriminator, void * appState, OnConnectionCompleteFunct onSuccess, OnConnectionErrorFunct onError);
183183
CHIP_ERROR WiFiPAFSend(System::PacketBufferHandle && msgBuf);
184184
Transport::WiFiPAFBase * GetWiFiPAF();
185185
void SetWiFiPAF(Transport::WiFiPAFBase * pmWiFiPAF);
@@ -420,16 +420,16 @@ inline CHIP_ERROR ConnectivityManager::GetAndLogWiFiStatsCounters()
420420
return static_cast<ImplClass *>(this)->_GetAndLogWiFiStatsCounters();
421421
}
422422

423-
#if CHIP_DEVICE_CONFIG_ENABLE_WPA && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
423+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
424424
inline CHIP_ERROR ConnectivityManager::SetWiFiPAFAdvertisingEnabled(bool val)
425425
{
426426
return static_cast<ImplClass *>(this)->_SetWiFiPAFAdvertisingEnabled(val);
427427
}
428428

429-
inline CHIP_ERROR ConnectivityManager::WiFiPAFConnect(void * appState, OnConnectionCompleteFunct onSuccess,
429+
inline CHIP_ERROR ConnectivityManager::WiFiPAFConnect(const SetupDiscriminator & connDiscriminator, void * appState, OnConnectionCompleteFunct onSuccess,
430430
OnConnectionErrorFunct onError)
431431
{
432-
return static_cast<ImplClass *>(this)->_WiFiPAFConnect(appState, onSuccess, onError);
432+
return static_cast<ImplClass *>(this)->_WiFiPAFConnect(connDiscriminator, appState, onSuccess, onError);
433433
}
434434

435435
inline CHIP_ERROR ConnectivityManager::WiFiPAFSend(chip::System::PacketBufferHandle && msgBuf)

0 commit comments

Comments
 (0)