Skip to content

Commit bc63852

Browse files
marybadalyanrestyled-commitsandy31415
authored
Decouple OpCredCluster (project-chip#42918)
* Resolve merge conflicts * Fix vaiables; fix tests * Restyled by whitespace * Restyled * Restyled by clang-format * Add dependencies * Restyled by clang-format * Fix rvalue * Fix double initialization * Test * dereference pointer * Restyled by clang-format * Move dac provideer * Restyled by whitespace * Restyled by clang-format * Fix context * Resolve comments * Test * Restyled by whitespace * Restyled by clang-format * Restyled by clang-format * Test PAC * Test DAC * Test DAC * Test obj lifetime * Test * Fix test * Remove std::move * Test * test * Restyled by whitespace * Test * Resolve comments * Test * Restyled by whitespace * Test * Restyled by whitespace * Test * Restyled by whitespace * Restyled by clang-format * Test * Restyled by clang-format * Test * Test * Test * Compilable version * Restyled by whitespace * Test * Restyled by clang-format * test * Test * Chnage ordering * Resolve comments * Fix Merge Conflict * Restyled by clang-format * Fix typo * Remove getters * Restyled by clang-format * Fix init order * Fix Erased * Restyled by whitespace * Change ordering * Change order * Fix ordering * Update src/app/clusters/operational-credentials-server/OperationalCredentialsCluster.cpp --------- Co-authored-by: Restyled.io <commits@restyled.io> Co-authored-by: Andrei Litvin <andy314@gmail.com>
1 parent aca9215 commit bc63852

25 files changed

Lines changed: 230 additions & 215 deletions

File tree

examples/air-purifier-app/cc32xx/main/AppTask.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,8 @@ int AppTask::Init()
161161
;
162162
}
163163

164-
// Init ZCL Data Model and start server
165-
PLAT_LOG("Initialize Server");
166-
static chip::CommonCaseDeviceServerInitParams initParams;
167-
(void) initParams.InitializeStaticResourcesBeforeServerInit();
168-
initParams.dataModelProvider = CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
169-
TEMPORARY_RETURN_IGNORED chip::Server::GetInstance().Init(initParams);
170-
171-
// Initialize device attestation config
164+
// Initialize device attestation config before server init so Operational
165+
// Credentials sees the configured provider during cluster construction.
172166
PLAT_LOG("Initialize device attestation config");
173167
#ifdef CC32XX_ATTESTATION_CREDENTIALS
174168
SetDeviceAttestationCredentialsProvider(CC32XX::GetCC32XXDacProvider());
@@ -177,6 +171,13 @@ int AppTask::Init()
177171
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
178172
#endif
179173

174+
// Init ZCL Data Model and start server
175+
PLAT_LOG("Initialize Server");
176+
static chip::CommonCaseDeviceServerInitParams initParams;
177+
(void) initParams.InitializeStaticResourcesBeforeServerInit();
178+
initParams.dataModelProvider = CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
179+
TEMPORARY_RETURN_IGNORED chip::Server::GetInstance().Init(initParams);
180+
180181
// init air purifier stuff
181182
TEMPORARY_RETURN_IGNORED SetParentEndpointForEndpoint(AIR_QUALITY_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT);
182183
TEMPORARY_RETURN_IGNORED SetParentEndpointForEndpoint(TEMPERATURE_SENSOR_ENDPOINT, AIR_PURIFIER_ENDPOINT);

examples/all-clusters-app/infineon/psoc6/src/AppTask.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ void NetWorkCommissioningInstInit()
127127

128128
static void InitServer(intptr_t context)
129129
{
130+
// Initialize device attestation config before server init so Operational
131+
// Credentials sees the configured provider during cluster construction.
132+
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
133+
130134
// Init ZCL Data Model
131135
static chip::CommonCaseDeviceServerInitParams initParams;
132136
(void) initParams.InitializeStaticResourcesBeforeServerInit();
@@ -139,8 +143,6 @@ static void InitServer(intptr_t context)
139143
gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage());
140144
chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
141145

142-
// Initialize device attestation config
143-
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
144146
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
145147
GetAppTask().InitOTARequestor();
146148
#endif

examples/all-clusters-minimal-app/infineon/psoc6/src/AppTask.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ void NetWorkCommissioningInstInit()
125125

