From abed47211919f1702b0cc32395530e6a1338e603 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 9 Dec 2024 11:07:27 -0800 Subject: [PATCH] [cli] update `ba counters` to use counter name lookup array (#11005) This commit updates the `ba counters` CLI command to use a counter name lookup array. This follows the same approach used in `Cli` for other counters, such as MAC, MLE, IP, and BR counters. --- src/cli/cli.cpp | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/src/cli/cli.cpp b/src/cli/cli.cpp index dfbed9121..24b8b4d20 100644 --- a/src/cli/cli.cpp +++ b/src/cli/cli.cpp @@ -624,24 +624,37 @@ exit: void Interpreter::OutputBorderAgentCounters(const otBorderAgentCounters &aCounters) { + struct BaCounterName + { + const uint32_t otBorderAgentCounters::*mValuePtr; + const char *mName; + }; + + static const BaCounterName kBaCounterNames[] = { #if OPENTHREAD_CONFIG_BORDER_AGENT_EPHEMERAL_KEY_ENABLE - OutputLine("epskcActivation: %lu ", ToUlong(aCounters.mEpskcActivations)); - OutputLine("epskcApiDeactivation: %lu ", ToUlong(aCounters.mEpskcDeactivationClears)); - OutputLine("epskcTimeoutDeactivation: %lu ", ToUlong(aCounters.mEpskcDeactivationTimeouts)); - OutputLine("epskcMaxAttemptDeactivation: %lu ", ToUlong(aCounters.mEpskcDeactivationMaxAttempts)); - OutputLine("epskcDisconnectDeactivation: %lu ", ToUlong(aCounters.mEpskcDeactivationDisconnects)); - OutputLine("epskcInvalidBaStateError: %lu ", ToUlong(aCounters.mEpskcInvalidBaStateErrors)); - OutputLine("epskcInvalidArgsError: %lu ", ToUlong(aCounters.mEpskcInvalidArgsErrors)); - OutputLine("epskcStartSecureSessionError: %lu ", ToUlong(aCounters.mEpskcStartSecureSessionErrors)); - OutputLine("epskcSecureSessionSuccess: %lu ", ToUlong(aCounters.mEpskcSecureSessionSuccesses)); - OutputLine("epskcSecureSessionFailure: %lu ", ToUlong(aCounters.mEpskcSecureSessionFailures)); - OutputLine("epskcCommissionerPetition: %lu ", ToUlong(aCounters.mEpskcCommissionerPetitions)); + {&otBorderAgentCounters::mEpskcActivations, "epskcActivation"}, + {&otBorderAgentCounters::mEpskcDeactivationClears, "epskcApiDeactivation"}, + {&otBorderAgentCounters::mEpskcDeactivationTimeouts, "epskcTimeoutDeactivation"}, + {&otBorderAgentCounters::mEpskcDeactivationMaxAttempts, "epskcMaxAttemptDeactivation"}, + {&otBorderAgentCounters::mEpskcDeactivationDisconnects, "epskcDisconnectDeactivation"}, + {&otBorderAgentCounters::mEpskcInvalidBaStateErrors, "epskcInvalidBaStateError"}, + {&otBorderAgentCounters::mEpskcInvalidArgsErrors, "epskcInvalidArgsError"}, + {&otBorderAgentCounters::mEpskcStartSecureSessionErrors, "epskcStartSecureSessionError"}, + {&otBorderAgentCounters::mEpskcSecureSessionSuccesses, "epskcSecureSessionSuccess"}, + {&otBorderAgentCounters::mEpskcSecureSessionFailures, "epskcSecureSessionFailure"}, + {&otBorderAgentCounters::mEpskcCommissionerPetitions, "epskcCommissionerPetition"}, #endif - OutputLine("pskcSecureSessionSuccess: %lu ", ToUlong(aCounters.mPskcSecureSessionSuccesses)); - OutputLine("pskcSecureSessionFailure: %lu ", ToUlong(aCounters.mPskcSecureSessionFailures)); - OutputLine("pskcCommissionerPetition: %lu ", ToUlong(aCounters.mPskcCommissionerPetitions)); - OutputLine("mgmtActiveGet: %lu ", ToUlong(aCounters.mMgmtActiveGets)); - OutputLine("mgmtPendingGet: %lu", ToUlong(aCounters.mMgmtPendingGets)); + {&otBorderAgentCounters::mPskcSecureSessionSuccesses, "pskcSecureSessionSuccess"}, + {&otBorderAgentCounters::mPskcSecureSessionFailures, "pskcSecureSessionFailure"}, + {&otBorderAgentCounters::mPskcCommissionerPetitions, "pskcCommissionerPetition"}, + {&otBorderAgentCounters::mMgmtActiveGets, "mgmtActiveGet"}, + {&otBorderAgentCounters::mMgmtPendingGets, "mgmtPendingGet"}, + }; + + for (const BaCounterName &counter : kBaCounterNames) + { + OutputLine("%s: %lu", counter.mName, ToUlong(aCounters.*counter.mValuePtr)); + } } #if OPENTHREAD_CONFIG_BORDER_AGENT_EPHEMERAL_KEY_ENABLE