diff --git a/src/lib/spinel/spinel.c b/src/lib/spinel/spinel.c index f14652cc0..fcc5e95bf 100644 --- a/src/lib/spinel/spinel.c +++ b/src/lib/spinel/spinel.c @@ -1153,10 +1153,6 @@ struct spinel_cstr uint32_t val; const char *str; }; -#define __SPINEL_CSTR(PREFIX, VALUE) \ - { \ - (uint32_t) PREFIX##VALUE, #VALUE \ - } static const char *spinel_to_cstr(const struct spinel_cstr *table, uint32_t val) { @@ -1168,468 +1164,463 @@ static const char *spinel_to_cstr(const struct spinel_cstr *table, uint32_t val) return "UNKNOWN"; } -#define SPINEL_COMMAND_CSTR(VALUE) __SPINEL_CSTR(SPINEL_CMD_, VALUE) const char *spinel_command_to_cstr(spinel_command_t command) { static const struct spinel_cstr spinel_commands_cstr[] = { - SPINEL_COMMAND_CSTR(NOOP), - SPINEL_COMMAND_CSTR(RESET), - SPINEL_COMMAND_CSTR(PROP_VALUE_GET), - SPINEL_COMMAND_CSTR(PROP_VALUE_SET), - SPINEL_COMMAND_CSTR(PROP_VALUE_INSERT), - SPINEL_COMMAND_CSTR(PROP_VALUE_REMOVE), - SPINEL_COMMAND_CSTR(PROP_VALUE_IS), - SPINEL_COMMAND_CSTR(PROP_VALUE_INSERTED), - SPINEL_COMMAND_CSTR(PROP_VALUE_REMOVED), - SPINEL_COMMAND_CSTR(NET_SAVE), - SPINEL_COMMAND_CSTR(NET_CLEAR), - SPINEL_COMMAND_CSTR(NET_RECALL), - SPINEL_COMMAND_CSTR(HBO_OFFLOAD), - SPINEL_COMMAND_CSTR(HBO_RECLAIM), - SPINEL_COMMAND_CSTR(HBO_DROP), - SPINEL_COMMAND_CSTR(HBO_OFFLOADED), - SPINEL_COMMAND_CSTR(HBO_RECLAIMED), - SPINEL_COMMAND_CSTR(HBO_DROPPED), - SPINEL_COMMAND_CSTR(PEEK), - SPINEL_COMMAND_CSTR(PEEK_RET), - SPINEL_COMMAND_CSTR(POKE), - SPINEL_COMMAND_CSTR(PROP_VALUE_MULTI_GET), - SPINEL_COMMAND_CSTR(PROP_VALUE_MULTI_SET), - SPINEL_COMMAND_CSTR(PROP_VALUES_ARE), + {SPINEL_CMD_NOOP, "NOOP"}, + {SPINEL_CMD_RESET, "RESET"}, + {SPINEL_CMD_PROP_VALUE_GET, "PROP_VALUE_GET"}, + {SPINEL_CMD_PROP_VALUE_SET, "PROP_VALUE_SET"}, + {SPINEL_CMD_PROP_VALUE_INSERT, "PROP_VALUE_INSERT"}, + {SPINEL_CMD_PROP_VALUE_REMOVE, "PROP_VALUE_REMOVE"}, + {SPINEL_CMD_PROP_VALUE_IS, "PROP_VALUE_IS"}, + {SPINEL_CMD_PROP_VALUE_INSERTED, "PROP_VALUE_INSERTED"}, + {SPINEL_CMD_PROP_VALUE_REMOVED, "PROP_VALUE_REMOVED"}, + {SPINEL_CMD_NET_SAVE, "NET_SAVE"}, + {SPINEL_CMD_NET_CLEAR, "NET_CLEAR"}, + {SPINEL_CMD_NET_RECALL, "NET_RECALL"}, + {SPINEL_CMD_HBO_OFFLOAD, "HBO_OFFLOAD"}, + {SPINEL_CMD_HBO_RECLAIM, "HBO_RECLAIM"}, + {SPINEL_CMD_HBO_DROP, "HBO_DROP"}, + {SPINEL_CMD_HBO_OFFLOADED, "HBO_OFFLOADED"}, + {SPINEL_CMD_HBO_RECLAIMED, "HBO_RECLAIMED"}, + {SPINEL_CMD_HBO_DROPPED, "HBO_DROPPED"}, + {SPINEL_CMD_PEEK, "PEEK"}, + {SPINEL_CMD_PEEK_RET, "PEEK_RET"}, + {SPINEL_CMD_POKE, "POKE"}, + {SPINEL_CMD_PROP_VALUE_MULTI_GET, "PROP_VALUE_MULTI_GET"}, + {SPINEL_CMD_PROP_VALUE_MULTI_SET, "PROP_VALUE_MULTI_SET"}, + {SPINEL_CMD_PROP_VALUES_ARE, "PROP_VALUES_ARE"}, {0}, }; return spinel_to_cstr(spinel_commands_cstr, command); } -#define SPINEL_PROP_CSTR(VALUE) __SPINEL_CSTR(SPINEL_PROP_, VALUE) const char *spinel_prop_key_to_cstr(spinel_prop_key_t prop_key) { static const struct spinel_cstr spinel_prop_cstr[] = { - SPINEL_PROP_CSTR(LAST_STATUS), - SPINEL_PROP_CSTR(PROTOCOL_VERSION), - SPINEL_PROP_CSTR(NCP_VERSION), - SPINEL_PROP_CSTR(INTERFACE_TYPE), - SPINEL_PROP_CSTR(VENDOR_ID), - SPINEL_PROP_CSTR(CAPS), - SPINEL_PROP_CSTR(INTERFACE_COUNT), - SPINEL_PROP_CSTR(POWER_STATE), - SPINEL_PROP_CSTR(HWADDR), - SPINEL_PROP_CSTR(LOCK), - SPINEL_PROP_CSTR(HBO_MEM_MAX), - SPINEL_PROP_CSTR(HBO_BLOCK_MAX), - SPINEL_PROP_CSTR(HOST_POWER_STATE), - SPINEL_PROP_CSTR(MCU_POWER_STATE), - SPINEL_PROP_CSTR(GPIO_CONFIG), - SPINEL_PROP_CSTR(GPIO_STATE), - SPINEL_PROP_CSTR(GPIO_STATE_SET), - SPINEL_PROP_CSTR(GPIO_STATE_CLEAR), - SPINEL_PROP_CSTR(TRNG_32), - SPINEL_PROP_CSTR(TRNG_128), - SPINEL_PROP_CSTR(TRNG_RAW_32), - SPINEL_PROP_CSTR(UNSOL_UPDATE_FILTER), - SPINEL_PROP_CSTR(UNSOL_UPDATE_LIST), - SPINEL_PROP_CSTR(PHY_ENABLED), - SPINEL_PROP_CSTR(PHY_CHAN), - SPINEL_PROP_CSTR(PHY_CHAN_SUPPORTED), - SPINEL_PROP_CSTR(PHY_FREQ), - SPINEL_PROP_CSTR(PHY_CCA_THRESHOLD), - SPINEL_PROP_CSTR(PHY_TX_POWER), - SPINEL_PROP_CSTR(PHY_FEM_LNA_GAIN), - SPINEL_PROP_CSTR(PHY_RSSI), - SPINEL_PROP_CSTR(PHY_RX_SENSITIVITY), - SPINEL_PROP_CSTR(PHY_PCAP_ENABLED), - SPINEL_PROP_CSTR(PHY_CHAN_PREFERRED), - SPINEL_PROP_CSTR(PHY_CHAN_MAX_POWER), - SPINEL_PROP_CSTR(JAM_DETECT_ENABLE), - SPINEL_PROP_CSTR(JAM_DETECTED), - SPINEL_PROP_CSTR(JAM_DETECT_RSSI_THRESHOLD), - SPINEL_PROP_CSTR(JAM_DETECT_WINDOW), - SPINEL_PROP_CSTR(JAM_DETECT_BUSY), - SPINEL_PROP_CSTR(JAM_DETECT_HISTORY_BITMAP), - SPINEL_PROP_CSTR(CHANNEL_MONITOR_SAMPLE_INTERVAL), - SPINEL_PROP_CSTR(CHANNEL_MONITOR_RSSI_THRESHOLD), - SPINEL_PROP_CSTR(CHANNEL_MONITOR_SAMPLE_WINDOW), - SPINEL_PROP_CSTR(CHANNEL_MONITOR_SAMPLE_COUNT), - SPINEL_PROP_CSTR(CHANNEL_MONITOR_CHANNEL_OCCUPANCY), - SPINEL_PROP_CSTR(RADIO_CAPS), - SPINEL_PROP_CSTR(RADIO_COEX_METRICS), - SPINEL_PROP_CSTR(RADIO_COEX_ENABLE), - SPINEL_PROP_CSTR(MAC_SCAN_STATE), - SPINEL_PROP_CSTR(MAC_SCAN_MASK), - SPINEL_PROP_CSTR(MAC_SCAN_PERIOD), - SPINEL_PROP_CSTR(MAC_SCAN_BEACON), - SPINEL_PROP_CSTR(MAC_15_4_LADDR), - SPINEL_PROP_CSTR(MAC_15_4_SADDR), - SPINEL_PROP_CSTR(MAC_15_4_PANID), - SPINEL_PROP_CSTR(MAC_RAW_STREAM_ENABLED), - SPINEL_PROP_CSTR(MAC_PROMISCUOUS_MODE), - SPINEL_PROP_CSTR(MAC_ENERGY_SCAN_RESULT), - SPINEL_PROP_CSTR(MAC_DATA_POLL_PERIOD), - SPINEL_PROP_CSTR(MAC_ALLOWLIST), - SPINEL_PROP_CSTR(MAC_ALLOWLIST_ENABLED), - SPINEL_PROP_CSTR(MAC_EXTENDED_ADDR), - SPINEL_PROP_CSTR(MAC_SRC_MATCH_ENABLED), - SPINEL_PROP_CSTR(MAC_SRC_MATCH_SHORT_ADDRESSES), - SPINEL_PROP_CSTR(MAC_SRC_MATCH_EXTENDED_ADDRESSES), - SPINEL_PROP_CSTR(MAC_DENYLIST), - SPINEL_PROP_CSTR(MAC_DENYLIST_ENABLED), - SPINEL_PROP_CSTR(MAC_FIXED_RSS), - SPINEL_PROP_CSTR(MAC_CCA_FAILURE_RATE), - SPINEL_PROP_CSTR(MAC_MAX_RETRY_NUMBER_DIRECT), - SPINEL_PROP_CSTR(MAC_MAX_RETRY_NUMBER_INDIRECT), - SPINEL_PROP_CSTR(NET_SAVED), - SPINEL_PROP_CSTR(NET_IF_UP), - SPINEL_PROP_CSTR(NET_STACK_UP), - SPINEL_PROP_CSTR(NET_ROLE), - SPINEL_PROP_CSTR(NET_NETWORK_NAME), - SPINEL_PROP_CSTR(NET_XPANID), - SPINEL_PROP_CSTR(NET_MASTER_KEY), - SPINEL_PROP_CSTR(NET_KEY_SEQUENCE_COUNTER), - SPINEL_PROP_CSTR(NET_PARTITION_ID), - SPINEL_PROP_CSTR(NET_REQUIRE_JOIN_EXISTING), - SPINEL_PROP_CSTR(NET_KEY_SWITCH_GUARDTIME), - SPINEL_PROP_CSTR(NET_PSKC), - SPINEL_PROP_CSTR(THREAD_LEADER_ADDR), - SPINEL_PROP_CSTR(THREAD_PARENT), - SPINEL_PROP_CSTR(THREAD_CHILD_TABLE), - SPINEL_PROP_CSTR(THREAD_LEADER_RID), - SPINEL_PROP_CSTR(THREAD_LEADER_WEIGHT), - SPINEL_PROP_CSTR(THREAD_LOCAL_LEADER_WEIGHT), - SPINEL_PROP_CSTR(THREAD_NETWORK_DATA), - SPINEL_PROP_CSTR(THREAD_NETWORK_DATA_VERSION), - SPINEL_PROP_CSTR(THREAD_STABLE_NETWORK_DATA), - SPINEL_PROP_CSTR(THREAD_STABLE_NETWORK_DATA_VERSION), - SPINEL_PROP_CSTR(THREAD_ON_MESH_NETS), - SPINEL_PROP_CSTR(THREAD_OFF_MESH_ROUTES), - SPINEL_PROP_CSTR(THREAD_ASSISTING_PORTS), - SPINEL_PROP_CSTR(THREAD_ALLOW_LOCAL_NET_DATA_CHANGE), - SPINEL_PROP_CSTR(THREAD_MODE), - SPINEL_PROP_CSTR(THREAD_CHILD_TIMEOUT), - SPINEL_PROP_CSTR(THREAD_RLOC16), - SPINEL_PROP_CSTR(THREAD_ROUTER_UPGRADE_THRESHOLD), - SPINEL_PROP_CSTR(THREAD_CONTEXT_REUSE_DELAY), - SPINEL_PROP_CSTR(THREAD_NETWORK_ID_TIMEOUT), - SPINEL_PROP_CSTR(THREAD_ACTIVE_ROUTER_IDS), - SPINEL_PROP_CSTR(THREAD_RLOC16_DEBUG_PASSTHRU), - SPINEL_PROP_CSTR(THREAD_ROUTER_ROLE_ENABLED), - SPINEL_PROP_CSTR(THREAD_ROUTER_DOWNGRADE_THRESHOLD), - SPINEL_PROP_CSTR(THREAD_ROUTER_SELECTION_JITTER), - SPINEL_PROP_CSTR(THREAD_PREFERRED_ROUTER_ID), - SPINEL_PROP_CSTR(THREAD_NEIGHBOR_TABLE), - SPINEL_PROP_CSTR(THREAD_CHILD_COUNT_MAX), - SPINEL_PROP_CSTR(THREAD_LEADER_NETWORK_DATA), - SPINEL_PROP_CSTR(THREAD_STABLE_LEADER_NETWORK_DATA), - SPINEL_PROP_CSTR(THREAD_JOINERS), - SPINEL_PROP_CSTR(THREAD_COMMISSIONER_ENABLED), - SPINEL_PROP_CSTR(THREAD_TMF_PROXY_ENABLED), - SPINEL_PROP_CSTR(THREAD_TMF_PROXY_STREAM), - SPINEL_PROP_CSTR(THREAD_UDP_FORWARD_STREAM), - SPINEL_PROP_CSTR(THREAD_DISCOVERY_SCAN_JOINER_FLAG), - SPINEL_PROP_CSTR(THREAD_DISCOVERY_SCAN_ENABLE_FILTERING), - SPINEL_PROP_CSTR(THREAD_DISCOVERY_SCAN_PANID), - SPINEL_PROP_CSTR(THREAD_STEERING_DATA), - SPINEL_PROP_CSTR(THREAD_ROUTER_TABLE), - SPINEL_PROP_CSTR(THREAD_ACTIVE_DATASET), - SPINEL_PROP_CSTR(THREAD_PENDING_DATASET), - SPINEL_PROP_CSTR(THREAD_MGMT_SET_ACTIVE_DATASET), - SPINEL_PROP_CSTR(THREAD_MGMT_SET_PENDING_DATASET), - SPINEL_PROP_CSTR(DATASET_ACTIVE_TIMESTAMP), - SPINEL_PROP_CSTR(DATASET_PENDING_TIMESTAMP), - SPINEL_PROP_CSTR(DATASET_DELAY_TIMER), - SPINEL_PROP_CSTR(DATASET_SECURITY_POLICY), - SPINEL_PROP_CSTR(DATASET_RAW_TLVS), - SPINEL_PROP_CSTR(THREAD_CHILD_TABLE_ADDRESSES), - SPINEL_PROP_CSTR(THREAD_NEIGHBOR_TABLE_ERROR_RATES), - SPINEL_PROP_CSTR(THREAD_ADDRESS_CACHE_TABLE), - SPINEL_PROP_CSTR(THREAD_MGMT_GET_ACTIVE_DATASET), - SPINEL_PROP_CSTR(THREAD_MGMT_GET_PENDING_DATASET), - SPINEL_PROP_CSTR(DATASET_DEST_ADDRESS), - SPINEL_PROP_CSTR(THREAD_NEW_DATASET), - SPINEL_PROP_CSTR(THREAD_CSL_PERIOD), - SPINEL_PROP_CSTR(THREAD_CSL_TIMEOUT), - SPINEL_PROP_CSTR(THREAD_CSL_CHANNEL), - SPINEL_PROP_CSTR(THREAD_DOMAIN_NAME), - SPINEL_PROP_CSTR(THREAD_MLR_REQUEST), - SPINEL_PROP_CSTR(THREAD_MLR_RESPONSE), - SPINEL_PROP_CSTR(THREAD_BACKBONE_ROUTER_PRIMARY), - SPINEL_PROP_CSTR(THREAD_BACKBONE_ROUTER_LOCAL_STATE), - SPINEL_PROP_CSTR(THREAD_BACKBONE_ROUTER_LOCAL_CONFIG), - SPINEL_PROP_CSTR(THREAD_BACKBONE_ROUTER_LOCAL_REGISTER), - SPINEL_PROP_CSTR(THREAD_BACKBONE_ROUTER_LOCAL_REGISTRATION_JITTER), - SPINEL_PROP_CSTR(MESHCOP_JOINER_STATE), - SPINEL_PROP_CSTR(MESHCOP_JOINER_COMMISSIONING), - SPINEL_PROP_CSTR(IPV6_LL_ADDR), - SPINEL_PROP_CSTR(IPV6_ML_ADDR), - SPINEL_PROP_CSTR(IPV6_ML_PREFIX), - SPINEL_PROP_CSTR(IPV6_ADDRESS_TABLE), - SPINEL_PROP_CSTR(IPV6_ROUTE_TABLE), - SPINEL_PROP_CSTR(IPV6_ICMP_PING_OFFLOAD), - SPINEL_PROP_CSTR(IPV6_MULTICAST_ADDRESS_TABLE), - SPINEL_PROP_CSTR(IPV6_ICMP_PING_OFFLOAD_MODE), - SPINEL_PROP_CSTR(STREAM_DEBUG), - SPINEL_PROP_CSTR(STREAM_RAW), - SPINEL_PROP_CSTR(STREAM_NET), - SPINEL_PROP_CSTR(STREAM_NET_INSECURE), - SPINEL_PROP_CSTR(STREAM_LOG), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_STATE), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_JOINERS), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_PROVISIONING_URL), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_SESSION_ID), - SPINEL_PROP_CSTR(MESHCOP_JOINER_DISCERNER), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_ENERGY_SCAN), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_ENERGY_SCAN_RESULT), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_PAN_ID_QUERY), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_PAN_ID_CONFLICT_RESULT), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_MGMT_GET), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_MGMT_SET), - SPINEL_PROP_CSTR(MESHCOP_COMMISSIONER_GENERATE_PSKC), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_NEW_CHANNEL), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_DELAY), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_SUPPORTED_CHANNELS), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_FAVORED_CHANNELS), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_CHANNEL_SELECT), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_AUTO_SELECT_ENABLED), - SPINEL_PROP_CSTR(CHANNEL_MANAGER_AUTO_SELECT_INTERVAL), - SPINEL_PROP_CSTR(THREAD_NETWORK_TIME), - SPINEL_PROP_CSTR(TIME_SYNC_PERIOD), - SPINEL_PROP_CSTR(TIME_SYNC_XTAL_THRESHOLD), - SPINEL_PROP_CSTR(CHILD_SUPERVISION_INTERVAL), - SPINEL_PROP_CSTR(CHILD_SUPERVISION_CHECK_TIMEOUT), - SPINEL_PROP_CSTR(RCP_VERSION), - SPINEL_PROP_CSTR(PARENT_RESPONSE_INFO), - SPINEL_PROP_CSTR(SLAAC_ENABLED), - SPINEL_PROP_CSTR(SUPPORTED_RADIO_LINKS), - SPINEL_PROP_CSTR(NEIGHBOR_TABLE_MULTI_RADIO_INFO), - SPINEL_PROP_CSTR(SRP_CLIENT_START), - SPINEL_PROP_CSTR(SRP_CLIENT_LEASE_INTERVAL), - SPINEL_PROP_CSTR(SRP_CLIENT_KEY_LEASE_INTERVAL), - SPINEL_PROP_CSTR(SRP_CLIENT_HOST_INFO), - SPINEL_PROP_CSTR(SRP_CLIENT_HOST_NAME), - SPINEL_PROP_CSTR(SRP_CLIENT_HOST_ADDRESSES), - SPINEL_PROP_CSTR(SRP_CLIENT_SERVICES), - SPINEL_PROP_CSTR(SRP_CLIENT_HOST_SERVICES_REMOVE), - SPINEL_PROP_CSTR(SRP_CLIENT_HOST_SERVICES_CLEAR), - SPINEL_PROP_CSTR(SRP_CLIENT_EVENT), - SPINEL_PROP_CSTR(SRP_CLIENT_SERVICE_KEY_ENABLED), - SPINEL_PROP_CSTR(SERVER_ALLOW_LOCAL_DATA_CHANGE), - SPINEL_PROP_CSTR(SERVER_SERVICES), - SPINEL_PROP_CSTR(SERVER_LEADER_SERVICES), - SPINEL_PROP_CSTR(RCP_API_VERSION), - SPINEL_PROP_CSTR(UART_BITRATE), - SPINEL_PROP_CSTR(UART_XON_XOFF), - SPINEL_PROP_CSTR(15_4_PIB_PHY_CHANNELS_SUPPORTED), - SPINEL_PROP_CSTR(15_4_PIB_MAC_PROMISCUOUS_MODE), - SPINEL_PROP_CSTR(15_4_PIB_MAC_SECURITY_ENABLED), - SPINEL_PROP_CSTR(CNTR_RESET), - SPINEL_PROP_CSTR(CNTR_TX_PKT_TOTAL), - SPINEL_PROP_CSTR(CNTR_TX_PKT_ACK_REQ), - SPINEL_PROP_CSTR(CNTR_TX_PKT_ACKED), - SPINEL_PROP_CSTR(CNTR_TX_PKT_NO_ACK_REQ), - SPINEL_PROP_CSTR(CNTR_TX_PKT_DATA), - SPINEL_PROP_CSTR(CNTR_TX_PKT_DATA_POLL), - SPINEL_PROP_CSTR(CNTR_TX_PKT_BEACON), - SPINEL_PROP_CSTR(CNTR_TX_PKT_BEACON_REQ), - SPINEL_PROP_CSTR(CNTR_TX_PKT_OTHER), - SPINEL_PROP_CSTR(CNTR_TX_PKT_RETRY), - SPINEL_PROP_CSTR(CNTR_TX_ERR_CCA), - SPINEL_PROP_CSTR(CNTR_TX_PKT_UNICAST), - SPINEL_PROP_CSTR(CNTR_TX_PKT_BROADCAST), - SPINEL_PROP_CSTR(CNTR_TX_ERR_ABORT), - SPINEL_PROP_CSTR(CNTR_RX_PKT_TOTAL), - SPINEL_PROP_CSTR(CNTR_RX_PKT_DATA), - SPINEL_PROP_CSTR(CNTR_RX_PKT_DATA_POLL), - SPINEL_PROP_CSTR(CNTR_RX_PKT_BEACON), - SPINEL_PROP_CSTR(CNTR_RX_PKT_BEACON_REQ), - SPINEL_PROP_CSTR(CNTR_RX_PKT_OTHER), - SPINEL_PROP_CSTR(CNTR_RX_PKT_FILT_WL), - SPINEL_PROP_CSTR(CNTR_RX_PKT_FILT_DA), - SPINEL_PROP_CSTR(CNTR_RX_ERR_EMPTY), - SPINEL_PROP_CSTR(CNTR_RX_ERR_UKWN_NBR), - SPINEL_PROP_CSTR(CNTR_RX_ERR_NVLD_SADDR), - SPINEL_PROP_CSTR(CNTR_RX_ERR_SECURITY), - SPINEL_PROP_CSTR(CNTR_RX_ERR_BAD_FCS), - SPINEL_PROP_CSTR(CNTR_RX_ERR_OTHER), - SPINEL_PROP_CSTR(CNTR_RX_PKT_DUP), - SPINEL_PROP_CSTR(CNTR_RX_PKT_UNICAST), - SPINEL_PROP_CSTR(CNTR_RX_PKT_BROADCAST), - SPINEL_PROP_CSTR(CNTR_TX_IP_SEC_TOTAL), - SPINEL_PROP_CSTR(CNTR_TX_IP_INSEC_TOTAL), - SPINEL_PROP_CSTR(CNTR_TX_IP_DROPPED), - SPINEL_PROP_CSTR(CNTR_RX_IP_SEC_TOTAL), - SPINEL_PROP_CSTR(CNTR_RX_IP_INSEC_TOTAL), - SPINEL_PROP_CSTR(CNTR_RX_IP_DROPPED), - SPINEL_PROP_CSTR(CNTR_TX_SPINEL_TOTAL), - SPINEL_PROP_CSTR(CNTR_RX_SPINEL_TOTAL), - SPINEL_PROP_CSTR(CNTR_RX_SPINEL_ERR), - SPINEL_PROP_CSTR(CNTR_RX_SPINEL_OUT_OF_ORDER_TID), - SPINEL_PROP_CSTR(CNTR_IP_TX_SUCCESS), - SPINEL_PROP_CSTR(CNTR_IP_RX_SUCCESS), - SPINEL_PROP_CSTR(CNTR_IP_TX_FAILURE), - SPINEL_PROP_CSTR(CNTR_IP_RX_FAILURE), - SPINEL_PROP_CSTR(MSG_BUFFER_COUNTERS), - SPINEL_PROP_CSTR(CNTR_ALL_MAC_COUNTERS), - SPINEL_PROP_CSTR(CNTR_MLE_COUNTERS), - SPINEL_PROP_CSTR(CNTR_ALL_IP_COUNTERS), - SPINEL_PROP_CSTR(CNTR_MAC_RETRY_HISTOGRAM), - SPINEL_PROP_CSTR(NEST_STREAM_MFG), - SPINEL_PROP_CSTR(NEST_LEGACY_ULA_PREFIX), - SPINEL_PROP_CSTR(NEST_LEGACY_LAST_NODE_JOINED), - SPINEL_PROP_CSTR(DEBUG_TEST_ASSERT), - SPINEL_PROP_CSTR(DEBUG_NCP_LOG_LEVEL), - SPINEL_PROP_CSTR(DEBUG_TEST_WATCHDOG), - SPINEL_PROP_CSTR(RCP_MAC_FRAME_COUNTER), - SPINEL_PROP_CSTR(RCP_MAC_KEY), - SPINEL_PROP_CSTR(DEBUG_LOG_TIMESTAMP_BASE), - SPINEL_PROP_CSTR(DEBUG_TREL_TEST_MODE_ENABLE), + {SPINEL_PROP_LAST_STATUS, "LAST_STATUS"}, + {SPINEL_PROP_PROTOCOL_VERSION, "PROTOCOL_VERSION"}, + {SPINEL_PROP_NCP_VERSION, "NCP_VERSION"}, + {SPINEL_PROP_INTERFACE_TYPE, "INTERFACE_TYPE"}, + {SPINEL_PROP_VENDOR_ID, "VENDOR_ID"}, + {SPINEL_PROP_CAPS, "CAPS"}, + {SPINEL_PROP_INTERFACE_COUNT, "INTERFACE_COUNT"}, + {SPINEL_PROP_POWER_STATE, "POWER_STATE"}, + {SPINEL_PROP_HWADDR, "HWADDR"}, + {SPINEL_PROP_LOCK, "LOCK"}, + {SPINEL_PROP_HBO_MEM_MAX, "HBO_MEM_MAX"}, + {SPINEL_PROP_HBO_BLOCK_MAX, "HBO_BLOCK_MAX"}, + {SPINEL_PROP_HOST_POWER_STATE, "HOST_POWER_STATE"}, + {SPINEL_PROP_MCU_POWER_STATE, "MCU_POWER_STATE"}, + {SPINEL_PROP_GPIO_CONFIG, "GPIO_CONFIG"}, + {SPINEL_PROP_GPIO_STATE, "GPIO_STATE"}, + {SPINEL_PROP_GPIO_STATE_SET, "GPIO_STATE_SET"}, + {SPINEL_PROP_GPIO_STATE_CLEAR, "GPIO_STATE_CLEAR"}, + {SPINEL_PROP_TRNG_32, "TRNG_32"}, + {SPINEL_PROP_TRNG_128, "TRNG_128"}, + {SPINEL_PROP_TRNG_RAW_32, "TRNG_RAW_32"}, + {SPINEL_PROP_UNSOL_UPDATE_FILTER, "UNSOL_UPDATE_FILTER"}, + {SPINEL_PROP_UNSOL_UPDATE_LIST, "UNSOL_UPDATE_LIST"}, + {SPINEL_PROP_PHY_ENABLED, "PHY_ENABLED"}, + {SPINEL_PROP_PHY_CHAN, "PHY_CHAN"}, + {SPINEL_PROP_PHY_CHAN_SUPPORTED, "PHY_CHAN_SUPPORTED"}, + {SPINEL_PROP_PHY_FREQ, "PHY_FREQ"}, + {SPINEL_PROP_PHY_CCA_THRESHOLD, "PHY_CCA_THRESHOLD"}, + {SPINEL_PROP_PHY_TX_POWER, "PHY_TX_POWER"}, + {SPINEL_PROP_PHY_FEM_LNA_GAIN, "PHY_FEM_LNA_GAIN"}, + {SPINEL_PROP_PHY_RSSI, "PHY_RSSI"}, + {SPINEL_PROP_PHY_RX_SENSITIVITY, "PHY_RX_SENSITIVITY"}, + {SPINEL_PROP_PHY_PCAP_ENABLED, "PHY_PCAP_ENABLED"}, + {SPINEL_PROP_PHY_CHAN_PREFERRED, "PHY_CHAN_PREFERRED"}, + {SPINEL_PROP_PHY_CHAN_MAX_POWER, "PHY_CHAN_MAX_POWER"}, + {SPINEL_PROP_JAM_DETECT_ENABLE, "JAM_DETECT_ENABLE"}, + {SPINEL_PROP_JAM_DETECTED, "JAM_DETECTED"}, + {SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD, "JAM_DETECT_RSSI_THRESHOLD"}, + {SPINEL_PROP_JAM_DETECT_WINDOW, "JAM_DETECT_WINDOW"}, + {SPINEL_PROP_JAM_DETECT_BUSY, "JAM_DETECT_BUSY"}, + {SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP, "JAM_DETECT_HISTORY_BITMAP"}, + {SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_INTERVAL, "CHANNEL_MONITOR_SAMPLE_INTERVAL"}, + {SPINEL_PROP_CHANNEL_MONITOR_RSSI_THRESHOLD, "CHANNEL_MONITOR_RSSI_THRESHOLD"}, + {SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_WINDOW, "CHANNEL_MONITOR_SAMPLE_WINDOW"}, + {SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_COUNT, "CHANNEL_MONITOR_SAMPLE_COUNT"}, + {SPINEL_PROP_CHANNEL_MONITOR_CHANNEL_OCCUPANCY, "CHANNEL_MONITOR_CHANNEL_OCCUPANCY"}, + {SPINEL_PROP_RADIO_CAPS, "RADIO_CAPS"}, + {SPINEL_PROP_RADIO_COEX_METRICS, "RADIO_COEX_METRICS"}, + {SPINEL_PROP_RADIO_COEX_ENABLE, "RADIO_COEX_ENABLE"}, + {SPINEL_PROP_MAC_SCAN_STATE, "MAC_SCAN_STATE"}, + {SPINEL_PROP_MAC_SCAN_MASK, "MAC_SCAN_MASK"}, + {SPINEL_PROP_MAC_SCAN_PERIOD, "MAC_SCAN_PERIOD"}, + {SPINEL_PROP_MAC_SCAN_BEACON, "MAC_SCAN_BEACON"}, + {SPINEL_PROP_MAC_15_4_LADDR, "MAC_15_4_LADDR"}, + {SPINEL_PROP_MAC_15_4_SADDR, "MAC_15_4_SADDR"}, + {SPINEL_PROP_MAC_15_4_PANID, "MAC_15_4_PANID"}, + {SPINEL_PROP_MAC_RAW_STREAM_ENABLED, "MAC_RAW_STREAM_ENABLED"}, + {SPINEL_PROP_MAC_PROMISCUOUS_MODE, "MAC_PROMISCUOUS_MODE"}, + {SPINEL_PROP_MAC_ENERGY_SCAN_RESULT, "MAC_ENERGY_SCAN_RESULT"}, + {SPINEL_PROP_MAC_DATA_POLL_PERIOD, "MAC_DATA_POLL_PERIOD"}, + {SPINEL_PROP_MAC_ALLOWLIST, "MAC_ALLOWLIST"}, + {SPINEL_PROP_MAC_ALLOWLIST_ENABLED, "MAC_ALLOWLIST_ENABLED"}, + {SPINEL_PROP_MAC_EXTENDED_ADDR, "MAC_EXTENDED_ADDR"}, + {SPINEL_PROP_MAC_SRC_MATCH_ENABLED, "MAC_SRC_MATCH_ENABLED"}, + {SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES, "MAC_SRC_MATCH_SHORT_ADDRESSES"}, + {SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES, "MAC_SRC_MATCH_EXTENDED_ADDRESSES"}, + {SPINEL_PROP_MAC_DENYLIST, "MAC_DENYLIST"}, + {SPINEL_PROP_MAC_DENYLIST_ENABLED, "MAC_DENYLIST_ENABLED"}, + {SPINEL_PROP_MAC_FIXED_RSS, "MAC_FIXED_RSS"}, + {SPINEL_PROP_MAC_CCA_FAILURE_RATE, "MAC_CCA_FAILURE_RATE"}, + {SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT, "MAC_MAX_RETRY_NUMBER_DIRECT"}, + {SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT, "MAC_MAX_RETRY_NUMBER_INDIRECT"}, + {SPINEL_PROP_NET_SAVED, "NET_SAVED"}, + {SPINEL_PROP_NET_IF_UP, "NET_IF_UP"}, + {SPINEL_PROP_NET_STACK_UP, "NET_STACK_UP"}, + {SPINEL_PROP_NET_ROLE, "NET_ROLE"}, + {SPINEL_PROP_NET_NETWORK_NAME, "NET_NETWORK_NAME"}, + {SPINEL_PROP_NET_XPANID, "NET_XPANID"}, + {SPINEL_PROP_NET_MASTER_KEY, "NET_MASTER_KEY"}, + {SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER, "NET_KEY_SEQUENCE_COUNTER"}, + {SPINEL_PROP_NET_PARTITION_ID, "NET_PARTITION_ID"}, + {SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING, "NET_REQUIRE_JOIN_EXISTING"}, + {SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME, "NET_KEY_SWITCH_GUARDTIME"}, + {SPINEL_PROP_NET_PSKC, "NET_PSKC"}, + {SPINEL_PROP_THREAD_LEADER_ADDR, "THREAD_LEADER_ADDR"}, + {SPINEL_PROP_THREAD_PARENT, "THREAD_PARENT"}, + {SPINEL_PROP_THREAD_CHILD_TABLE, "THREAD_CHILD_TABLE"}, + {SPINEL_PROP_THREAD_LEADER_RID, "THREAD_LEADER_RID"}, + {SPINEL_PROP_THREAD_LEADER_WEIGHT, "THREAD_LEADER_WEIGHT"}, + {SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT, "THREAD_LOCAL_LEADER_WEIGHT"}, + {SPINEL_PROP_THREAD_NETWORK_DATA, "THREAD_NETWORK_DATA"}, + {SPINEL_PROP_THREAD_NETWORK_DATA_VERSION, "THREAD_NETWORK_DATA_VERSION"}, + {SPINEL_PROP_THREAD_STABLE_NETWORK_DATA, "THREAD_STABLE_NETWORK_DATA"}, + {SPINEL_PROP_THREAD_STABLE_NETWORK_DATA_VERSION, "THREAD_STABLE_NETWORK_DATA_VERSION"}, + {SPINEL_PROP_THREAD_ON_MESH_NETS, "THREAD_ON_MESH_NETS"}, + {SPINEL_PROP_THREAD_OFF_MESH_ROUTES, "THREAD_OFF_MESH_ROUTES"}, + {SPINEL_PROP_THREAD_ASSISTING_PORTS, "THREAD_ASSISTING_PORTS"}, + {SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE, "THREAD_ALLOW_LOCAL_NET_DATA_CHANGE"}, + {SPINEL_PROP_THREAD_MODE, "THREAD_MODE"}, + {SPINEL_PROP_THREAD_CHILD_TIMEOUT, "THREAD_CHILD_TIMEOUT"}, + {SPINEL_PROP_THREAD_RLOC16, "THREAD_RLOC16"}, + {SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD, "THREAD_ROUTER_UPGRADE_THRESHOLD"}, + {SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY, "THREAD_CONTEXT_REUSE_DELAY"}, + {SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT, "THREAD_NETWORK_ID_TIMEOUT"}, + {SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS, "THREAD_ACTIVE_ROUTER_IDS"}, + {SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU, "THREAD_RLOC16_DEBUG_PASSTHRU"}, + {SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED, "THREAD_ROUTER_ROLE_ENABLED"}, + {SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD, "THREAD_ROUTER_DOWNGRADE_THRESHOLD"}, + {SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER, "THREAD_ROUTER_SELECTION_JITTER"}, + {SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID, "THREAD_PREFERRED_ROUTER_ID"}, + {SPINEL_PROP_THREAD_NEIGHBOR_TABLE, "THREAD_NEIGHBOR_TABLE"}, + {SPINEL_PROP_THREAD_CHILD_COUNT_MAX, "THREAD_CHILD_COUNT_MAX"}, + {SPINEL_PROP_THREAD_LEADER_NETWORK_DATA, "THREAD_LEADER_NETWORK_DATA"}, + {SPINEL_PROP_THREAD_STABLE_LEADER_NETWORK_DATA, "THREAD_STABLE_LEADER_NETWORK_DATA"}, + {SPINEL_PROP_THREAD_JOINERS, "THREAD_JOINERS"}, + {SPINEL_PROP_THREAD_COMMISSIONER_ENABLED, "THREAD_COMMISSIONER_ENABLED"}, + {SPINEL_PROP_THREAD_TMF_PROXY_ENABLED, "THREAD_TMF_PROXY_ENABLED"}, + {SPINEL_PROP_THREAD_TMF_PROXY_STREAM, "THREAD_TMF_PROXY_STREAM"}, + {SPINEL_PROP_THREAD_UDP_FORWARD_STREAM, "THREAD_UDP_FORWARD_STREAM"}, + {SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG, "THREAD_DISCOVERY_SCAN_JOINER_FLAG"}, + {SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING, "THREAD_DISCOVERY_SCAN_ENABLE_FILTERING"}, + {SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID, "THREAD_DISCOVERY_SCAN_PANID"}, + {SPINEL_PROP_THREAD_STEERING_DATA, "THREAD_STEERING_DATA"}, + {SPINEL_PROP_THREAD_ROUTER_TABLE, "THREAD_ROUTER_TABLE"}, + {SPINEL_PROP_THREAD_ACTIVE_DATASET, "THREAD_ACTIVE_DATASET"}, + {SPINEL_PROP_THREAD_PENDING_DATASET, "THREAD_PENDING_DATASET"}, + {SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET, "THREAD_MGMT_SET_ACTIVE_DATASET"}, + {SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET, "THREAD_MGMT_SET_PENDING_DATASET"}, + {SPINEL_PROP_DATASET_ACTIVE_TIMESTAMP, "DATASET_ACTIVE_TIMESTAMP"}, + {SPINEL_PROP_DATASET_PENDING_TIMESTAMP, "DATASET_PENDING_TIMESTAMP"}, + {SPINEL_PROP_DATASET_DELAY_TIMER, "DATASET_DELAY_TIMER"}, + {SPINEL_PROP_DATASET_SECURITY_POLICY, "DATASET_SECURITY_POLICY"}, + {SPINEL_PROP_DATASET_RAW_TLVS, "DATASET_RAW_TLVS"}, + {SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES, "THREAD_CHILD_TABLE_ADDRESSES"}, + {SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES, "THREAD_NEIGHBOR_TABLE_ERROR_RATES"}, + {SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE, "THREAD_ADDRESS_CACHE_TABLE"}, + {SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET, "THREAD_MGMT_GET_ACTIVE_DATASET"}, + {SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET, "THREAD_MGMT_GET_PENDING_DATASET"}, + {SPINEL_PROP_DATASET_DEST_ADDRESS, "DATASET_DEST_ADDRESS"}, + {SPINEL_PROP_THREAD_NEW_DATASET, "THREAD_NEW_DATASET"}, + {SPINEL_PROP_THREAD_CSL_PERIOD, "THREAD_CSL_PERIOD"}, + {SPINEL_PROP_THREAD_CSL_TIMEOUT, "THREAD_CSL_TIMEOUT"}, + {SPINEL_PROP_THREAD_CSL_CHANNEL, "THREAD_CSL_CHANNEL"}, + {SPINEL_PROP_THREAD_DOMAIN_NAME, "THREAD_DOMAIN_NAME"}, + {SPINEL_PROP_THREAD_MLR_REQUEST, "THREAD_MLR_REQUEST"}, + {SPINEL_PROP_THREAD_MLR_RESPONSE, "THREAD_MLR_RESPONSE"}, + {SPINEL_PROP_THREAD_BACKBONE_ROUTER_PRIMARY, "THREAD_BACKBONE_ROUTER_PRIMARY"}, + {SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_STATE, "THREAD_BACKBONE_ROUTER_LOCAL_STATE"}, + {SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_CONFIG, "THREAD_BACKBONE_ROUTER_LOCAL_CONFIG"}, + {SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_REGISTER, "THREAD_BACKBONE_ROUTER_LOCAL_REGISTER"}, + {SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_REGISTRATION_JITTER, + "THREAD_BACKBONE_ROUTER_LOCAL_REGISTRATION_JITTER"}, + {SPINEL_PROP_MESHCOP_JOINER_STATE, "MESHCOP_JOINER_STATE"}, + {SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING, "MESHCOP_JOINER_COMMISSIONING"}, + {SPINEL_PROP_IPV6_LL_ADDR, "IPV6_LL_ADDR"}, + {SPINEL_PROP_IPV6_ML_ADDR, "IPV6_ML_ADDR"}, + {SPINEL_PROP_IPV6_ML_PREFIX, "IPV6_ML_PREFIX"}, + {SPINEL_PROP_IPV6_ADDRESS_TABLE, "IPV6_ADDRESS_TABLE"}, + {SPINEL_PROP_IPV6_ROUTE_TABLE, "IPV6_ROUTE_TABLE"}, + {SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD, "IPV6_ICMP_PING_OFFLOAD"}, + {SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE, "IPV6_MULTICAST_ADDRESS_TABLE"}, + {SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE, "IPV6_ICMP_PING_OFFLOAD_MODE"}, + {SPINEL_PROP_STREAM_DEBUG, "STREAM_DEBUG"}, + {SPINEL_PROP_STREAM_RAW, "STREAM_RAW"}, + {SPINEL_PROP_STREAM_NET, "STREAM_NET"}, + {SPINEL_PROP_STREAM_NET_INSECURE, "STREAM_NET_INSECURE"}, + {SPINEL_PROP_STREAM_LOG, "STREAM_LOG"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_STATE, "MESHCOP_COMMISSIONER_STATE"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS, "MESHCOP_COMMISSIONER_JOINERS"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL, "MESHCOP_COMMISSIONER_PROVISIONING_URL"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_SESSION_ID, "MESHCOP_COMMISSIONER_SESSION_ID"}, + {SPINEL_PROP_MESHCOP_JOINER_DISCERNER, "MESHCOP_JOINER_DISCERNER"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN, "MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN, "MESHCOP_COMMISSIONER_ENERGY_SCAN"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN_RESULT, "MESHCOP_COMMISSIONER_ENERGY_SCAN_RESULT"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY, "MESHCOP_COMMISSIONER_PAN_ID_QUERY"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_CONFLICT_RESULT, "MESHCOP_COMMISSIONER_PAN_ID_CONFLICT_RESULT"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_GET, "MESHCOP_COMMISSIONER_MGMT_GET"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_SET, "MESHCOP_COMMISSIONER_MGMT_SET"}, + {SPINEL_PROP_MESHCOP_COMMISSIONER_GENERATE_PSKC, "MESHCOP_COMMISSIONER_GENERATE_PSKC"}, + {SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL, "CHANNEL_MANAGER_NEW_CHANNEL"}, + {SPINEL_PROP_CHANNEL_MANAGER_DELAY, "CHANNEL_MANAGER_DELAY"}, + {SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS, "CHANNEL_MANAGER_SUPPORTED_CHANNELS"}, + {SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS, "CHANNEL_MANAGER_FAVORED_CHANNELS"}, + {SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT, "CHANNEL_MANAGER_CHANNEL_SELECT"}, + {SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED, "CHANNEL_MANAGER_AUTO_SELECT_ENABLED"}, + {SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL, "CHANNEL_MANAGER_AUTO_SELECT_INTERVAL"}, + {SPINEL_PROP_THREAD_NETWORK_TIME, "THREAD_NETWORK_TIME"}, + {SPINEL_PROP_TIME_SYNC_PERIOD, "TIME_SYNC_PERIOD"}, + {SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD, "TIME_SYNC_XTAL_THRESHOLD"}, + {SPINEL_PROP_CHILD_SUPERVISION_INTERVAL, "CHILD_SUPERVISION_INTERVAL"}, + {SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT, "CHILD_SUPERVISION_CHECK_TIMEOUT"}, + {SPINEL_PROP_RCP_VERSION, "RCP_VERSION"}, + {SPINEL_PROP_PARENT_RESPONSE_INFO, "PARENT_RESPONSE_INFO"}, + {SPINEL_PROP_SLAAC_ENABLED, "SLAAC_ENABLED"}, + {SPINEL_PROP_SUPPORTED_RADIO_LINKS, "SUPPORTED_RADIO_LINKS"}, + {SPINEL_PROP_NEIGHBOR_TABLE_MULTI_RADIO_INFO, "NEIGHBOR_TABLE_MULTI_RADIO_INFO"}, + {SPINEL_PROP_SRP_CLIENT_START, "SRP_CLIENT_START"}, + {SPINEL_PROP_SRP_CLIENT_LEASE_INTERVAL, "SRP_CLIENT_LEASE_INTERVAL"}, + {SPINEL_PROP_SRP_CLIENT_KEY_LEASE_INTERVAL, "SRP_CLIENT_KEY_LEASE_INTERVAL"}, + {SPINEL_PROP_SRP_CLIENT_HOST_INFO, "SRP_CLIENT_HOST_INFO"}, + {SPINEL_PROP_SRP_CLIENT_HOST_NAME, "SRP_CLIENT_HOST_NAME"}, + {SPINEL_PROP_SRP_CLIENT_HOST_ADDRESSES, "SRP_CLIENT_HOST_ADDRESSES"}, + {SPINEL_PROP_SRP_CLIENT_SERVICES, "SRP_CLIENT_SERVICES"}, + {SPINEL_PROP_SRP_CLIENT_HOST_SERVICES_REMOVE, "SRP_CLIENT_HOST_SERVICES_REMOVE"}, + {SPINEL_PROP_SRP_CLIENT_HOST_SERVICES_CLEAR, "SRP_CLIENT_HOST_SERVICES_CLEAR"}, + {SPINEL_PROP_SRP_CLIENT_EVENT, "SRP_CLIENT_EVENT"}, + {SPINEL_PROP_SRP_CLIENT_SERVICE_KEY_ENABLED, "SRP_CLIENT_SERVICE_KEY_ENABLED"}, + {SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE, "SERVER_ALLOW_LOCAL_DATA_CHANGE"}, + {SPINEL_PROP_SERVER_SERVICES, "SERVER_SERVICES"}, + {SPINEL_PROP_SERVER_LEADER_SERVICES, "SERVER_LEADER_SERVICES"}, + {SPINEL_PROP_RCP_API_VERSION, "RCP_API_VERSION"}, + {SPINEL_PROP_UART_BITRATE, "UART_BITRATE"}, + {SPINEL_PROP_UART_XON_XOFF, "UART_XON_XOFF"}, + {SPINEL_PROP_15_4_PIB_PHY_CHANNELS_SUPPORTED, "15_4_PIB_PHY_CHANNELS_SUPPORTED"}, + {SPINEL_PROP_15_4_PIB_MAC_PROMISCUOUS_MODE, "15_4_PIB_MAC_PROMISCUOUS_MODE"}, + {SPINEL_PROP_15_4_PIB_MAC_SECURITY_ENABLED, "15_4_PIB_MAC_SECURITY_ENABLED"}, + {SPINEL_PROP_CNTR_RESET, "CNTR_RESET"}, + {SPINEL_PROP_CNTR_TX_PKT_TOTAL, "CNTR_TX_PKT_TOTAL"}, + {SPINEL_PROP_CNTR_TX_PKT_ACK_REQ, "CNTR_TX_PKT_ACK_REQ"}, + {SPINEL_PROP_CNTR_TX_PKT_ACKED, "CNTR_TX_PKT_ACKED"}, + {SPINEL_PROP_CNTR_TX_PKT_NO_ACK_REQ, "CNTR_TX_PKT_NO_ACK_REQ"}, + {SPINEL_PROP_CNTR_TX_PKT_DATA, "CNTR_TX_PKT_DATA"}, + {SPINEL_PROP_CNTR_TX_PKT_DATA_POLL, "CNTR_TX_PKT_DATA_POLL"}, + {SPINEL_PROP_CNTR_TX_PKT_BEACON, "CNTR_TX_PKT_BEACON"}, + {SPINEL_PROP_CNTR_TX_PKT_BEACON_REQ, "CNTR_TX_PKT_BEACON_REQ"}, + {SPINEL_PROP_CNTR_TX_PKT_OTHER, "CNTR_TX_PKT_OTHER"}, + {SPINEL_PROP_CNTR_TX_PKT_RETRY, "CNTR_TX_PKT_RETRY"}, + {SPINEL_PROP_CNTR_TX_ERR_CCA, "CNTR_TX_ERR_CCA"}, + {SPINEL_PROP_CNTR_TX_PKT_UNICAST, "CNTR_TX_PKT_UNICAST"}, + {SPINEL_PROP_CNTR_TX_PKT_BROADCAST, "CNTR_TX_PKT_BROADCAST"}, + {SPINEL_PROP_CNTR_TX_ERR_ABORT, "CNTR_TX_ERR_ABORT"}, + {SPINEL_PROP_CNTR_RX_PKT_TOTAL, "CNTR_RX_PKT_TOTAL"}, + {SPINEL_PROP_CNTR_RX_PKT_DATA, "CNTR_RX_PKT_DATA"}, + {SPINEL_PROP_CNTR_RX_PKT_DATA_POLL, "CNTR_RX_PKT_DATA_POLL"}, + {SPINEL_PROP_CNTR_RX_PKT_BEACON, "CNTR_RX_PKT_BEACON"}, + {SPINEL_PROP_CNTR_RX_PKT_BEACON_REQ, "CNTR_RX_PKT_BEACON_REQ"}, + {SPINEL_PROP_CNTR_RX_PKT_OTHER, "CNTR_RX_PKT_OTHER"}, + {SPINEL_PROP_CNTR_RX_PKT_FILT_WL, "CNTR_RX_PKT_FILT_WL"}, + {SPINEL_PROP_CNTR_RX_PKT_FILT_DA, "CNTR_RX_PKT_FILT_DA"}, + {SPINEL_PROP_CNTR_RX_ERR_EMPTY, "CNTR_RX_ERR_EMPTY"}, + {SPINEL_PROP_CNTR_RX_ERR_UKWN_NBR, "CNTR_RX_ERR_UKWN_NBR"}, + {SPINEL_PROP_CNTR_RX_ERR_NVLD_SADDR, "CNTR_RX_ERR_NVLD_SADDR"}, + {SPINEL_PROP_CNTR_RX_ERR_SECURITY, "CNTR_RX_ERR_SECURITY"}, + {SPINEL_PROP_CNTR_RX_ERR_BAD_FCS, "CNTR_RX_ERR_BAD_FCS"}, + {SPINEL_PROP_CNTR_RX_ERR_OTHER, "CNTR_RX_ERR_OTHER"}, + {SPINEL_PROP_CNTR_RX_PKT_DUP, "CNTR_RX_PKT_DUP"}, + {SPINEL_PROP_CNTR_RX_PKT_UNICAST, "CNTR_RX_PKT_UNICAST"}, + {SPINEL_PROP_CNTR_RX_PKT_BROADCAST, "CNTR_RX_PKT_BROADCAST"}, + {SPINEL_PROP_CNTR_TX_IP_SEC_TOTAL, "CNTR_TX_IP_SEC_TOTAL"}, + {SPINEL_PROP_CNTR_TX_IP_INSEC_TOTAL, "CNTR_TX_IP_INSEC_TOTAL"}, + {SPINEL_PROP_CNTR_TX_IP_DROPPED, "CNTR_TX_IP_DROPPED"}, + {SPINEL_PROP_CNTR_RX_IP_SEC_TOTAL, "CNTR_RX_IP_SEC_TOTAL"}, + {SPINEL_PROP_CNTR_RX_IP_INSEC_TOTAL, "CNTR_RX_IP_INSEC_TOTAL"}, + {SPINEL_PROP_CNTR_RX_IP_DROPPED, "CNTR_RX_IP_DROPPED"}, + {SPINEL_PROP_CNTR_TX_SPINEL_TOTAL, "CNTR_TX_SPINEL_TOTAL"}, + {SPINEL_PROP_CNTR_RX_SPINEL_TOTAL, "CNTR_RX_SPINEL_TOTAL"}, + {SPINEL_PROP_CNTR_RX_SPINEL_ERR, "CNTR_RX_SPINEL_ERR"}, + {SPINEL_PROP_CNTR_RX_SPINEL_OUT_OF_ORDER_TID, "CNTR_RX_SPINEL_OUT_OF_ORDER_TID"}, + {SPINEL_PROP_CNTR_IP_TX_SUCCESS, "CNTR_IP_TX_SUCCESS"}, + {SPINEL_PROP_CNTR_IP_RX_SUCCESS, "CNTR_IP_RX_SUCCESS"}, + {SPINEL_PROP_CNTR_IP_TX_FAILURE, "CNTR_IP_TX_FAILURE"}, + {SPINEL_PROP_CNTR_IP_RX_FAILURE, "CNTR_IP_RX_FAILURE"}, + {SPINEL_PROP_MSG_BUFFER_COUNTERS, "MSG_BUFFER_COUNTERS"}, + {SPINEL_PROP_CNTR_ALL_MAC_COUNTERS, "CNTR_ALL_MAC_COUNTERS"}, + {SPINEL_PROP_CNTR_MLE_COUNTERS, "CNTR_MLE_COUNTERS"}, + {SPINEL_PROP_CNTR_ALL_IP_COUNTERS, "CNTR_ALL_IP_COUNTERS"}, + {SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM, "CNTR_MAC_RETRY_HISTOGRAM"}, + {SPINEL_PROP_NEST_STREAM_MFG, "NEST_STREAM_MFG"}, + {SPINEL_PROP_NEST_LEGACY_ULA_PREFIX, "NEST_LEGACY_ULA_PREFIX"}, + {SPINEL_PROP_NEST_LEGACY_LAST_NODE_JOINED, "NEST_LEGACY_LAST_NODE_JOINED"}, + {SPINEL_PROP_DEBUG_TEST_ASSERT, "DEBUG_TEST_ASSERT"}, + {SPINEL_PROP_DEBUG_NCP_LOG_LEVEL, "DEBUG_NCP_LOG_LEVEL"}, + {SPINEL_PROP_DEBUG_TEST_WATCHDOG, "DEBUG_TEST_WATCHDOG"}, + {SPINEL_PROP_RCP_MAC_FRAME_COUNTER, "RCP_MAC_FRAME_COUNTER"}, + {SPINEL_PROP_RCP_MAC_KEY, "RCP_MAC_KEY"}, + {SPINEL_PROP_DEBUG_LOG_TIMESTAMP_BASE, "DEBUG_LOG_TIMESTAMP_BASE"}, + {SPINEL_PROP_DEBUG_TREL_TEST_MODE_ENABLE, "DEBUG_TREL_TEST_MODE_ENABLE"}, {0}, }; return spinel_to_cstr(spinel_prop_cstr, prop_key); } -#define SPINEL_NET_CSTR(VALUE) __SPINEL_CSTR(SPINEL_, VALUE) const char *spinel_net_role_to_cstr(uint8_t net_role) { static const struct spinel_cstr spinel_net_cstr[] = { - SPINEL_NET_CSTR(NET_ROLE_DETACHED), - SPINEL_NET_CSTR(NET_ROLE_CHILD), - SPINEL_NET_CSTR(NET_ROLE_ROUTER), - SPINEL_NET_CSTR(NET_ROLE_LEADER), + {SPINEL_NET_ROLE_DETACHED, "NET_ROLE_DETACHED"}, + {SPINEL_NET_ROLE_CHILD, "NET_ROLE_CHILD"}, + {SPINEL_NET_ROLE_ROUTER, "NET_ROLE_ROUTER"}, + {SPINEL_NET_ROLE_LEADER, "NET_ROLE_LEADER"}, {0}, }; return spinel_to_cstr(spinel_net_cstr, net_role); } -#define SPINEL_MCU_CSTR(VALUE) __SPINEL_CSTR(SPINEL_, VALUE) const char *spinel_mcu_power_state_to_cstr(uint8_t mcu_power_state) { static const struct spinel_cstr spinel_mcu_power_state_cstr[] = { - SPINEL_MCU_CSTR(MCU_POWER_STATE_ON), - SPINEL_MCU_CSTR(MCU_POWER_STATE_LOW_POWER), - SPINEL_MCU_CSTR(MCU_POWER_STATE_OFF), + {SPINEL_MCU_POWER_STATE_ON, "MCU_POWER_STATE_ON"}, + {SPINEL_MCU_POWER_STATE_LOW_POWER, "MCU_POWER_STATE_LOW_POWER"}, + {SPINEL_MCU_POWER_STATE_OFF, "MCU_POWER_STATE_OFF"}, {0}, }; return spinel_to_cstr(spinel_mcu_power_state_cstr, mcu_power_state); } -#define SPINEL_STATUS_CSTR(VALUE) __SPINEL_CSTR(SPINEL_STATUS_, VALUE) const char *spinel_status_to_cstr(spinel_status_t status) { static const struct spinel_cstr spinel_status_cstr[] = { - SPINEL_STATUS_CSTR(OK), - SPINEL_STATUS_CSTR(FAILURE), - SPINEL_STATUS_CSTR(UNIMPLEMENTED), - SPINEL_STATUS_CSTR(INVALID_ARGUMENT), - SPINEL_STATUS_CSTR(INVALID_STATE), - SPINEL_STATUS_CSTR(INVALID_COMMAND), - SPINEL_STATUS_CSTR(INVALID_INTERFACE), - SPINEL_STATUS_CSTR(INTERNAL_ERROR), - SPINEL_STATUS_CSTR(SECURITY_ERROR), - SPINEL_STATUS_CSTR(PARSE_ERROR), - SPINEL_STATUS_CSTR(IN_PROGRESS), - SPINEL_STATUS_CSTR(NOMEM), - SPINEL_STATUS_CSTR(BUSY), - SPINEL_STATUS_CSTR(PROP_NOT_FOUND), - SPINEL_STATUS_CSTR(DROPPED), - SPINEL_STATUS_CSTR(EMPTY), - SPINEL_STATUS_CSTR(CMD_TOO_BIG), - SPINEL_STATUS_CSTR(NO_ACK), - SPINEL_STATUS_CSTR(CCA_FAILURE), - SPINEL_STATUS_CSTR(ALREADY), - SPINEL_STATUS_CSTR(ITEM_NOT_FOUND), - SPINEL_STATUS_CSTR(INVALID_COMMAND_FOR_PROP), - SPINEL_STATUS_CSTR(RESPONSE_TIMEOUT), - SPINEL_STATUS_CSTR(JOIN_FAILURE), - SPINEL_STATUS_CSTR(JOIN_SECURITY), - SPINEL_STATUS_CSTR(JOIN_NO_PEERS), - SPINEL_STATUS_CSTR(JOIN_INCOMPATIBLE), - SPINEL_STATUS_CSTR(JOIN_RSP_TIMEOUT), - SPINEL_STATUS_CSTR(JOIN_SUCCESS), - SPINEL_STATUS_CSTR(RESET_POWER_ON), - SPINEL_STATUS_CSTR(RESET_EXTERNAL), - SPINEL_STATUS_CSTR(RESET_SOFTWARE), - SPINEL_STATUS_CSTR(RESET_FAULT), - SPINEL_STATUS_CSTR(RESET_CRASH), - SPINEL_STATUS_CSTR(RESET_ASSERT), - SPINEL_STATUS_CSTR(RESET_OTHER), - SPINEL_STATUS_CSTR(RESET_UNKNOWN), - SPINEL_STATUS_CSTR(RESET_WATCHDOG), + {SPINEL_STATUS_OK, "OK"}, + {SPINEL_STATUS_FAILURE, "FAILURE"}, + {SPINEL_STATUS_UNIMPLEMENTED, "UNIMPLEMENTED"}, + {SPINEL_STATUS_INVALID_ARGUMENT, "INVALID_ARGUMENT"}, + {SPINEL_STATUS_INVALID_STATE, "INVALID_STATE"}, + {SPINEL_STATUS_INVALID_COMMAND, "INVALID_COMMAND"}, + {SPINEL_STATUS_INVALID_INTERFACE, "INVALID_INTERFACE"}, + {SPINEL_STATUS_INTERNAL_ERROR, "INTERNAL_ERROR"}, + {SPINEL_STATUS_SECURITY_ERROR, "SECURITY_ERROR"}, + {SPINEL_STATUS_PARSE_ERROR, "PARSE_ERROR"}, + {SPINEL_STATUS_IN_PROGRESS, "IN_PROGRESS"}, + {SPINEL_STATUS_NOMEM, "NOMEM"}, + {SPINEL_STATUS_BUSY, "BUSY"}, + {SPINEL_STATUS_PROP_NOT_FOUND, "PROP_NOT_FOUND"}, + {SPINEL_STATUS_DROPPED, "DROPPED"}, + {SPINEL_STATUS_EMPTY, "EMPTY"}, + {SPINEL_STATUS_CMD_TOO_BIG, "CMD_TOO_BIG"}, + {SPINEL_STATUS_NO_ACK, "NO_ACK"}, + {SPINEL_STATUS_CCA_FAILURE, "CCA_FAILURE"}, + {SPINEL_STATUS_ALREADY, "ALREADY"}, + {SPINEL_STATUS_ITEM_NOT_FOUND, "ITEM_NOT_FOUND"}, + {SPINEL_STATUS_INVALID_COMMAND_FOR_PROP, "INVALID_COMMAND_FOR_PROP"}, + {SPINEL_STATUS_RESPONSE_TIMEOUT, "RESPONSE_TIMEOUT"}, + {SPINEL_STATUS_JOIN_FAILURE, "JOIN_FAILURE"}, + {SPINEL_STATUS_JOIN_SECURITY, "JOIN_SECURITY"}, + {SPINEL_STATUS_JOIN_NO_PEERS, "JOIN_NO_PEERS"}, + {SPINEL_STATUS_JOIN_INCOMPATIBLE, "JOIN_INCOMPATIBLE"}, + {SPINEL_STATUS_JOIN_RSP_TIMEOUT, "JOIN_RSP_TIMEOUT"}, + {SPINEL_STATUS_JOIN_SUCCESS, "JOIN_SUCCESS"}, + {SPINEL_STATUS_RESET_POWER_ON, "RESET_POWER_ON"}, + {SPINEL_STATUS_RESET_EXTERNAL, "RESET_EXTERNAL"}, + {SPINEL_STATUS_RESET_SOFTWARE, "RESET_SOFTWARE"}, + {SPINEL_STATUS_RESET_FAULT, "RESET_FAULT"}, + {SPINEL_STATUS_RESET_CRASH, "RESET_CRASH"}, + {SPINEL_STATUS_RESET_ASSERT, "RESET_ASSERT"}, + {SPINEL_STATUS_RESET_OTHER, "RESET_OTHER"}, + {SPINEL_STATUS_RESET_UNKNOWN, "RESET_UNKNOWN"}, + {SPINEL_STATUS_RESET_WATCHDOG, "RESET_WATCHDOG"}, {0}, }; return spinel_to_cstr(spinel_status_cstr, status); } -#define SPINEL_CAP_CSTR(VALUE) __SPINEL_CSTR(SPINEL_CAP_, VALUE) const char *spinel_capability_to_cstr(spinel_capability_t capability) { static const struct spinel_cstr spinel_cap_cstr[] = { - SPINEL_CAP_CSTR(LOCK), - SPINEL_CAP_CSTR(NET_SAVE), - SPINEL_CAP_CSTR(HBO), - SPINEL_CAP_CSTR(POWER_SAVE), - SPINEL_CAP_CSTR(COUNTERS), - SPINEL_CAP_CSTR(JAM_DETECT), - SPINEL_CAP_CSTR(PEEK_POKE), - SPINEL_CAP_CSTR(WRITABLE_RAW_STREAM), - SPINEL_CAP_CSTR(GPIO), - SPINEL_CAP_CSTR(TRNG), - SPINEL_CAP_CSTR(CMD_MULTI), - SPINEL_CAP_CSTR(UNSOL_UPDATE_FILTER), - SPINEL_CAP_CSTR(MCU_POWER_STATE), - SPINEL_CAP_CSTR(PCAP), - SPINEL_CAP_CSTR(802_15_4_2003), - SPINEL_CAP_CSTR(802_15_4_2006), - SPINEL_CAP_CSTR(802_15_4_2011), - SPINEL_CAP_CSTR(802_15_4_PIB), - SPINEL_CAP_CSTR(802_15_4_2450MHZ_OQPSK), - SPINEL_CAP_CSTR(802_15_4_915MHZ_OQPSK), - SPINEL_CAP_CSTR(802_15_4_868MHZ_OQPSK), - SPINEL_CAP_CSTR(802_15_4_915MHZ_BPSK), - SPINEL_CAP_CSTR(802_15_4_868MHZ_BPSK), - SPINEL_CAP_CSTR(802_15_4_915MHZ_ASK), - SPINEL_CAP_CSTR(802_15_4_868MHZ_ASK), - SPINEL_CAP_CSTR(CONFIG_FTD), - SPINEL_CAP_CSTR(CONFIG_MTD), - SPINEL_CAP_CSTR(CONFIG_RADIO), - SPINEL_CAP_CSTR(ROLE_ROUTER), - SPINEL_CAP_CSTR(ROLE_SLEEPY), - SPINEL_CAP_CSTR(NET_THREAD_1_0), - SPINEL_CAP_CSTR(NET_THREAD_1_1), - SPINEL_CAP_CSTR(NET_THREAD_1_2), - SPINEL_CAP_CSTR(RCP_API_VERSION), - SPINEL_CAP_CSTR(MAC_ALLOWLIST), - SPINEL_CAP_CSTR(MAC_RAW), - SPINEL_CAP_CSTR(OOB_STEERING_DATA), - SPINEL_CAP_CSTR(CHANNEL_MONITOR), - SPINEL_CAP_CSTR(CHANNEL_MANAGER), - SPINEL_CAP_CSTR(OPENTHREAD_LOG_METADATA), - SPINEL_CAP_CSTR(TIME_SYNC), - SPINEL_CAP_CSTR(CHILD_SUPERVISION), - SPINEL_CAP_CSTR(POSIX), - SPINEL_CAP_CSTR(SLAAC), - SPINEL_CAP_CSTR(RADIO_COEX), - SPINEL_CAP_CSTR(MAC_RETRY_HISTOGRAM), - SPINEL_CAP_CSTR(MULTI_RADIO), - SPINEL_CAP_CSTR(SRP_CLIENT), - SPINEL_CAP_CSTR(DUA), - SPINEL_CAP_CSTR(REFERENCE_DEVICE), - SPINEL_CAP_CSTR(ERROR_RATE_TRACKING), - SPINEL_CAP_CSTR(THREAD_COMMISSIONER), - SPINEL_CAP_CSTR(THREAD_TMF_PROXY), - SPINEL_CAP_CSTR(THREAD_UDP_FORWARD), - SPINEL_CAP_CSTR(THREAD_JOINER), - SPINEL_CAP_CSTR(THREAD_BORDER_ROUTER), - SPINEL_CAP_CSTR(THREAD_SERVICE), - SPINEL_CAP_CSTR(THREAD_CSL_RECEIVER), - SPINEL_CAP_CSTR(THREAD_BACKBONE_ROUTER), - SPINEL_CAP_CSTR(NEST_LEGACY_INTERFACE), - SPINEL_CAP_CSTR(NEST_LEGACY_NET_WAKE), - SPINEL_CAP_CSTR(NEST_TRANSMIT_HOOK), + {SPINEL_CAP_LOCK, "LOCK"}, + {SPINEL_CAP_NET_SAVE, "NET_SAVE"}, + {SPINEL_CAP_HBO, "HBO"}, + {SPINEL_CAP_POWER_SAVE, "POWER_SAVE"}, + {SPINEL_CAP_COUNTERS, "COUNTERS"}, + {SPINEL_CAP_JAM_DETECT, "JAM_DETECT"}, + {SPINEL_CAP_PEEK_POKE, "PEEK_POKE"}, + {SPINEL_CAP_WRITABLE_RAW_STREAM, "WRITABLE_RAW_STREAM"}, + {SPINEL_CAP_GPIO, "GPIO"}, + {SPINEL_CAP_TRNG, "TRNG"}, + {SPINEL_CAP_CMD_MULTI, "CMD_MULTI"}, + {SPINEL_CAP_UNSOL_UPDATE_FILTER, "UNSOL_UPDATE_FILTER"}, + {SPINEL_CAP_MCU_POWER_STATE, "MCU_POWER_STATE"}, + {SPINEL_CAP_PCAP, "PCAP"}, + {SPINEL_CAP_802_15_4_2003, "802_15_4_2003"}, + {SPINEL_CAP_802_15_4_2006, "802_15_4_2006"}, + {SPINEL_CAP_802_15_4_2011, "802_15_4_2011"}, + {SPINEL_CAP_802_15_4_PIB, "802_15_4_PIB"}, + {SPINEL_CAP_802_15_4_2450MHZ_OQPSK, "802_15_4_2450MHZ_OQPSK"}, + {SPINEL_CAP_802_15_4_915MHZ_OQPSK, "802_15_4_915MHZ_OQPSK"}, + {SPINEL_CAP_802_15_4_868MHZ_OQPSK, "802_15_4_868MHZ_OQPSK"}, + {SPINEL_CAP_802_15_4_915MHZ_BPSK, "802_15_4_915MHZ_BPSK"}, + {SPINEL_CAP_802_15_4_868MHZ_BPSK, "802_15_4_868MHZ_BPSK"}, + {SPINEL_CAP_802_15_4_915MHZ_ASK, "802_15_4_915MHZ_ASK"}, + {SPINEL_CAP_802_15_4_868MHZ_ASK, "802_15_4_868MHZ_ASK"}, + {SPINEL_CAP_CONFIG_FTD, "CONFIG_FTD"}, + {SPINEL_CAP_CONFIG_MTD, "CONFIG_MTD"}, + {SPINEL_CAP_CONFIG_RADIO, "CONFIG_RADIO"}, + {SPINEL_CAP_ROLE_ROUTER, "ROLE_ROUTER"}, + {SPINEL_CAP_ROLE_SLEEPY, "ROLE_SLEEPY"}, + {SPINEL_CAP_NET_THREAD_1_0, "NET_THREAD_1_0"}, + {SPINEL_CAP_NET_THREAD_1_1, "NET_THREAD_1_1"}, + {SPINEL_CAP_NET_THREAD_1_2, "NET_THREAD_1_2"}, + {SPINEL_CAP_RCP_API_VERSION, "RCP_API_VERSION"}, + {SPINEL_CAP_MAC_ALLOWLIST, "MAC_ALLOWLIST"}, + {SPINEL_CAP_MAC_RAW, "MAC_RAW"}, + {SPINEL_CAP_OOB_STEERING_DATA, "OOB_STEERING_DATA"}, + {SPINEL_CAP_CHANNEL_MONITOR, "CHANNEL_MONITOR"}, + {SPINEL_CAP_CHANNEL_MANAGER, "CHANNEL_MANAGER"}, + {SPINEL_CAP_OPENTHREAD_LOG_METADATA, "OPENTHREAD_LOG_METADATA"}, + {SPINEL_CAP_TIME_SYNC, "TIME_SYNC"}, + {SPINEL_CAP_CHILD_SUPERVISION, "CHILD_SUPERVISION"}, + {SPINEL_CAP_POSIX, "POSIX"}, + {SPINEL_CAP_SLAAC, "SLAAC"}, + {SPINEL_CAP_RADIO_COEX, "RADIO_COEX"}, + {SPINEL_CAP_MAC_RETRY_HISTOGRAM, "MAC_RETRY_HISTOGRAM"}, + {SPINEL_CAP_MULTI_RADIO, "MULTI_RADIO"}, + {SPINEL_CAP_SRP_CLIENT, "SRP_CLIENT"}, + {SPINEL_CAP_DUA, "DUA"}, + {SPINEL_CAP_REFERENCE_DEVICE, "REFERENCE_DEVICE"}, + {SPINEL_CAP_ERROR_RATE_TRACKING, "ERROR_RATE_TRACKING"}, + {SPINEL_CAP_THREAD_COMMISSIONER, "THREAD_COMMISSIONER"}, + {SPINEL_CAP_THREAD_TMF_PROXY, "THREAD_TMF_PROXY"}, + {SPINEL_CAP_THREAD_UDP_FORWARD, "THREAD_UDP_FORWARD"}, + {SPINEL_CAP_THREAD_JOINER, "THREAD_JOINER"}, + {SPINEL_CAP_THREAD_BORDER_ROUTER, "THREAD_BORDER_ROUTER"}, + {SPINEL_CAP_THREAD_SERVICE, "THREAD_SERVICE"}, + {SPINEL_CAP_THREAD_CSL_RECEIVER, "THREAD_CSL_RECEIVER"}, + {SPINEL_CAP_THREAD_BACKBONE_ROUTER, "THREAD_BACKBONE_ROUTER"}, + {SPINEL_CAP_NEST_LEGACY_INTERFACE, "NEST_LEGACY_INTERFACE"}, + {SPINEL_CAP_NEST_LEGACY_NET_WAKE, "NEST_LEGACY_NET_WAKE"}, + {SPINEL_CAP_NEST_TRANSMIT_HOOK, "NEST_TRANSMIT_HOOK"}, {0}, };