126126
static void InitServer(intptr_t context)
127127
{
128+
// Initialize device attestation config before server init so Operational
129+
// Credentials sees the configured provider during cluster construction.
130+
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
131+
128132
// Init ZCL Data Model
129133
static chip::CommonCaseDeviceServerInitParams initParams;
130134
(void) initParams.InitializeStaticResourcesBeforeServerInit();
@@ -137,8 +141,6 @@ static void InitServer(intptr_t context)
137141
gExampleDeviceInfoProvider.SetStorageDelegate(&Server::GetInstance().GetPersistentStorage());
138142
chip::DeviceLayer::SetDeviceInfoProvider(&gExampleDeviceInfoProvider);
139143

140-
// Initialize device attestation config
141-
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
142144
#if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
143145
GetAppTask().InitOTARequestor();
144146
#endif

examples/all-devices-app/all-devices-common/devices/root-node/RootNodeDevice.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ CHIP_ERROR RootNodeDevice::Register(EndpointId endpointId, CodeDrivenDataModelPr
110110
.sessionManager = mContext.sessionManager,
111111
.dnssdServer = mContext.dnssdServer,
112112
.commissioningWindowManager = mContext.commissioningWindowManager,
113+
.dacProvider = mContext.dacProvider,
114+
.groupDataProvider = mContext.groupDataProvider,
115+
.accessControl = mContext.accessControl,
116+
.platformManager = mContext.platformManager,
117+
.eventManagement = mContext.eventManagement,
118+
113119
});
114120
ReturnErrorOnFailure(provider.AddCluster(mOperationalCredentialsCluster.Registration()));
115121

examples/all-devices-app/all-devices-common/devices/root-node/RootNodeDevice.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@ class RootNodeDevice : public SingleEndpointDevice
5757
DeviceLoadStatusProvider & deviceLoadStatusProvider;
5858
DeviceLayer::DiagnosticDataProvider & diagnosticDataProvider;
5959
TestEventTriggerDelegate * testEventTriggerDelegate;
60+
Credentials::DeviceAttestationCredentialsProvider & dacProvider;
61+
EventManagement & eventManagement;
6062
SafeAttributePersistenceProvider & safeAttributePersistenceProvider;
61-
6263
#if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
6364
TermsAndConditionsProvider & termsAndConditionsProvider;
6465
#endif // CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED

