Line data Source code
1 : /*
2 : *
3 : * Copyright (c) 2021 Project CHIP Authors
4 : * All rights reserved.
5 : *
6 : * Licensed under the Apache License, Version 2.0 (the "License");
7 : * you may not use this file except in compliance with the License.
8 : * You may obtain a copy of the License at
9 : *
10 : * http://www.apache.org/licenses/LICENSE-2.0
11 : *
12 : * Unless required by applicable law or agreed to in writing, software
13 : * distributed under the License is distributed on an "AS IS" BASIS,
14 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 : * See the License for the specific language governing permissions and
16 : * limitations under the License.
17 : */
18 :
19 : #include <controller/CommissioningDelegate.h>
20 :
21 : namespace chip {
22 : namespace Controller {
23 :
24 4 : const char * StageToString(CommissioningStage stage)
25 : {
26 4 : switch (stage)
27 : {
28 0 : case kError:
29 0 : return "Error";
30 :
31 1 : case kSecurePairing:
32 1 : return "SecurePairing";
33 :
34 0 : case kReadCommissioningInfo:
35 0 : return "ReadCommissioningInfo";
36 :
37 0 : case kArmFailsafe:
38 0 : return "ArmFailSafe";
39 :
40 0 : case kConfigRegulatory:
41 0 : return "ConfigRegulatory";
42 :
43 0 : case kConfigureUTCTime:
44 0 : return "ConfigureUTCTime";
45 :
46 0 : case kConfigureTimeZone:
47 0 : return "ConfigureTimeZone";
48 :
49 0 : case kConfigureDSTOffset:
50 0 : return "ConfigureDSTOffset";
51 :
52 0 : case kConfigureDefaultNTP:
53 0 : return "ConfigureDefaultNTP";
54 :
55 0 : case kSendPAICertificateRequest:
56 0 : return "SendPAICertificateRequest";
57 :
58 0 : case kSendDACCertificateRequest:
59 0 : return "SendDACCertificateRequest";
60 :
61 0 : case kSendAttestationRequest:
62 0 : return "SendAttestationRequest";
63 :
64 0 : case kAttestationVerification:
65 0 : return "AttestationVerification";
66 :
67 0 : case kAttestationRevocationCheck:
68 0 : return "AttestationRevocationCheck";
69 :
70 0 : case kJCMTrustVerification:
71 0 : return "JCMTrustVerification";
72 :
73 0 : case kSendOpCertSigningRequest:
74 0 : return "SendOpCertSigningRequest";
75 :
76 0 : case kValidateCSR:
77 0 : return "ValidateCSR";
78 :
79 0 : case kGenerateNOCChain:
80 0 : return "GenerateNOCChain";
81 :
82 0 : case kSendTrustedRootCert:
83 0 : return "SendTrustedRootCert";
84 :
85 0 : case kSendNOC:
86 0 : return "SendNOC";
87 :
88 0 : case kConfigureTrustedTimeSource:
89 0 : return "ConfigureTrustedTimeSource";
90 :
91 0 : case kICDGetRegistrationInfo:
92 0 : return "ICDGetRegistrationInfo";
93 :
94 1 : case kICDRegistration:
95 1 : return "ICDRegistration";
96 :
97 0 : case kWiFiNetworkSetup:
98 0 : return "WiFiNetworkSetup";
99 :
100 0 : case kThreadNetworkSetup:
101 0 : return "ThreadNetworkSetup";
102 :
103 0 : case kFailsafeBeforeWiFiEnable:
104 0 : return "FailsafeBeforeWiFiEnable";
105 :
106 0 : case kFailsafeBeforeThreadEnable:
107 0 : return "FailsafeBeforeThreadEnable";
108 :
109 0 : case kWiFiNetworkEnable:
110 0 : return "WiFiNetworkEnable";
111 :
112 0 : case kThreadNetworkEnable:
113 0 : return "ThreadNetworkEnable";
114 :
115 0 : case kEvictPreviousCaseSessions:
116 0 : return "EvictPreviousCaseSessions";
117 :
118 0 : case kFindOperationalForStayActive:
119 0 : return "FindOperationalForStayActive";
120 :
121 0 : case kFindOperationalForCommissioningComplete:
122 0 : return "FindOperationalForCommissioningComplete";
123 :
124 0 : case kSendComplete:
125 0 : return "SendComplete";
126 :
127 1 : case kICDSendStayActive:
128 1 : return "ICDSendStayActive";
129 :
130 0 : case kScanNetworks:
131 0 : return "ScanNetworks";
132 :
133 0 : case kNeedsNetworkCreds:
134 0 : return "NeedsNetworkCreds";
135 :
136 0 : case kPrimaryOperationalNetworkFailed:
137 0 : return "PrimaryOperationalNetworkFailed";
138 :
139 0 : case kRemoveWiFiNetworkConfig:
140 0 : return "RemoveWiFiNetworkConfig";
141 :
142 0 : case kRemoveThreadNetworkConfig:
143 0 : return "RemoveThreadNetworkConfig";
144 :
145 0 : case kConfigureTCAcknowledgments:
146 0 : return "ConfigureTCAcknowledgments";
147 :
148 0 : case kRequestWiFiCredentials:
149 0 : return "RequestWiFiCredentials";
150 :
151 0 : case kRequestThreadCredentials:
152 0 : return "RequestThreadCredentials";
153 :
154 0 : case kCleanup:
155 0 : return "Cleanup";
156 :
157 : #if CHIP_DEVICE_CONFIG_ENABLE_NFC_BASED_COMMISSIONING
158 : case kUnpoweredPhaseComplete:
159 : return "UnpoweredPhaseComplete";
160 : #endif
161 : }
162 :
163 1 : return "???";
164 : }
165 :
166 : #if MATTER_TRACING_ENABLED
167 : const char * MetricKeyForCommissioningStage(CommissioningStage stage)
168 : {
169 : switch (stage)
170 : {
171 : case kError:
172 : return "core_commissioning_stage_error";
173 :
174 : case kSecurePairing:
175 : return "core_commissioning_stage_secure_pairing";
176 :
177 : case kReadCommissioningInfo:
178 : return "core_commissioning_stage_read_commissioning_info";
179 :
180 : case kArmFailsafe:
181 : return "core_commissioning_stage_arm_failsafe";
182 :
183 : case kConfigRegulatory:
184 : return "core_commissioning_stage_config_regulatory";
185 :
186 : case kConfigureUTCTime:
187 : return "core_commissioning_stage_configure_utc_time";
188 :
189 : case kConfigureTimeZone:
190 : return "core_commissioning_stage_configure_timezone";
191 :
192 : case kConfigureDSTOffset:
193 : return "core_commissioning_stage_configure_dst_offset";
194 :
195 : case kConfigureDefaultNTP:
196 : return "core_commissioning_stage_configure_default_ntp";
197 :
198 : case kSendPAICertificateRequest:
199 : return "core_commissioning_stage_send_pai_certificate_request";
200 :
201 : case kSendDACCertificateRequest:
202 : return "core_commissioning_stage_send_dac_certificate_request";
203 :
204 : case kSendAttestationRequest:
205 : return "core_commissioning_stage_send_attestation_request";
206 :
207 : case kAttestationVerification:
208 : return "core_commissioning_stage_attestation_verification";
209 :
210 : case kAttestationRevocationCheck:
211 : return "core_commissioning_stage_attestation_revocation_check";
212 :
213 : case kJCMTrustVerification:
214 : return "core_commissioning_stage_jcm_trust_verification";
215 :
216 : case kSendOpCertSigningRequest:
217 : return "core_commissioning_stage_opcert_signing_request";
218 :
219 : case kValidateCSR:
220 : return "core_commissioning_stage_validate_csr";
221 :
222 : case kGenerateNOCChain:
223 : return "core_commissioning_stage_generate_noc_chain";
224 :
225 : case kSendTrustedRootCert:
226 : return "core_commissioning_stage_send_trusted_root_cert";
227 :
228 : case kSendNOC:
229 : return "core_commissioning_stage_send_noc";
230 :
231 : case kConfigureTrustedTimeSource:
232 : return "core_commissioning_stage_configure_trusted_time_source";
233 :
234 : case kICDGetRegistrationInfo:
235 : return "core_commissioning_stage_icd_get_registration_info";
236 :
237 : case kICDRegistration:
238 : return "core_commissioning_stage_icd_registration";
239 :
240 : case kWiFiNetworkSetup:
241 : return "core_commissioning_stage_wifi_network_setup";
242 :
243 : case kThreadNetworkSetup:
244 : return "core_commissioning_stage_thread_network_setup";
245 :
246 : case kFailsafeBeforeWiFiEnable:
247 : return "core_commissioning_stage_failsafe_before_wifi_enable";
248 :
249 : case kFailsafeBeforeThreadEnable:
250 : return "core_commissioning_stage_failsafe_before_thread_enable";
251 :
252 : case kWiFiNetworkEnable:
253 : return "core_commissioning_stage_wifi_network_enable";
254 :
255 : case kThreadNetworkEnable:
256 : return "core_commissioning_stage_thread_network_enable";
257 :
258 : case kEvictPreviousCaseSessions:
259 : return "core_commissioning_stage_evict_previous_case_sessions";
260 :
261 : case kFindOperationalForStayActive:
262 : return "core_commissioning_stage_find_operational_for_stay_active";
263 :
264 : case kFindOperationalForCommissioningComplete:
265 : return "core_commissioning_stage_find_operational_for_commissioning_complete";
266 :
267 : case kSendComplete:
268 : return "core_commissioning_stage_send_complete";
269 :
270 : case kICDSendStayActive:
271 : return "core_commissioning_stage_icd_send_stay_active";
272 :
273 : case kScanNetworks:
274 : return "core_commissioning_stage_scan_networks";
275 :
276 : case kNeedsNetworkCreds:
277 : return "core_commissioning_stage_need_network_creds";
278 :
279 : case kPrimaryOperationalNetworkFailed:
280 : return "core_commissioning_stage_primary_operational_network_failed";
281 :
282 : case kRemoveWiFiNetworkConfig:
283 : return "core_commissioning_stage_remove_wifi_network_config";
284 :
285 : case kRemoveThreadNetworkConfig:
286 : return "core_commissioning_stage_remove_thread_network_config";
287 :
288 : case kConfigureTCAcknowledgments:
289 : return "core_commissioning_stage_configure_tc_acknowledgements";
290 :
291 : case kRequestWiFiCredentials:
292 : return "core_commissioning_stage_request_wifi_credentials";
293 :
294 : case kRequestThreadCredentials:
295 : return "core_commissioning_stage_request_thread_credentials";
296 :
297 : case kCleanup:
298 : return "core_commissioning_stage_cleanup";
299 :
300 : #if CHIP_DEVICE_CONFIG_ENABLE_NFC_BASED_COMMISSIONING
301 : case kUnpoweredPhaseComplete:
302 : return "core_commissioning_stage_unpowered_phase";
303 : #endif
304 : }
305 :
306 : return "core_commissioning_stage_unknown";
307 : }
308 : #endif
309 :
310 : } // namespace Controller
311 : } // namespace chip
|