[mlr] use shorter variable/method names (#9635)

This commit contains smaller enhancements in `MlrManager`:
- Use shorter names for variables and methods
- Avoid the use of normal `enum` name as a namespace
- Use core type `Ip6::Address` instead of `otIp6Address`
This commit is contained in:
Abtin Keshavarzian
2023-11-24 19:06:07 -08:00
committed by GitHub
parent f3602b4a0f
commit a8afffbd2a
3 changed files with 89 additions and 98 deletions
+2 -2
View File
@@ -249,8 +249,8 @@ otError otIp6RegisterMulticastListeners(otInstance *
otIp6RegisterMulticastListenersCallback aCallback, otIp6RegisterMulticastListenersCallback aCallback,
void *aContext) void *aContext)
{ {
return AsCoreType(aInstance).Get<MlrManager>().RegisterMulticastListeners(aAddresses, aAddressNum, aTimeout, return AsCoreType(aInstance).Get<MlrManager>().RegisterMulticastListeners(AsCoreTypePtr(aAddresses), aAddressNum,
aCallback, aContext); aTimeout, aCallback, aContext);
} }
#endif #endif
+57 -64
View File
@@ -54,8 +54,8 @@ MlrManager::MlrManager(Instance &aInstance)
, mReregistrationDelay(0) , mReregistrationDelay(0)
, mSendDelay(0) , mSendDelay(0)
, mMlrPending(false) , mMlrPending(false)
#if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
, mRegisterMulticastListenersPending(false) , mRegisterPending(false)
#endif #endif
{ {
} }
@@ -186,7 +186,7 @@ void MlrManager::ScheduleSend(uint16_t aDelay)
if (aDelay == 0) if (aDelay == 0)
{ {
mSendDelay = 0; mSendDelay = 0;
SendMulticastListenerRegistration(); SendMlr();
} }
else if (mSendDelay == 0 || mSendDelay > aDelay) else if (mSendDelay == 0 || mSendDelay > aDelay)
{ {
@@ -210,7 +210,7 @@ void MlrManager::UpdateTimeTickerRegistration(void)
} }
} }
void MlrManager::SendMulticastListenerRegistration(void) void MlrManager::SendMlr(void)
{ {
Error error; Error error;
Mle::MleRouter &mle = Get<Mle::MleRouter>(); Mle::MleRouter &mle = Get<Mle::MleRouter>();
@@ -270,9 +270,8 @@ void MlrManager::SendMulticastListenerRegistration(void)
#endif #endif
VerifyOrExit(!addresses.IsEmpty(), error = kErrorNotFound); VerifyOrExit(!addresses.IsEmpty(), error = kErrorNotFound);
SuccessOrExit(error = SendMulticastListenerRegistrationMessage( SuccessOrExit(
addresses.GetArrayBuffer(), addresses.GetLength(), nullptr, error = SendMlrMessage(addresses.GetArrayBuffer(), addresses.GetLength(), nullptr, HandleMlrResponse, this));
&MlrManager::HandleMulticastListenerRegistrationResponse, this));
mMlrPending = true; mMlrPending = true;
@@ -299,12 +298,12 @@ exit:
CheckInvariants(); CheckInvariants();
} }
#if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
Error MlrManager::RegisterMulticastListeners(const otIp6Address *aAddresses, Error MlrManager::RegisterMulticastListeners(const Ip6::Address *aAddresses,
uint8_t aAddressNum, uint8_t aAddressNum,
const uint32_t *aTimeout, const uint32_t *aTimeout,
otIp6RegisterMulticastListenersCallback aCallback, MlrCallback aCallback,
void *aContext) void *aContext)
{ {
Error error; Error error;
@@ -321,53 +320,50 @@ Error MlrManager::RegisterMulticastListeners(const otIp6Address
#endif #endif
// Only allow one outstanding registration if callback is specified. // Only allow one outstanding registration if callback is specified.
VerifyOrExit(!mRegisterMulticastListenersPending, error = kErrorBusy); VerifyOrExit(!mRegisterPending, error = kErrorBusy);
SuccessOrExit(error = SendMulticastListenerRegistrationMessage( SuccessOrExit(error = SendMlrMessage(aAddresses, aAddressNum, aTimeout, HandleRegisterResponse, this));
aAddresses, aAddressNum, aTimeout, &MlrManager::HandleRegisterMulticastListenersResponse, this));
mRegisterMulticastListenersPending = true; mRegisterPending = true;
mRegisterMulticastListenersCallback.Set(aCallback, aContext); mRegisterCallback.Set(aCallback, aContext);
exit: exit:
return error; return error;
} }
void MlrManager::HandleRegisterMulticastListenersResponse(void *aContext, void MlrManager::HandleRegisterResponse(void *aContext,
otMessage *aMessage, otMessage *aMessage,
const otMessageInfo *aMessageInfo, const otMessageInfo *aMessageInfo,
Error aResult) Error aResult)
{ {
static_cast<MlrManager *>(aContext)->HandleRegisterMulticastListenersResponse(AsCoapMessagePtr(aMessage), static_cast<MlrManager *>(aContext)->HandleRegisterResponse(AsCoapMessagePtr(aMessage), AsCoreTypePtr(aMessageInfo),
AsCoreTypePtr(aMessageInfo), aResult); aResult);
} }
void MlrManager::HandleRegisterMulticastListenersResponse(otMessage *aMessage, void MlrManager::HandleRegisterResponse(otMessage *aMessage, const otMessageInfo *aMessageInfo, Error aResult)
const otMessageInfo *aMessageInfo,
Error aResult)
{ {
OT_UNUSED_VARIABLE(aMessageInfo); OT_UNUSED_VARIABLE(aMessageInfo);
uint8_t status; uint8_t status;
Error error; Error error;
AddressArray failedAddresses; AddressArray failedAddresses;
Callback<otIp6RegisterMulticastListenersCallback> callbackCopy = mRegisterMulticastListenersCallback; Callback<MlrCallback> callbackCopy = mRegisterCallback;
mRegisterMulticastListenersPending = false; mRegisterPending = false;
mRegisterMulticastListenersCallback.Clear(); mRegisterCallback.Clear();
error = ParseMulticastListenerRegistrationResponse(aResult, AsCoapMessagePtr(aMessage), status, failedAddresses); error = ParseMlrResponse(aResult, AsCoapMessagePtr(aMessage), status, failedAddresses);
callbackCopy.InvokeIfSet(error, status, failedAddresses.GetArrayBuffer(), failedAddresses.GetLength()); callbackCopy.InvokeIfSet(error, status, failedAddresses.GetArrayBuffer(), failedAddresses.GetLength());
} }
#endif // (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #endif // OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
Error MlrManager::SendMulticastListenerRegistrationMessage(const otIp6Address *aAddresses, Error MlrManager::SendMlrMessage(const Ip6::Address *aAddresses,
uint8_t aAddressNum, uint8_t aAddressNum,
const uint32_t *aTimeout, const uint32_t *aTimeout,
Coap::ResponseHandler aResponseHandler, Coap::ResponseHandler aResponseHandler,
void *aResponseContext) void *aResponseContext)
{ {
OT_UNUSED_VARIABLE(aTimeout); OT_UNUSED_VARIABLE(aTimeout);
@@ -387,7 +383,7 @@ Error MlrManager::SendMulticastListenerRegistrationMessage(const otIp6Address
SuccessOrExit(error = message->Append(addressesTlv)); SuccessOrExit(error = message->Append(addressesTlv));
SuccessOrExit(error = message->AppendBytes(aAddresses, sizeof(Ip6::Address) * aAddressNum)); SuccessOrExit(error = message->AppendBytes(aAddresses, sizeof(Ip6::Address) * aAddressNum));
#if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
if (Get<MeshCoP::Commissioner>().IsActive()) if (Get<MeshCoP::Commissioner>().IsActive())
{ {
SuccessOrExit( SuccessOrExit(
@@ -422,23 +418,21 @@ Error MlrManager::SendMulticastListenerRegistrationMessage(const otIp6Address
LogInfo("Sent MLR.req: addressNum=%d", aAddressNum); LogInfo("Sent MLR.req: addressNum=%d", aAddressNum);
exit: exit:
LogInfo("SendMulticastListenerRegistrationMessage(): %s", ErrorToString(error)); LogInfo("SendMlrMessage(): %s", ErrorToString(error));
FreeMessageOnError(message, error); FreeMessageOnError(message, error);
return error; return error;
} }
void MlrManager::HandleMulticastListenerRegistrationResponse(void *aContext, void MlrManager::HandleMlrResponse(void *aContext,
otMessage *aMessage, otMessage *aMessage,
const otMessageInfo *aMessageInfo, const otMessageInfo *aMessageInfo,
Error aResult) Error aResult)
{ {
static_cast<MlrManager *>(aContext)->HandleMulticastListenerRegistrationResponse( static_cast<MlrManager *>(aContext)->HandleMlrResponse(AsCoapMessagePtr(aMessage), AsCoreTypePtr(aMessageInfo),
AsCoapMessagePtr(aMessage), AsCoreTypePtr(aMessageInfo), aResult); aResult);
} }
void MlrManager::HandleMulticastListenerRegistrationResponse(Coap::Message *aMessage, void MlrManager::HandleMlrResponse(Coap::Message *aMessage, const Ip6::MessageInfo *aMessageInfo, Error aResult)
const Ip6::MessageInfo *aMessageInfo,
Error aResult)
{ {
OT_UNUSED_VARIABLE(aMessageInfo); OT_UNUSED_VARIABLE(aMessageInfo);
@@ -446,12 +440,11 @@ void MlrManager::HandleMulticastListenerRegistrationResponse(Coap::Message
Error error; Error error;
AddressArray failedAddresses; AddressArray failedAddresses;
error = ParseMulticastListenerRegistrationResponse(aResult, aMessage, status, failedAddresses); error = ParseMlrResponse(aResult, aMessage, status, failedAddresses);
FinishMulticastListenerRegistration(error == kErrorNone && status == ThreadStatusTlv::MlrStatus::kMlrSuccess, FinishMlr(error == kErrorNone && status == ThreadStatusTlv::kMlrSuccess, failedAddresses);
failedAddresses);
if (error == kErrorNone && status == ThreadStatusTlv::MlrStatus::kMlrSuccess) if (error == kErrorNone && status == ThreadStatusTlv::kMlrSuccess)
{ {
// keep sending until all multicast addresses are registered. // keep sending until all multicast addresses are registered.
ScheduleSend(0); ScheduleSend(0);
@@ -474,15 +467,15 @@ void MlrManager::HandleMulticastListenerRegistrationResponse(Coap::Message
} }
} }
Error MlrManager::ParseMulticastListenerRegistrationResponse(Error aResult, Error MlrManager::ParseMlrResponse(Error aResult,
Coap::Message *aMessage, Coap::Message *aMessage,
uint8_t &aStatus, uint8_t &aStatus,
AddressArray &aFailedAddresses) AddressArray &aFailedAddresses)
{ {
Error error; Error error;
uint16_t addressesOffset, addressesLength; uint16_t addressesOffset, addressesLength;
aStatus = ThreadStatusTlv::MlrStatus::kMlrGeneralFailure; aStatus = ThreadStatusTlv::kMlrGeneralFailure;
VerifyOrExit(aResult == kErrorNone && aMessage != nullptr, error = kErrorParse); VerifyOrExit(aResult == kErrorNone && aMessage != nullptr, error = kErrorParse);
VerifyOrExit(aMessage->GetCode() == Coap::kCodeChanged, error = kErrorParse); VerifyOrExit(aMessage->GetCode() == Coap::kCodeChanged, error = kErrorParse);
@@ -501,7 +494,7 @@ Error MlrManager::ParseMulticastListenerRegistrationResponse(Error aRes
} }
} }
VerifyOrExit(aFailedAddresses.IsEmpty() || aStatus != ThreadStatusTlv::MlrStatus::kMlrSuccess, error = kErrorParse); VerifyOrExit(aFailedAddresses.IsEmpty() || aStatus != ThreadStatusTlv::kMlrSuccess, error = kErrorParse);
exit: exit:
LogMlrResponse(aResult, error, aStatus, aFailedAddresses); LogMlrResponse(aResult, error, aStatus, aFailedAddresses);
@@ -534,7 +527,7 @@ void MlrManager::SetMulticastAddressMlrState(MlrState aFromState, MlrState aToSt
#endif #endif
} }
void MlrManager::FinishMulticastListenerRegistration(bool aSuccess, const AddressArray &aFailedAddresses) void MlrManager::FinishMlr(bool aSuccess, const AddressArray &aFailedAddresses)
{ {
OT_ASSERT(mMlrPending); OT_ASSERT(mMlrPending);
@@ -575,7 +568,7 @@ void MlrManager::HandleTimeTick(void)
{ {
if (mSendDelay > 0 && --mSendDelay == 0) if (mSendDelay > 0 && --mSendDelay == 0)
{ {
SendMulticastListenerRegistration(); SendMlr();
} }
if (mReregistrationDelay > 0 && --mReregistrationDelay == 0) if (mReregistrationDelay > 0 && --mReregistrationDelay == 0)
@@ -686,7 +679,7 @@ void MlrManager::LogMlrResponse(Error aResult, Error aError, uint8_t aStatus, co
OT_UNUSED_VARIABLE(aFailedAddresses); OT_UNUSED_VARIABLE(aFailedAddresses);
#if OT_SHOULD_LOG_AT(OT_LOG_LEVEL_WARN) #if OT_SHOULD_LOG_AT(OT_LOG_LEVEL_WARN)
if (aResult == kErrorNone && aError == kErrorNone && aStatus == ThreadStatusTlv::MlrStatus::kMlrSuccess) if (aResult == kErrorNone && aError == kErrorNone && aStatus == ThreadStatusTlv::kMlrSuccess)
{ {
LogInfo("Receive MLR.rsp OK"); LogInfo("Receive MLR.rsp OK");
} }
+30 -32
View File
@@ -81,6 +81,8 @@ class MlrManager : public InstanceLocator, private NonCopyable
friend class ot::TimeTicker; friend class ot::TimeTicker;
public: public:
typedef otIp6RegisterMulticastListenersCallback MlrCallback;
/** /**
* Initializes the object. * Initializes the object.
* *
@@ -136,11 +138,11 @@ public:
* @retval kErrorNoBufs If insufficient message buffers available. * @retval kErrorNoBufs If insufficient message buffers available.
* *
*/ */
Error RegisterMulticastListeners(const otIp6Address *aAddresses, Error RegisterMulticastListeners(const Ip6::Address *aAddresses,
uint8_t aAddressNum, uint8_t aAddressNum,
const uint32_t *aTimeout, const uint32_t *aTimeout,
otIp6RegisterMulticastListenersCallback aCallback, MlrCallback aCallback,
void *aContext); void *aContext);
#endif #endif
private: private:
@@ -153,33 +155,29 @@ private:
void HandleNotifierEvents(Events aEvents); void HandleNotifierEvents(Events aEvents);
void SendMulticastListenerRegistration(void); void SendMlr(void);
Error SendMulticastListenerRegistrationMessage(const otIp6Address *aAddresses, Error SendMlrMessage(const Ip6::Address *aAddresses,
uint8_t aAddressNum, uint8_t aAddressNum,
const uint32_t *aTimeout, const uint32_t *aTimeout,
Coap::ResponseHandler aResponseHandler, Coap::ResponseHandler aResponseHandler,
void *aResponseContext); void *aResponseContext);
static void HandleMulticastListenerRegistrationResponse(void *aContext, static void HandleMlrResponse(void *aContext,
otMessage *aMessage, otMessage *aMessage,
const otMessageInfo *aMessageInfo, const otMessageInfo *aMessageInfo,
Error aResult); Error aResult);
void HandleMulticastListenerRegistrationResponse(Coap::Message *aMessage, void HandleMlrResponse(Coap::Message *aMessage, const Ip6::MessageInfo *aMessageInfo, Error aResult);
const Ip6::MessageInfo *aMessageInfo, static Error ParseMlrResponse(Error aResult,
Error aResult); Coap::Message *aMessage,
static Error ParseMulticastListenerRegistrationResponse(Error aResult, uint8_t &aStatus,
Coap::Message *aMessage, AddressArray &aFailedAddresses);
uint8_t &aStatus,
AddressArray &aFailedAddresses);
#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
static void HandleRegisterMulticastListenersResponse(void *aContext, static void HandleRegisterResponse(void *aContext,
otMessage *aMessage, otMessage *aMessage,
const otMessageInfo *aMessageInfo, const otMessageInfo *aMessageInfo,
Error aResult); Error aResult);
void HandleRegisterMulticastListenersResponse(otMessage *aMessage, void HandleRegisterResponse(otMessage *aMessage, const otMessageInfo *aMessageInfo, Error aResult);
const otMessageInfo *aMessageInfo,
Error aResult);
#endif #endif
#if OPENTHREAD_CONFIG_MLR_ENABLE #if OPENTHREAD_CONFIG_MLR_ENABLE
@@ -196,7 +194,7 @@ private:
#endif #endif
void SetMulticastAddressMlrState(MlrState aFromState, MlrState aToState); void SetMulticastAddressMlrState(MlrState aFromState, MlrState aToState);
void FinishMulticastListenerRegistration(bool aSuccess, const AddressArray &aFailedAddresses); void FinishMlr(bool aSuccess, const AddressArray &aFailedAddresses);
void ScheduleSend(uint16_t aDelay); void ScheduleSend(uint16_t aDelay);
void UpdateTimeTickerRegistration(void); void UpdateTimeTickerRegistration(void);
@@ -209,7 +207,7 @@ private:
static void LogMlrResponse(Error aResult, Error aError, uint8_t aStatus, const AddressArray &aFailedAddresses); static void LogMlrResponse(Error aResult, Error aError, uint8_t aStatus, const AddressArray &aFailedAddresses);
#if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
Callback<otIp6RegisterMulticastListenersCallback> mRegisterMulticastListenersCallback; Callback<MlrCallback> mRegisterCallback;
#endif #endif
uint32_t mReregistrationDelay; uint32_t mReregistrationDelay;
@@ -217,7 +215,7 @@ private:
bool mMlrPending : 1; bool mMlrPending : 1;
#if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE #if (OPENTHREAD_FTD && OPENTHREAD_CONFIG_TMF_PROXY_MLR_ENABLE) && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
bool mRegisterMulticastListenersPending : 1; bool mRegisterPending : 1;
#endif #endif
}; };