examples/all-devices-app/esp32/main/main.cpp

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -220,23 +220,24 @@ chip::app::DataModel::Provider * PopulateCodeDrivenDataModelProvider(PersistentS
220220

221221
gRootNodeDevice = std::make_unique<WifiRootNodeDevice>(
222222
RootNodeDevice::Context {
223-
.commissioningWindowManager = Server::GetInstance().GetCommissioningWindowManager(), //
224-
.configurationManager = DeviceLayer::ConfigurationMgr(), //
225-
.deviceControlServer = DeviceLayer::DeviceControlServer::DeviceControlSvr(), //
226-
.fabricTable = Server::GetInstance().GetFabricTable(), //
227-
.accessControl = Server::GetInstance().GetAccessControl(), //
228-
.persistentStorage = Server::GetInstance().GetPersistentStorage(), //
229-
.failSafeContext = Server::GetInstance().GetFailSafeContext(), //
230-
.deviceInstanceInfoProvider = *provider, //
231-
.platformManager = DeviceLayer::PlatformMgr(), //
232-
.groupDataProvider = gGroupDataProvider, //
233-
.sessionManager = Server::GetInstance().GetSecureSessionManager(), //
234-
.dnssdServer = DnssdServer::Instance(), //
235-
.deviceLoadStatusProvider = *InteractionModelEngine::GetInstance(), //
236-
.diagnosticDataProvider = DeviceLayer::GetDiagnosticDataProvider(), //
237-
.testEventTriggerDelegate = testEventTriggerDelegate, //
238-
.safeAttributePersistenceProvider = gSafeAttributePersistenceProvider, //
239-
223+
.commissioningWindowManager = Server::GetInstance().GetCommissioningWindowManager(), //
224+
.configurationManager = DeviceLayer::ConfigurationMgr(), //
225+
.deviceControlServer = DeviceLayer::DeviceControlServer::DeviceControlSvr(), //
226+
.fabricTable = Server::GetInstance().GetFabricTable(), //
227+
.accessControl = Server::GetInstance().GetAccessControl(), //
228+
.persistentStorage = Server::GetInstance().GetPersistentStorage(), //
229+
.failSafeContext = Server::GetInstance().GetFailSafeContext(), //
230+
.deviceInstanceInfoProvider = *provider, //
231+
.platformManager = DeviceLayer::PlatformMgr(), //
232+
.groupDataProvider = gGroupDataProvider, //
233+
.sessionManager = Server::GetInstance().GetSecureSessionManager(), //
234+
.dnssdServer = DnssdServer::Instance(), //
235+
.deviceLoadStatusProvider = *InteractionModelEngine::GetInstance(), //
236+
.diagnosticDataProvider = DeviceLayer::GetDiagnosticDataProvider(), //
237+
.testEventTriggerDelegate = testEventTriggerDelegate, //
238+
.dacProvider = Credentials::GetDeviceAttestationCredentialsProvider(), //
239+
.eventManagement = EventManagement::GetInstance(), //
240+
.safeAttributePersistenceProvider = gSafeAttributePersistenceProvider, //
240241
#if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
241242
.termsAndConditionsProvider = TermsAndConditionsManager::GetInstance(),
242243
#endif // CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED

examples/all-devices-app/posix/main.cpp

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ class CodeDrivenDataModelDevices
9696
DeviceLoadStatusProvider & deviceLoadStatusProvider;
9797
DeviceLayer::DiagnosticDataProvider & diagnosticDataProvider;
9898
TestEventTriggerDelegate * testEventTriggerDelegate;
99+
Credentials::DeviceAttestationCredentialsProvider & dacProvider;
100+
EventManagement & eventManagement;
99101
SafeAttributePersistenceProvider & safeAttributePersistenceProvider;
100102

101103
#if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
@@ -122,8 +124,9 @@ class CodeDrivenDataModelDevices
122124
.deviceLoadStatusProvider = mContext.deviceLoadStatusProvider, //
123125
.diagnosticDataProvider = mContext.diagnosticDataProvider, //
124126
.testEventTriggerDelegate = mContext.testEventTriggerDelegate, //
127+
.dacProvider = mContext.dacProvider, //
128+
.eventManagement = mContext.eventManagement, //
125129
.safeAttributePersistenceProvider = mContext.safeAttributePersistenceProvider, //
126-
127130
#if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
128131
.termsAndConditionsProvider = mContext.termsAndConditionsProvider,
129132
#endif // CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
@@ -193,32 +196,38 @@ void RunApplication(AppMainLoopImplementation * mainLoop = nullptr)
193196
DeviceLayer::DeviceInstanceInfoProvider * provider = DeviceLayer::GetDeviceInstanceInfoProvider();
194197
if (provider == nullptr)
195198
{
196-
ChipLogError(AppServer, "Failed to get the DeviceInstanceInfoProvifer.");
199+
ChipLogError(AppServer, "Failed to get the DeviceInstanceInfoProvider.");
197200
chipDie();
198201
}
199202

200203
// Initialize the safe attribute persistence provider
201204
SuccessOrDie(gSafeAttributePersistenceProvider.Init(initParams.persistentStorageDelegate));
202205
SetSafeAttributePersistenceProvider(&gSafeAttributePersistenceProvider);
203206

207+
// Set the global DAC provider before server/cluster init so any integration path that
208+
// snapshots the provider during construction sees a valid implementation.
209+
SetDeviceAttestationCredentialsProvider(Credentials::Examples::GetExampleDACProvider());
210+
204211
static CodeDrivenDataModelDevices devices({
205-
.storageDelegate = *initParams.persistentStorageDelegate, //
206-
.commissioningWindowManager = Server::GetInstance().GetCommissioningWindowManager(), //
207-
.configurationManager = DeviceLayer::ConfigurationMgr(), //
208-
.deviceControlServer = DeviceLayer::DeviceControlServer::DeviceControlSvr(), //
209-
.fabricTable = Server::GetInstance().GetFabricTable(), //
210-
.accessControl = Server::GetInstance().GetAccessControl(), //
211-
.persistentStorage = Server::GetInstance().GetPersistentStorage(), //
212-
.failSafeContext = Server::GetInstance().GetFailSafeContext(), //
213-
.deviceInstanceInfoProvider = *provider, //
214-
.platformManager = DeviceLayer::PlatformMgr(), //
215-
.groupDataProvider = gGroupDataProvider, //
216-
.sessionManager = Server::GetInstance().GetSecureSessionManager(), //
217-
.dnssdServer = DnssdServer::Instance(), //
218-
.deviceLoadStatusProvider = *InteractionModelEngine::GetInstance(), //
219-
.diagnosticDataProvider = DeviceLayer::GetDiagnosticDataProvider(), //
220-
.testEventTriggerDelegate = initParams.testEventTriggerDelegate, //
221-
.safeAttributePersistenceProvider = gSafeAttributePersistenceProvider, //
212+
.storageDelegate = *initParams.persistentStorageDelegate, //
213+
.commissioningWindowManager = Server::GetInstance().GetCommissioningWindowManager(), //
214+
.configurationManager = DeviceLayer::ConfigurationMgr(), //
215+
.deviceControlServer = DeviceLayer::DeviceControlServer::DeviceControlSvr(), //
216+
.fabricTable = Server::GetInstance().GetFabricTable(), //
217+
.accessControl = Server::GetInstance().GetAccessControl(), //
218+
.persistentStorage = Server::GetInstance().GetPersistentStorage(), //
219+
.failSafeContext = Server::GetInstance().GetFailSafeContext(), //
220+
.deviceInstanceInfoProvider = *provider, //
221+
.platformManager = DeviceLayer::PlatformMgr(), //
222+
.groupDataProvider = gGroupDataProvider, //
223+
.sessionManager = Server::GetInstance().GetSecureSessionManager(), //
224+
.dnssdServer = DnssdServer::Instance(), //
225+
.deviceLoadStatusProvider = *InteractionModelEngine::GetInstance(), //
226+
.diagnosticDataProvider = DeviceLayer::GetDiagnosticDataProvider(), //
227+
.testEventTriggerDelegate = initParams.testEventTriggerDelegate, //
228+
.dacProvider = *Credentials::GetDeviceAttestationCredentialsProvider(), //
229+
.eventManagement = EventManagement::GetInstance(), //
230+
.safeAttributePersistenceProvider = gSafeAttributePersistenceProvider, //
222231

223232
#if CHIP_CONFIG_TERMS_AND_CONDITIONS_REQUIRED
224233
.termsAndConditionsProvider = TermsAndConditionsManager::GetInstance(),
@@ -267,8 +276,6 @@ void RunApplication(AppMainLoopImplementation * mainLoop = nullptr)
267276
SuccessOrDie(chip::DeviceLayer::GetDeviceInstanceInfoProvider()->GetProductId(payload.productID));
268277
PrintOnboardingCodes(payload);
269278

270-
SetDeviceAttestationCredentialsProvider(Credentials::Examples::GetExampleDACProvider());
271-
272279
chip::app::SetTerminateHandler(StopSignalHandler);
273280

274281
// This message is used as a marker for when the application process has started.

examples/light-switch-app/genio/src/AppTask.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,16 @@ CHIP_ERROR AppTask::Init()
122122
sWiFiNetworkCommissioningInstance.Init();
123123
#endif
124124

125+
// Initialize device attestation config before server init so Operational
126+
// Credentials sees the configured provider during cluster construction.
127+
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
128+
125129
// Init ZCL Data Model and start server
126130
static chip::CommonCaseDeviceServerInitParams initParams;
127131
(void) initParams.InitializeStaticResourcesBeforeServerInit();
128132
initParams.dataModelProvider = chip::app::CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
129133
chip::Server::GetInstance().Init(initParams);
130134

131-
// Initialize device attestation config
132-
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
133-
134135
// Create FreeRTOS sw timer for Function Selection.
135136
sFunctionTimer = xTimerCreate("FnTmr", // Just a text name, not used by the RTOS kernel
136137
1, // == default timer period (mS)

examples/lighting-app/beken/main/chipinterface.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,10 @@ extern "C" void _init(void)
187187

188188
static void InitServer(intptr_t context)
189189
{
190-
BekenAppServer::Init();
190+
// Initialize device attestation config before server init so Operational
191+
// Credentials sees the configured provider during cluster construction.
191192
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
193+
BekenAppServer::Init();
192194
OTAHelpers::Instance().InitOTARequestor();
193195
PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE));
194196
}

examples/lighting-app/genio/src/AppTask.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,15 +323,16 @@ CHIP_ERROR AppTask::Init()
323323
sWiFiNetworkCommissioningInstance.Init();
324324
#endif
325325

326+
// Initialize device attestation config before server init so Operational
327+
// Credentials sees the configured provider during cluster construction.
328+
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
329+
326330
// Init ZCL Data Model and start server
327331
static chip::CommonCaseDeviceServerInitParams initParams;
328332
(void) initParams.InitializeStaticResourcesBeforeServerInit();
329333
initParams.dataModelProvider = chip::app::CodegenDataModelProviderInstance(initParams.persistentStorageDelegate);
330334
chip::Server::GetInstance().Init(initParams);
331335

332-
// Initialize device attestation config
333-
SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
334-
335336
// Create FreeRTOS sw timer for Function Selection.
336337
sFunctionTimer = xTimerCreate("FnTmr", // Just a text name, not used by the RTOS kernel
337338
1, // == default timer period (mS)

0 commit comments

Comments
 (0)