From 38e7b30ef78a5326e0b84fb6065dacf9049fc613 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Fri, 29 Jun 2018 10:34:04 -0700 Subject: [PATCH] [ncp] update/add comments and re-order handler lookup (#2841) --- src/ncp/ncp_base.hpp | 33 ++------ src/ncp/ncp_base_dispatcher.cpp | 131 +++++++++++++++++++++++--------- 2 files changed, 103 insertions(+), 61 deletions(-) diff --git a/src/ncp/ncp_base.hpp b/src/ncp/ncp_base.hpp index 73f9a22e8..c3af4b004 100644 --- a/src/ncp/ncp_base.hpp +++ b/src/ncp/ncp_base.hpp @@ -175,16 +175,6 @@ public: protected: typedef otError (NcpBase::*PropertyHandler)(void); - template otError HandlePropertyGet(void); - template otError HandlePropertySet(void); - template otError HandlePropertyInsert(void); - template otError HandlePropertyRemove(void); - - otError HandlePropertySet_SPINEL_PROP_NEST_STREAM_MFG(uint8_t aHeader); - otError HandlePropertySet_SPINEL_PROP_HOST_POWER_STATE(uint8_t aHeader); - otError HandlePropertySet_SPINEL_PROP_STREAM_RAW(uint8_t aHeader); - otError HandlePropertySet_SPINEL_PROP_THREAD_COMMISSIONER_ENABLED(uint8_t aHeader); - /** * This struct represents a spinel response entry. * @@ -360,34 +350,27 @@ protected: // (they expect `aHeader` as an input argument) and are processed separately in // `HandleCommandPropertySet()`. - // -------------------------------------------------------------------------- - // Common Properties - - // -------------------------------------------------------------------------- - // Raw Link API Properties - - // -------------------------------------------------------------------------- - // MTD (or FTD) Properties - - // -------------------------------------------------------------------------- - // FTD Only Properties + template otError HandlePropertyGet(void); + template otError HandlePropertySet(void); + template otError HandlePropertyInsert(void); + template otError HandlePropertyRemove(void); // -------------------------------------------------------------------------- // Property "set" handlers for special properties for which the spinel // response needs to be created from within the set handler. - otError SetPropertyHandler_HOST_POWER_STATE(uint8_t aHeader); + otError HandlePropertySet_SPINEL_PROP_HOST_POWER_STATE(uint8_t aHeader); #if OPENTHREAD_ENABLE_DIAG - otError SetPropertyHandler_NEST_STREAM_MFG(uint8_t aHeader); + otError HandlePropertySet_SPINEL_PROP_NEST_STREAM_MFG(uint8_t aHeader); #endif #if OPENTHREAD_FTD && OPENTHREAD_ENABLE_COMMISSIONER - otError SetPropertyHandler_THREAD_COMMISSIONER_ENABLED(uint8_t aHeader); + otError HandlePropertySet_SPINEL_PROP_THREAD_COMMISSIONER_ENABLED(uint8_t aHeader); #endif // OPENTHREAD_FTD #if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API - otError SetPropertyHandler_STREAM_RAW(uint8_t aHeader); + otError HandlePropertySet_SPINEL_PROP_STREAM_RAW(uint8_t aHeader); #endif #if OPENTHREAD_ENABLE_LEGACY diff --git a/src/ncp/ncp_base_dispatcher.cpp b/src/ncp/ncp_base_dispatcher.cpp index 538946674..5729c92d2 100644 --- a/src/ncp/ncp_base_dispatcher.cpp +++ b/src/ncp/ncp_base_dispatcher.cpp @@ -35,15 +35,15 @@ namespace ot { namespace Ncp { -// ---------------------------------------------------------------------------- -// MARK: Property Handler Jump Tables and Methods -// ---------------------------------------------------------------------------- NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) { NcpBase::PropertyHandler handler; switch (aKey) { + // -------------------------------------------------------------------------- + // Common Properties (Get Handler) + case SPINEL_PROP_CAPS: handler = &NcpBase::HandlePropertyGet; break; @@ -122,6 +122,10 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) case SPINEL_PROP_VENDOR_ID: handler = &NcpBase::HandlePropertyGet; break; + + // -------------------------------------------------------------------------- + // MTD (or FTD) Properties (Get Handler) + #if OPENTHREAD_MTD || OPENTHREAD_FTD case SPINEL_PROP_MAC_DATA_POLL_PERIOD: handler = &NcpBase::HandlePropertyGet; @@ -493,6 +497,9 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) #endif #endif // OPENTHREAD_MTD || OPENTHREAD_FTD + // -------------------------------------------------------------------------- + // FTD Only Properties (Get Handler) + #if OPENTHREAD_FTD case SPINEL_PROP_NET_PSKC: handler = &NcpBase::HandlePropertyGet; @@ -587,11 +594,15 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey) #endif // OPENTHREAD_CONFIG_ENABLE_TIME_SYNC #endif // OPENTHREAD_FTD + // -------------------------------------------------------------------------- + // Raw Link API Properties (Get Handler) + #if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API case SPINEL_PROP_MAC_SRC_MATCH_ENABLED: handler = &NcpBase::HandlePropertyGet; break; #endif + default: handler = NULL; } @@ -605,23 +616,9 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) switch (aKey) { -#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API - case SPINEL_PROP_MAC_15_4_SADDR: - handler = &NcpBase::HandlePropertySet; - break; - case SPINEL_PROP_MAC_SRC_MATCH_ENABLED: - handler = &NcpBase::HandlePropertySet; - break; - case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: - handler = &NcpBase::HandlePropertySet; - break; - case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: - handler = &NcpBase::HandlePropertySet; - break; - case SPINEL_PROP_PHY_ENABLED: - handler = &NcpBase::HandlePropertySet; - break; -#endif // OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API + // -------------------------------------------------------------------------- + // Common Properties (Set Handler) + case SPINEL_PROP_POWER_STATE: handler = &NcpBase::HandlePropertySet; break; @@ -649,6 +646,10 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) case SPINEL_PROP_MAC_RAW_STREAM_ENABLED: handler = &NcpBase::HandlePropertySet; break; + + // -------------------------------------------------------------------------- + // MTD (or FTD) Properties (Set Handler) + #if OPENTHREAD_MTD || OPENTHREAD_FTD case SPINEL_PROP_MAC_DATA_POLL_PERIOD: handler = &NcpBase::HandlePropertySet; @@ -770,6 +771,10 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) handler = &NcpBase::HandlePropertySet; break; #endif // OPENTHREAD_MTD || OPENTHREAD_FTD + + // -------------------------------------------------------------------------- + // FTD Only Properties (Set Handler) + #if OPENTHREAD_FTD case SPINEL_PROP_NET_PSKC: handler = &NcpBase::HandlePropertySet; @@ -861,6 +866,28 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey) break; #endif #endif // #if OPENTHREAD_FTD + + // -------------------------------------------------------------------------- + // Raw Link API Properties (Set Handler) + +#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API + case SPINEL_PROP_MAC_15_4_SADDR: + handler = &NcpBase::HandlePropertySet; + break; + case SPINEL_PROP_MAC_SRC_MATCH_ENABLED: + handler = &NcpBase::HandlePropertySet; + break; + case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: + handler = &NcpBase::HandlePropertySet; + break; + case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: + handler = &NcpBase::HandlePropertySet; + break; + case SPINEL_PROP_PHY_ENABLED: + handler = &NcpBase::HandlePropertySet; + break; +#endif // #if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API + default: handler = NULL; } @@ -874,17 +901,16 @@ NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aK switch (aKey) { + // -------------------------------------------------------------------------- + // Common Properties (Insert Handler) + case SPINEL_PROP_UNSOL_UPDATE_FILTER: handler = &NcpBase::HandlePropertyInsert; break; -#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API - case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: - handler = &NcpBase::HandlePropertyInsert; - break; - case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: - handler = &NcpBase::HandlePropertyInsert; - break; -#endif + + // -------------------------------------------------------------------------- + // MTD (or FTD) Properties (Insert Handler) + #if OPENTHREAD_MTD || OPENTHREAD_FTD case SPINEL_PROP_IPV6_ADDRESS_TABLE: handler = &NcpBase::HandlePropertyInsert; @@ -915,6 +941,10 @@ NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aK break; #endif #endif // OPENTHREAD_MTD || OPENTHREAD_FTD + + // -------------------------------------------------------------------------- + // FTD Only Properties (Insert Handler) + #if OPENTHREAD_FTD #if OPENTHREAD_ENABLE_COMMISSIONER case SPINEL_PROP_THREAD_JOINERS: @@ -922,6 +952,19 @@ NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aK break; #endif #endif // OPENTHREAD_FTD + + // -------------------------------------------------------------------------- + // Raw Link API Properties (Insert Handler) + +#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API + case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: + handler = &NcpBase::HandlePropertyInsert; + break; + case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: + handler = &NcpBase::HandlePropertyInsert; + break; +#endif + default: handler = NULL; } @@ -935,17 +978,16 @@ NcpBase::PropertyHandler NcpBase::FindRemovePropertyHandler(spinel_prop_key_t aK switch (aKey) { + // -------------------------------------------------------------------------- + // Common Properties (Remove Handler) + case SPINEL_PROP_UNSOL_UPDATE_FILTER: handler = &NcpBase::HandlePropertyRemove; break; -#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API - case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: - handler = &NcpBase::HandlePropertyRemove; - break; - case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: - handler = &NcpBase::HandlePropertyRemove; - break; -#endif + + // -------------------------------------------------------------------------- + // MTD (or FTD) Properties (Remove Handler) + #if OPENTHREAD_MTD || OPENTHREAD_FTD case SPINEL_PROP_IPV6_ADDRESS_TABLE: handler = &NcpBase::HandlePropertyRemove; @@ -976,11 +1018,28 @@ NcpBase::PropertyHandler NcpBase::FindRemovePropertyHandler(spinel_prop_key_t aK break; #endif #endif // OPENTHREAD_MTD || OPENTHREAD_FTD + + // -------------------------------------------------------------------------- + // FTD Only Properties (Remove Handler) + #if OPENTHREAD_FTD case SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS: handler = &NcpBase::HandlePropertyRemove; break; #endif + + // -------------------------------------------------------------------------- + // Raw Link API Properties (Remove Handler) + +#if OPENTHREAD_RADIO || OPENTHREAD_ENABLE_RAW_LINK_API + case SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES: + handler = &NcpBase::HandlePropertyRemove; + break; + case SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES: + handler = &NcpBase::HandlePropertyRemove; + break; +#endif + default: handler = NULL; }