mirror of
https://github.com/espressif/openthread.git
synced 2026-07-27 22:37:45 +00:00
[ncp-base] use macros to simplify the handler arrays definitions (#4448)
This commit is contained in:
committed by
Jonathan Hui
parent
597e112259
commit
568fab148b
+349
-407
@@ -42,308 +42,288 @@ constexpr bool NcpBase::AreHandlerEntriesSorted(const HandlerEntry *aHandlerEntr
|
||||
: ((aHandlerEntries[aSize - 1].mKey > aHandlerEntries[aSize - 2].mKey) &&
|
||||
AreHandlerEntriesSorted(aHandlerEntries, aSize - 1));
|
||||
}
|
||||
|
||||
#define OT_NCP_CONST constexpr
|
||||
#else
|
||||
#define OT_NCP_CONST const
|
||||
#endif
|
||||
|
||||
NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey)
|
||||
{
|
||||
#if __cplusplus >= 201103L
|
||||
constexpr
|
||||
#else
|
||||
const
|
||||
#endif
|
||||
static HandlerEntry sHandlerEntries[] =
|
||||
{ {SPINEL_PROP_LAST_STATUS, &NcpBase::HandlePropertyGet<SPINEL_PROP_LAST_STATUS>},
|
||||
{SPINEL_PROP_PROTOCOL_VERSION, &NcpBase::HandlePropertyGet<SPINEL_PROP_PROTOCOL_VERSION>},
|
||||
{SPINEL_PROP_NCP_VERSION, &NcpBase::HandlePropertyGet<SPINEL_PROP_NCP_VERSION>},
|
||||
{SPINEL_PROP_INTERFACE_TYPE, &NcpBase::HandlePropertyGet<SPINEL_PROP_INTERFACE_TYPE>},
|
||||
{SPINEL_PROP_VENDOR_ID, &NcpBase::HandlePropertyGet<SPINEL_PROP_VENDOR_ID>},
|
||||
{SPINEL_PROP_CAPS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CAPS>},
|
||||
{SPINEL_PROP_INTERFACE_COUNT, &NcpBase::HandlePropertyGet<SPINEL_PROP_INTERFACE_COUNT>},
|
||||
{SPINEL_PROP_POWER_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_POWER_STATE>},
|
||||
{SPINEL_PROP_HWADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_HWADDR>},
|
||||
{SPINEL_PROP_LOCK, &NcpBase::HandlePropertyGet<SPINEL_PROP_LOCK>},
|
||||
{SPINEL_PROP_HOST_POWER_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_HOST_POWER_STATE>},
|
||||
{SPINEL_PROP_MCU_POWER_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MCU_POWER_STATE>},
|
||||
{SPINEL_PROP_PHY_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_ENABLED>},
|
||||
{SPINEL_PROP_PHY_CHAN, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_CHAN>},
|
||||
{SPINEL_PROP_PHY_CHAN_SUPPORTED, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_CHAN_SUPPORTED>},
|
||||
{SPINEL_PROP_PHY_FREQ, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_FREQ>},
|
||||
{SPINEL_PROP_PHY_CCA_THRESHOLD, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_CCA_THRESHOLD>},
|
||||
{SPINEL_PROP_PHY_TX_POWER, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_TX_POWER>},
|
||||
{SPINEL_PROP_PHY_RSSI, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_RSSI>},
|
||||
{SPINEL_PROP_PHY_RX_SENSITIVITY, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_RX_SENSITIVITY>},
|
||||
#define OT_NCP_GET_HANDLER_ENTRY(aPropertyName) {aPropertyName, &NcpBase::HandlePropertyGet<aPropertyName>}
|
||||
|
||||
OT_NCP_CONST static HandlerEntry sHandlerEntries[] = {
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_LAST_STATUS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PROTOCOL_VERSION),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NCP_VERSION),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_INTERFACE_TYPE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_VENDOR_ID),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CAPS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_INTERFACE_COUNT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_POWER_STATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_HWADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_LOCK),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_HOST_POWER_STATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MCU_POWER_STATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_CHAN),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_CHAN_SUPPORTED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_FREQ),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_CCA_THRESHOLD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_TX_POWER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_RSSI),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_RX_SENSITIVITY),
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_PHY_PCAP_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_PCAP_ENABLED>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_PCAP_ENABLED),
|
||||
#endif
|
||||
{SPINEL_PROP_PHY_CHAN_PREFERRED, &NcpBase::HandlePropertyGet<SPINEL_PROP_PHY_CHAN_PREFERRED>},
|
||||
{SPINEL_PROP_MAC_SCAN_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_SCAN_STATE>},
|
||||
{SPINEL_PROP_MAC_SCAN_MASK, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_SCAN_MASK>},
|
||||
{SPINEL_PROP_MAC_SCAN_PERIOD, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_SCAN_PERIOD>},
|
||||
{SPINEL_PROP_MAC_15_4_LADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_15_4_LADDR>},
|
||||
{SPINEL_PROP_MAC_15_4_SADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_15_4_SADDR>},
|
||||
{SPINEL_PROP_MAC_15_4_PANID, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_15_4_PANID>},
|
||||
{SPINEL_PROP_MAC_RAW_STREAM_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_RAW_STREAM_ENABLED>},
|
||||
{SPINEL_PROP_MAC_PROMISCUOUS_MODE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_PROMISCUOUS_MODE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_PHY_CHAN_PREFERRED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_STATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_MASK),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_PERIOD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_LADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_SADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_PANID),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_RAW_STREAM_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_PROMISCUOUS_MODE),
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_MAC_DATA_POLL_PERIOD, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_DATA_POLL_PERIOD>},
|
||||
{SPINEL_PROP_NET_SAVED, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_SAVED>},
|
||||
{SPINEL_PROP_NET_IF_UP, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_IF_UP>},
|
||||
{SPINEL_PROP_NET_STACK_UP, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_STACK_UP>},
|
||||
{SPINEL_PROP_NET_ROLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_ROLE>},
|
||||
{SPINEL_PROP_NET_NETWORK_NAME, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_NETWORK_NAME>},
|
||||
{SPINEL_PROP_NET_XPANID, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_XPANID>},
|
||||
{SPINEL_PROP_NET_MASTER_KEY, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_MASTER_KEY>},
|
||||
{SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER>},
|
||||
{SPINEL_PROP_NET_PARTITION_ID, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_PARTITION_ID>},
|
||||
{SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING>},
|
||||
{SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_DATA_POLL_PERIOD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_SAVED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_IF_UP),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_STACK_UP),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_ROLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_NETWORK_NAME),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_XPANID),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_MASTER_KEY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_PARTITION_ID),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_NET_PSKC, &NcpBase::HandlePropertyGet<SPINEL_PROP_NET_PSKC>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NET_PSKC),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_LEADER_ADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_LEADER_ADDR>},
|
||||
{SPINEL_PROP_THREAD_PARENT, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_PARENT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LEADER_ADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_PARENT),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_CHILD_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_CHILD_TABLE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_TABLE),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_LEADER_RID, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_LEADER_RID>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LEADER_RID),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_LEADER_WEIGHT, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_LEADER_WEIGHT>},
|
||||
{SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LEADER_WEIGHT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE
|
||||
{SPINEL_PROP_THREAD_NETWORK_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NETWORK_DATA>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NETWORK_DATA),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_NETWORK_DATA_VERSION, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NETWORK_DATA_VERSION>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NETWORK_DATA_VERSION),
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE
|
||||
{SPINEL_PROP_THREAD_STABLE_NETWORK_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_STABLE_NETWORK_DATA>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_STABLE_NETWORK_DATA),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_STABLE_NETWORK_DATA_VERSION,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_STABLE_NETWORK_DATA_VERSION>},
|
||||
{SPINEL_PROP_THREAD_ON_MESH_NETS, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ON_MESH_NETS>},
|
||||
{SPINEL_PROP_THREAD_OFF_MESH_ROUTES, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_OFF_MESH_ROUTES>},
|
||||
{SPINEL_PROP_THREAD_ASSISTING_PORTS, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ASSISTING_PORTS>},
|
||||
{SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE>},
|
||||
{SPINEL_PROP_THREAD_MODE, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_MODE>},
|
||||
{SPINEL_PROP_IPV6_LL_ADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_LL_ADDR>},
|
||||
{SPINEL_PROP_IPV6_ML_ADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ML_ADDR>},
|
||||
{SPINEL_PROP_IPV6_ML_PREFIX, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ML_PREFIX>},
|
||||
{SPINEL_PROP_IPV6_ADDRESS_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ADDRESS_TABLE>},
|
||||
{SPINEL_PROP_IPV6_ROUTE_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ROUTE_TABLE>},
|
||||
{SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD>},
|
||||
{SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE>},
|
||||
{SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE, &NcpBase::HandlePropertyGet<SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_STABLE_NETWORK_DATA_VERSION),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ON_MESH_NETS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_OFF_MESH_ROUTES),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ASSISTING_PORTS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MODE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_LL_ADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ML_ADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ML_PREFIX),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ADDRESS_TABLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ROUTE_TABLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE),
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_JOINER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_JOINER_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MESHCOP_JOINER_STATE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_JOINER_STATE),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_STATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MESHCOP_COMMISSIONER_STATE>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_SESSION_ID,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_MESHCOP_COMMISSIONER_SESSION_ID>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_STATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_SESSION_ID),
|
||||
#endif
|
||||
#endif // OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE
|
||||
{SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE>},
|
||||
{SPINEL_PROP_SERVER_SERVICES, &NcpBase::HandlePropertyGet<SPINEL_PROP_SERVER_SERVICES>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_SERVER_SERVICES),
|
||||
#endif
|
||||
{SPINEL_PROP_SERVER_LEADER_SERVICES, &NcpBase::HandlePropertyGet<SPINEL_PROP_SERVER_LEADER_SERVICES>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_ACK_REQ, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_ACK_REQ>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_ACKED, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_ACKED>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_NO_ACK_REQ, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_NO_ACK_REQ>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_DATA>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_DATA_POLL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_DATA_POLL>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_BEACON, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_BEACON>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_BEACON_REQ, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_BEACON_REQ>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_OTHER, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_OTHER>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_RETRY, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_RETRY>},
|
||||
{SPINEL_PROP_CNTR_TX_ERR_CCA, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_ERR_CCA>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_UNICAST, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_UNICAST>},
|
||||
{SPINEL_PROP_CNTR_TX_PKT_BROADCAST, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_PKT_BROADCAST>},
|
||||
{SPINEL_PROP_CNTR_TX_ERR_ABORT, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_ERR_ABORT>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_DATA>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_DATA_POLL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_DATA_POLL>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_BEACON, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_BEACON>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_BEACON_REQ, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_BEACON_REQ>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_OTHER, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_OTHER>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_FILT_WL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_FILT_WL>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_FILT_DA, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_FILT_DA>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_EMPTY, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_EMPTY>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_UKWN_NBR, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_UKWN_NBR>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_NVLD_SADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_NVLD_SADDR>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_SECURITY, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_SECURITY>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_BAD_FCS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_BAD_FCS>},
|
||||
{SPINEL_PROP_CNTR_RX_ERR_OTHER, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_ERR_OTHER>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_DUP, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_DUP>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_UNICAST, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_UNICAST>},
|
||||
{SPINEL_PROP_CNTR_RX_PKT_BROADCAST, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_PKT_BROADCAST>},
|
||||
{SPINEL_PROP_CNTR_TX_IP_SEC_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_IP_SEC_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_TX_IP_INSEC_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_IP_INSEC_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_TX_IP_DROPPED, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_IP_DROPPED>},
|
||||
{SPINEL_PROP_CNTR_RX_IP_SEC_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_IP_SEC_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_RX_IP_INSEC_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_IP_INSEC_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_RX_IP_DROPPED, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_IP_DROPPED>},
|
||||
{SPINEL_PROP_CNTR_TX_SPINEL_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_TX_SPINEL_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_RX_SPINEL_TOTAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_SPINEL_TOTAL>},
|
||||
{SPINEL_PROP_CNTR_RX_SPINEL_ERR, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_RX_SPINEL_ERR>},
|
||||
{SPINEL_PROP_CNTR_IP_TX_SUCCESS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_IP_TX_SUCCESS>},
|
||||
{SPINEL_PROP_CNTR_IP_RX_SUCCESS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_IP_RX_SUCCESS>},
|
||||
{SPINEL_PROP_CNTR_IP_TX_FAILURE, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_IP_TX_FAILURE>},
|
||||
{SPINEL_PROP_CNTR_IP_RX_FAILURE, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_IP_RX_FAILURE>},
|
||||
{SPINEL_PROP_MSG_BUFFER_COUNTERS, &NcpBase::HandlePropertyGet<SPINEL_PROP_MSG_BUFFER_COUNTERS>},
|
||||
{SPINEL_PROP_CNTR_ALL_MAC_COUNTERS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_ALL_MAC_COUNTERS>},
|
||||
{SPINEL_PROP_CNTR_MLE_COUNTERS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_MLE_COUNTERS>},
|
||||
{SPINEL_PROP_CNTR_ALL_IP_COUNTERS, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_ALL_IP_COUNTERS>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_SERVER_LEADER_SERVICES),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_ACK_REQ),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_ACKED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_NO_ACK_REQ),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_DATA),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_DATA_POLL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_BEACON),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_BEACON_REQ),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_OTHER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_RETRY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_ERR_CCA),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_UNICAST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_PKT_BROADCAST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_ERR_ABORT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_DATA),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_DATA_POLL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_BEACON),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_BEACON_REQ),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_OTHER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_FILT_WL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_FILT_DA),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_EMPTY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_UKWN_NBR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_NVLD_SADDR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_SECURITY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_BAD_FCS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_ERR_OTHER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_DUP),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_UNICAST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_PKT_BROADCAST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_IP_SEC_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_IP_INSEC_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_IP_DROPPED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_IP_SEC_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_IP_INSEC_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_IP_DROPPED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_TX_SPINEL_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_SPINEL_TOTAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RX_SPINEL_ERR),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_IP_TX_SUCCESS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_IP_RX_SUCCESS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_IP_TX_FAILURE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_IP_RX_FAILURE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MSG_BUFFER_COUNTERS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_ALL_MAC_COUNTERS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_MLE_COUNTERS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_ALL_IP_COUNTERS),
|
||||
#if OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE
|
||||
{SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM, &NcpBase::HandlePropertyGet<SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM),
|
||||
#endif
|
||||
{SPINEL_PROP_UNSOL_UPDATE_FILTER, &NcpBase::HandlePropertyGet<SPINEL_PROP_UNSOL_UPDATE_FILTER>},
|
||||
{SPINEL_PROP_UNSOL_UPDATE_LIST, &NcpBase::HandlePropertyGet<SPINEL_PROP_UNSOL_UPDATE_LIST>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_UNSOL_UPDATE_FILTER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_UNSOL_UPDATE_LIST),
|
||||
#if OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
|
||||
{SPINEL_PROP_JAM_DETECT_ENABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECT_ENABLE>},
|
||||
{SPINEL_PROP_JAM_DETECTED, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECTED>},
|
||||
{SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD>},
|
||||
{SPINEL_PROP_JAM_DETECT_WINDOW, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECT_WINDOW>},
|
||||
{SPINEL_PROP_JAM_DETECT_BUSY, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECT_BUSY>},
|
||||
{SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP, &NcpBase::HandlePropertyGet<SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_ENABLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECTED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_WINDOW),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_BUSY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE
|
||||
{SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_INTERVAL,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_INTERVAL>},
|
||||
{SPINEL_PROP_CHANNEL_MONITOR_RSSI_THRESHOLD,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MONITOR_RSSI_THRESHOLD>},
|
||||
{SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_WINDOW,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_WINDOW>},
|
||||
{SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_COUNT, &NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_COUNT>},
|
||||
{SPINEL_PROP_CHANNEL_MONITOR_CHANNEL_OCCUPANCY,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MONITOR_CHANNEL_OCCUPANCY>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_INTERVAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MONITOR_RSSI_THRESHOLD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_WINDOW),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_COUNT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MONITOR_CHANNEL_OCCUPANCY),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_RADIO_CAPS, &NcpBase::HandlePropertyGet<SPINEL_PROP_RADIO_CAPS>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_RADIO_CAPS),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE
|
||||
{SPINEL_PROP_RADIO_COEX_METRICS, &NcpBase::HandlePropertyGet<SPINEL_PROP_RADIO_COEX_METRICS>},
|
||||
{SPINEL_PROP_RADIO_COEX_ENABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_RADIO_COEX_ENABLE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_RADIO_COEX_METRICS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_RADIO_COEX_ENABLE),
|
||||
#endif
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_WHITELIST, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_WHITELIST>},
|
||||
{SPINEL_PROP_MAC_WHITELIST_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_WHITELIST_ENABLED>},
|
||||
{SPINEL_PROP_MAC_EXTENDED_ADDR, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_EXTENDED_ADDR>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_EXTENDED_ADDR),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_SRC_MATCH_ENABLED>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_ENABLED),
|
||||
#endif
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_BLACKLIST, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_BLACKLIST>},
|
||||
{SPINEL_PROP_MAC_BLACKLIST_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_BLACKLIST_ENABLED>},
|
||||
{SPINEL_PROP_MAC_FIXED_RSS, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_FIXED_RSS>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_FIXED_RSS),
|
||||
#endif
|
||||
{SPINEL_PROP_MAC_CCA_FAILURE_RATE, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_CCA_FAILURE_RATE>},
|
||||
{SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT, &NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_CCA_FAILURE_RATE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_CHILD_TIMEOUT, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_CHILD_TIMEOUT>},
|
||||
{SPINEL_PROP_THREAD_RLOC16, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_RLOC16>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_TIMEOUT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_RLOC16),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD>},
|
||||
{SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY>},
|
||||
{SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED>},
|
||||
{SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD>},
|
||||
{SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER>},
|
||||
{SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_NEIGHBOR_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NEIGHBOR_TABLE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NEIGHBOR_TABLE),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_CHILD_COUNT_MAX, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_CHILD_COUNT_MAX>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_COUNT_MAX),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_LEADER_NETWORK_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_LEADER_NETWORK_DATA>},
|
||||
{SPINEL_PROP_THREAD_STABLE_LEADER_NETWORK_DATA,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_STABLE_LEADER_NETWORK_DATA>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LEADER_NETWORK_DATA),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_STABLE_LEADER_NETWORK_DATA),
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_THREAD_COMMISSIONER_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_COMMISSIONER_ENABLED>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_COMMISSIONER_ENABLED),
|
||||
#endif
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG>},
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING>},
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID),
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE
|
||||
{SPINEL_PROP_THREAD_STEERING_DATA, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_STEERING_DATA>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_STEERING_DATA),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_ROUTER_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ROUTER_TABLE>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_TABLE),
|
||||
#endif // OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ACTIVE_DATASET, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ACTIVE_DATASET>},
|
||||
{SPINEL_PROP_THREAD_PENDING_DATASET, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_PENDING_DATASET>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ACTIVE_DATASET),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_PENDING_DATASET),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE>},
|
||||
{SPINEL_PROP_THREAD_NEW_DATASET, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NEW_DATASET>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NEW_DATASET),
|
||||
#if OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_DELAY, &NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_DELAY>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_DELAY),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE
|
||||
{SPINEL_PROP_THREAD_NETWORK_TIME, &NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_NETWORK_TIME>},
|
||||
{SPINEL_PROP_TIME_SYNC_PERIOD, &NcpBase::HandlePropertyGet<SPINEL_PROP_TIME_SYNC_PERIOD>},
|
||||
{SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD, &NcpBase::HandlePropertyGet<SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NETWORK_TIME),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_TIME_SYNC_PERIOD),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
|
||||
{SPINEL_PROP_CHILD_SUPERVISION_INTERVAL, &NcpBase::HandlePropertyGet<SPINEL_PROP_CHILD_SUPERVISION_INTERVAL>},
|
||||
{SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT,
|
||||
&NcpBase::HandlePropertyGet<SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHILD_SUPERVISION_INTERVAL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT),
|
||||
#endif
|
||||
#endif // OPENTHREAD_FTD
|
||||
#if OPENTHREAD_PLATFORM_POSIX_APP
|
||||
{SPINEL_PROP_RCP_VERSION, &NcpBase::HandlePropertyGet<SPINEL_PROP_RCP_VERSION>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_RCP_VERSION),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
|
||||
{SPINEL_PROP_SLAAC_ENABLED, &NcpBase::HandlePropertyGet<SPINEL_PROP_SLAAC_ENABLED>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_SLAAC_ENABLED),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_LEGACY_ENABLE
|
||||
{SPINEL_PROP_NEST_LEGACY_ULA_PREFIX, &NcpBase::HandlePropertyGet<SPINEL_PROP_NEST_LEGACY_ULA_PREFIX>},
|
||||
{SPINEL_PROP_NEST_LEGACY_LAST_NODE_JOINED, &NcpBase::HandlePropertyGet<SPINEL_PROP_NEST_LEGACY_LAST_NODE_JOINED>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NEST_LEGACY_ULA_PREFIX),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_NEST_LEGACY_LAST_NODE_JOINED),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_DEBUG_TEST_ASSERT, &NcpBase::HandlePropertyGet<SPINEL_PROP_DEBUG_TEST_ASSERT>},
|
||||
{SPINEL_PROP_DEBUG_NCP_LOG_LEVEL, &NcpBase::HandlePropertyGet<SPINEL_PROP_DEBUG_NCP_LOG_LEVEL>},
|
||||
{SPINEL_PROP_DEBUG_TEST_WATCHDOG, &NcpBase::HandlePropertyGet<SPINEL_PROP_DEBUG_TEST_WATCHDOG>},
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_DEBUG_TEST_ASSERT),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_DEBUG_NCP_LOG_LEVEL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_DEBUG_TEST_WATCHDOG),
|
||||
};
|
||||
|
||||
#undef OT_NCP_GET_HANDLER_ENTRY
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
static_assert(AreHandlerEntriesSorted(sHandlerEntries, OT_ARRAY_LENGTH(sHandlerEntries)),
|
||||
"NCP property getter entries not sorted!");
|
||||
@@ -354,218 +334,191 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey)
|
||||
|
||||
NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey)
|
||||
{
|
||||
#if __cplusplus >= 201103L
|
||||
constexpr
|
||||
#else
|
||||
const
|
||||
#endif
|
||||
static HandlerEntry sHandlerEntries[] =
|
||||
{ {SPINEL_PROP_POWER_STATE, &NcpBase::HandlePropertySet<SPINEL_PROP_POWER_STATE>},
|
||||
#define OT_NCP_SET_HANDLER_ENTRY(aPropertyName) {aPropertyName, &NcpBase::HandlePropertySet<aPropertyName>}
|
||||
|
||||
OT_NCP_CONST static HandlerEntry sHandlerEntries[] = {
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_POWER_STATE),
|
||||
#if OPENTHREAD_CONFIG_NCP_ENABLE_MCU_POWER_STATE_CONTROL
|
||||
{SPINEL_PROP_MCU_POWER_STATE, &NcpBase::HandlePropertySet<SPINEL_PROP_MCU_POWER_STATE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MCU_POWER_STATE),
|
||||
#endif
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_PHY_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_ENABLED>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_ENABLED),
|
||||
#endif
|
||||
{SPINEL_PROP_PHY_CHAN, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_CHAN>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_CHAN),
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_PHY_CHAN_SUPPORTED, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_CHAN_SUPPORTED>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_CHAN_SUPPORTED),
|
||||
#endif
|
||||
{SPINEL_PROP_PHY_CCA_THRESHOLD, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_CCA_THRESHOLD>},
|
||||
{SPINEL_PROP_PHY_TX_POWER, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_TX_POWER>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_CCA_THRESHOLD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_TX_POWER),
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_PHY_PCAP_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_PHY_PCAP_ENABLED>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_PHY_PCAP_ENABLED),
|
||||
#endif
|
||||
{SPINEL_PROP_MAC_SCAN_STATE, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SCAN_STATE>},
|
||||
{SPINEL_PROP_MAC_SCAN_MASK, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SCAN_MASK>},
|
||||
{SPINEL_PROP_MAC_SCAN_PERIOD, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SCAN_PERIOD>},
|
||||
{SPINEL_PROP_MAC_15_4_LADDR, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_15_4_LADDR>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_STATE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_MASK),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SCAN_PERIOD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_LADDR),
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_MAC_15_4_SADDR, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_15_4_SADDR>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_SADDR),
|
||||
#endif
|
||||
{SPINEL_PROP_MAC_15_4_PANID, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_15_4_PANID>},
|
||||
{SPINEL_PROP_MAC_RAW_STREAM_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_RAW_STREAM_ENABLED>},
|
||||
{SPINEL_PROP_MAC_PROMISCUOUS_MODE, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_PROMISCUOUS_MODE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_15_4_PANID),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_RAW_STREAM_ENABLED),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_PROMISCUOUS_MODE),
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_MAC_DATA_POLL_PERIOD, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_DATA_POLL_PERIOD>},
|
||||
{SPINEL_PROP_NET_IF_UP, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_IF_UP>},
|
||||
{SPINEL_PROP_NET_STACK_UP, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_STACK_UP>},
|
||||
{SPINEL_PROP_NET_ROLE, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_ROLE>},
|
||||
{SPINEL_PROP_NET_NETWORK_NAME, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_NETWORK_NAME>},
|
||||
{SPINEL_PROP_NET_XPANID, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_XPANID>},
|
||||
{SPINEL_PROP_NET_MASTER_KEY, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_MASTER_KEY>},
|
||||
{SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_DATA_POLL_PERIOD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_IF_UP),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_STACK_UP),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_ROLE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_NETWORK_NAME),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_XPANID),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_MASTER_KEY),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_NET_PARTITION_ID, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_PARTITION_ID>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_PARTITION_ID),
|
||||
#endif
|
||||
{SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING>},
|
||||
{SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_NET_PSKC, &NcpBase::HandlePropertySet<SPINEL_PROP_NET_PSKC>},
|
||||
{SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NET_PSKC),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_ASSISTING_PORTS, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ASSISTING_PORTS>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ASSISTING_PORTS),
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE
|
||||
{SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_MODE, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_MODE>},
|
||||
{SPINEL_PROP_IPV6_ML_PREFIX, &NcpBase::HandlePropertySet<SPINEL_PROP_IPV6_ML_PREFIX>},
|
||||
{SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD, &NcpBase::HandlePropertySet<SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD>},
|
||||
{SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE, &NcpBase::HandlePropertySet<SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE>},
|
||||
{SPINEL_PROP_STREAM_NET, &NcpBase::HandlePropertySet<SPINEL_PROP_STREAM_NET>},
|
||||
{SPINEL_PROP_STREAM_NET_INSECURE, &NcpBase::HandlePropertySet<SPINEL_PROP_STREAM_NET_INSECURE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MODE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ML_PREFIX),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_STREAM_NET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_STREAM_NET_INSECURE),
|
||||
#if OPENTHREAD_CONFIG_JOINER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING, &NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING),
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_STATE, &NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_STATE>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_STATE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL),
|
||||
#endif
|
||||
#endif // OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE
|
||||
{SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE),
|
||||
#endif
|
||||
{SPINEL_PROP_CNTR_RESET, &NcpBase::HandlePropertySet<SPINEL_PROP_CNTR_RESET>},
|
||||
{SPINEL_PROP_CNTR_ALL_MAC_COUNTERS, &NcpBase::HandlePropertySet<SPINEL_PROP_CNTR_ALL_MAC_COUNTERS>},
|
||||
{SPINEL_PROP_CNTR_MLE_COUNTERS, &NcpBase::HandlePropertySet<SPINEL_PROP_CNTR_MLE_COUNTERS>},
|
||||
{SPINEL_PROP_CNTR_ALL_IP_COUNTERS, &NcpBase::HandlePropertySet<SPINEL_PROP_CNTR_ALL_IP_COUNTERS>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CNTR_RESET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CNTR_ALL_MAC_COUNTERS),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CNTR_MLE_COUNTERS),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CNTR_ALL_IP_COUNTERS),
|
||||
#if OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE
|
||||
{SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM, &NcpBase::HandlePropertySet<SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM),
|
||||
#endif
|
||||
{SPINEL_PROP_UNSOL_UPDATE_FILTER, &NcpBase::HandlePropertySet<SPINEL_PROP_UNSOL_UPDATE_FILTER>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_UNSOL_UPDATE_FILTER),
|
||||
#if OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
|
||||
{SPINEL_PROP_JAM_DETECT_ENABLE, &NcpBase::HandlePropertySet<SPINEL_PROP_JAM_DETECT_ENABLE>},
|
||||
{SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD, &NcpBase::HandlePropertySet<SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD>},
|
||||
{SPINEL_PROP_JAM_DETECT_WINDOW, &NcpBase::HandlePropertySet<SPINEL_PROP_JAM_DETECT_WINDOW>},
|
||||
{SPINEL_PROP_JAM_DETECT_BUSY, &NcpBase::HandlePropertySet<SPINEL_PROP_JAM_DETECT_BUSY>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_ENABLE),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_WINDOW),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_JAM_DETECT_BUSY),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE
|
||||
{SPINEL_PROP_RADIO_COEX_ENABLE, &NcpBase::HandlePropertySet<SPINEL_PROP_RADIO_COEX_ENABLE>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_RADIO_COEX_ENABLE),
|
||||
#endif
|
||||
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_WHITELIST, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_WHITELIST>},
|
||||
{SPINEL_PROP_MAC_WHITELIST_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_WHITELIST_ENABLED>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST_ENABLED),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SRC_MATCH_ENABLED>},
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES>},
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_ENABLED),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES),
|
||||
#endif
|
||||
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_BLACKLIST, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_BLACKLIST>},
|
||||
{SPINEL_PROP_MAC_BLACKLIST_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_BLACKLIST_ENABLED>},
|
||||
{SPINEL_PROP_MAC_FIXED_RSS, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_FIXED_RSS>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST_ENABLED),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_FIXED_RSS),
|
||||
#endif
|
||||
{SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT, &NcpBase::HandlePropertySet<SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_CHILD_TIMEOUT, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_CHILD_TIMEOUT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_TIMEOUT),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD>},
|
||||
{SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY>},
|
||||
{SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU),
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED>},
|
||||
{SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD>},
|
||||
{SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER>},
|
||||
{SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID>},
|
||||
{SPINEL_PROP_THREAD_CHILD_COUNT_MAX, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_CHILD_COUNT_MAX>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CHILD_COUNT_MAX),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG>},
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING>},
|
||||
{SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID),
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE
|
||||
{SPINEL_PROP_THREAD_STEERING_DATA, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_STEERING_DATA>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_STEERING_DATA),
|
||||
#endif
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_ACTIVE_DATASET, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_ACTIVE_DATASET>},
|
||||
{SPINEL_PROP_THREAD_PENDING_DATASET, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_PENDING_DATASET>},
|
||||
{SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET>},
|
||||
{SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_ACTIVE_DATASET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_PENDING_DATASET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET),
|
||||
#if OPENTHREAD_CONFIG_UDP_FORWARD_ENABLE
|
||||
{SPINEL_PROP_THREAD_UDP_FORWARD_STREAM, &NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_UDP_FORWARD_STREAM>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_UDP_FORWARD_STREAM),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET>},
|
||||
{SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET),
|
||||
#if OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_GET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_GET>},
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_SET,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_SET>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_GET),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_SET),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL, &NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_DELAY, &NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_DELAY>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_DELAY),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS),
|
||||
#if OPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT),
|
||||
#endif
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED>},
|
||||
{SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL),
|
||||
#endif // OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
|
||||
#if OPENTHREAD_CONFIG_TIME_SYNC_ENABLE
|
||||
{SPINEL_PROP_TIME_SYNC_PERIOD, &NcpBase::HandlePropertySet<SPINEL_PROP_TIME_SYNC_PERIOD>},
|
||||
{SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD, &NcpBase::HandlePropertySet<SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_TIME_SYNC_PERIOD),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE
|
||||
{SPINEL_PROP_CHILD_SUPERVISION_INTERVAL, &NcpBase::HandlePropertySet<SPINEL_PROP_CHILD_SUPERVISION_INTERVAL>},
|
||||
{SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT,
|
||||
&NcpBase::HandlePropertySet<SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHILD_SUPERVISION_INTERVAL),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT),
|
||||
#endif
|
||||
#endif // OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_IP6_SLAAC_ENABLE
|
||||
{SPINEL_PROP_SLAAC_ENABLED, &NcpBase::HandlePropertySet<SPINEL_PROP_SLAAC_ENABLED>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_SLAAC_ENABLED),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_LEGACY_ENABLE
|
||||
{SPINEL_PROP_NEST_LEGACY_ULA_PREFIX, &NcpBase::HandlePropertySet<SPINEL_PROP_NEST_LEGACY_ULA_PREFIX>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_NEST_LEGACY_ULA_PREFIX),
|
||||
#endif
|
||||
#endif // OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE
|
||||
{SPINEL_PROP_DEBUG_NCP_LOG_LEVEL, &NcpBase::HandlePropertySet<SPINEL_PROP_DEBUG_NCP_LOG_LEVEL>},
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_DEBUG_NCP_LOG_LEVEL),
|
||||
#endif
|
||||
};
|
||||
|
||||
#undef OT_NCP_SET_HANDLER_ENTRY
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
static_assert(AreHandlerEntriesSorted(sHandlerEntries, OT_ARRAY_LENGTH(sHandlerEntries)),
|
||||
"NCP property setter entries not sorted!");
|
||||
@@ -576,47 +529,42 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey)
|
||||
|
||||
NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aKey)
|
||||
{
|
||||
#if __cplusplus >= 201103L
|
||||
constexpr
|
||||
#else
|
||||
const
|
||||
#endif
|
||||
static HandlerEntry sHandlerEntries[] = {
|
||||
#define OT_NCP_INSERT_HANDLER_ENTRY(aPropertyName) {aPropertyName, &NcpBase::HandlePropertyInsert<aPropertyName>}
|
||||
|
||||
OT_NCP_CONST static HandlerEntry sHandlerEntries[] = {
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE
|
||||
{SPINEL_PROP_THREAD_ON_MESH_NETS, &NcpBase::HandlePropertyInsert<SPINEL_PROP_THREAD_ON_MESH_NETS>},
|
||||
{SPINEL_PROP_THREAD_OFF_MESH_ROUTES, &NcpBase::HandlePropertyInsert<SPINEL_PROP_THREAD_OFF_MESH_ROUTES>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_THREAD_ON_MESH_NETS),
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_THREAD_OFF_MESH_ROUTES),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_ASSISTING_PORTS, &NcpBase::HandlePropertyInsert<SPINEL_PROP_THREAD_ASSISTING_PORTS>},
|
||||
{SPINEL_PROP_IPV6_ADDRESS_TABLE, &NcpBase::HandlePropertyInsert<SPINEL_PROP_IPV6_ADDRESS_TABLE>},
|
||||
{SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE,
|
||||
&NcpBase::HandlePropertyInsert<SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_THREAD_ASSISTING_PORTS),
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_IPV6_ADDRESS_TABLE),
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE),
|
||||
#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS,
|
||||
&NcpBase::HandlePropertyInsert<SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE
|
||||
{SPINEL_PROP_SERVER_SERVICES, &NcpBase::HandlePropertyInsert<SPINEL_PROP_SERVER_SERVICES>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_SERVER_SERVICES),
|
||||
#endif
|
||||
#endif // #if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_UNSOL_UPDATE_FILTER, &NcpBase::HandlePropertyInsert<SPINEL_PROP_UNSOL_UPDATE_FILTER>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_UNSOL_UPDATE_FILTER),
|
||||
#if (OPENTHREAD_MTD || OPENTHREAD_FTD) && OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_WHITELIST, &NcpBase::HandlePropertyInsert<SPINEL_PROP_MAC_WHITELIST>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST),
|
||||
#endif
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES,
|
||||
&NcpBase::HandlePropertyInsert<SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES>},
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES,
|
||||
&NcpBase::HandlePropertyInsert<SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES),
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES),
|
||||
#endif
|
||||
#if (OPENTHREAD_MTD || OPENTHREAD_FTD) && OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_BLACKLIST, &NcpBase::HandlePropertyInsert<SPINEL_PROP_MAC_BLACKLIST>},
|
||||
{SPINEL_PROP_MAC_FIXED_RSS, &NcpBase::HandlePropertyInsert<SPINEL_PROP_MAC_FIXED_RSS>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST),
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_MAC_FIXED_RSS),
|
||||
#endif
|
||||
#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_THREAD_JOINERS, &NcpBase::HandlePropertyInsert<SPINEL_PROP_THREAD_JOINERS>},
|
||||
OT_NCP_INSERT_HANDLER_ENTRY(SPINEL_PROP_THREAD_JOINERS),
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
#undef OT_NCP_INSERT_HANDLER_ENTRY
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
static_assert(AreHandlerEntriesSorted(sHandlerEntries, OT_ARRAY_LENGTH(sHandlerEntries)),
|
||||
@@ -628,48 +576,42 @@ NcpBase::PropertyHandler NcpBase::FindInsertPropertyHandler(spinel_prop_key_t aK
|
||||
|
||||
NcpBase::PropertyHandler NcpBase::FindRemovePropertyHandler(spinel_prop_key_t aKey)
|
||||
{
|
||||
#if __cplusplus >= 201103L
|
||||
constexpr
|
||||
#else
|
||||
const
|
||||
#endif
|
||||
static HandlerEntry sHandlerEntries[] = {
|
||||
#define OT_NCP_REMOVE_HANDLER_ENTRY(aPropertyName) {aPropertyName, &NcpBase::HandlePropertyRemove<aPropertyName>}
|
||||
|
||||
OT_NCP_CONST static HandlerEntry sHandlerEntries[] = {
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE
|
||||
{SPINEL_PROP_THREAD_ON_MESH_NETS, &NcpBase::HandlePropertyRemove<SPINEL_PROP_THREAD_ON_MESH_NETS>},
|
||||
{SPINEL_PROP_THREAD_OFF_MESH_ROUTES, &NcpBase::HandlePropertyRemove<SPINEL_PROP_THREAD_OFF_MESH_ROUTES>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_THREAD_ON_MESH_NETS),
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_THREAD_OFF_MESH_ROUTES),
|
||||
#endif
|
||||
{SPINEL_PROP_THREAD_ASSISTING_PORTS, &NcpBase::HandlePropertyRemove<SPINEL_PROP_THREAD_ASSISTING_PORTS>},
|
||||
{SPINEL_PROP_IPV6_ADDRESS_TABLE, &NcpBase::HandlePropertyRemove<SPINEL_PROP_IPV6_ADDRESS_TABLE>},
|
||||
{SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE,
|
||||
&NcpBase::HandlePropertyRemove<SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_THREAD_ASSISTING_PORTS),
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_IPV6_ADDRESS_TABLE),
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE),
|
||||
#if OPENTHREAD_FTD && OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
{SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS,
|
||||
&NcpBase::HandlePropertyRemove<SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE
|
||||
{SPINEL_PROP_SERVER_SERVICES, &NcpBase::HandlePropertyRemove<SPINEL_PROP_SERVER_SERVICES>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_SERVER_SERVICES),
|
||||
#endif
|
||||
#endif // #if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
{SPINEL_PROP_UNSOL_UPDATE_FILTER, &NcpBase::HandlePropertyRemove<SPINEL_PROP_UNSOL_UPDATE_FILTER>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_UNSOL_UPDATE_FILTER),
|
||||
#if (OPENTHREAD_MTD || OPENTHREAD_FTD) && OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_WHITELIST, &NcpBase::HandlePropertyRemove<SPINEL_PROP_MAC_WHITELIST>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MAC_WHITELIST),
|
||||
#endif
|
||||
#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES,
|
||||
&NcpBase::HandlePropertyRemove<SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES>},
|
||||
{SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES,
|
||||
&NcpBase::HandlePropertyRemove<SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES),
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES),
|
||||
#endif
|
||||
#if (OPENTHREAD_MTD || OPENTHREAD_FTD) && OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
{SPINEL_PROP_MAC_BLACKLIST, &NcpBase::HandlePropertyRemove<SPINEL_PROP_MAC_BLACKLIST>},
|
||||
{SPINEL_PROP_MAC_FIXED_RSS, &NcpBase::HandlePropertyRemove<SPINEL_PROP_MAC_FIXED_RSS>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MAC_BLACKLIST),
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_MAC_FIXED_RSS),
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
{SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS,
|
||||
&NcpBase::HandlePropertyRemove<SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS>},
|
||||
OT_NCP_REMOVE_HANDLER_ENTRY(SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS),
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
#undef OT_NCP_REMOVE_HANDLER_ENTRY
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
static_assert(AreHandlerEntriesSorted(sHandlerEntries, OT_ARRAY_LENGTH(sHandlerEntries)),
|
||||
|
||||
Reference in New Issue
Block a user