mirror of
https://github.com/espressif/openthread.git
synced 2026-08-11 21:27:46 +00:00
[spinel] add domain name spinel property (#6144)
This commit adds new domain name spinel property for NCP. Such NCP will have also a new capability SPINEL_CAP_NET_THREAD_1_2.
This commit is contained in:
@@ -1835,6 +1835,10 @@ const char *spinel_prop_key_to_cstr(spinel_prop_key_t prop_key)
|
||||
ret = "SPINEL_PROP_THREAD_CSL_CHANNEL";
|
||||
break;
|
||||
|
||||
case SPINEL_PROP_THREAD_DOMAIN_NAME:
|
||||
ret = "SPINEL_PROP_THREAD_DOMAIN_NAME";
|
||||
break;
|
||||
|
||||
case SPINEL_PROP_MESHCOP_JOINER_STATE:
|
||||
ret = "MESHCOP_JOINER_STATE";
|
||||
break;
|
||||
@@ -2691,6 +2695,10 @@ const char *spinel_capability_to_cstr(spinel_capability_t capability)
|
||||
ret = "NET_THREAD_1_1";
|
||||
break;
|
||||
|
||||
case SPINEL_CAP_NET_THREAD_1_2:
|
||||
ret = "NET_THREAD_1_2";
|
||||
break;
|
||||
|
||||
case SPINEL_CAP_RCP_API_VERSION:
|
||||
ret = "RCP_API_VERSION";
|
||||
break;
|
||||
|
||||
@@ -1158,6 +1158,7 @@ enum
|
||||
SPINEL_CAP_NET__BEGIN = 52,
|
||||
SPINEL_CAP_NET_THREAD_1_0 = (SPINEL_CAP_NET__BEGIN + 0),
|
||||
SPINEL_CAP_NET_THREAD_1_1 = (SPINEL_CAP_NET__BEGIN + 1),
|
||||
SPINEL_CAP_NET_THREAD_1_2 = (SPINEL_CAP_NET__BEGIN + 2),
|
||||
SPINEL_CAP_NET__END = 64,
|
||||
|
||||
SPINEL_CAP_RCP__BEGIN = 64,
|
||||
@@ -2924,6 +2925,16 @@ enum
|
||||
*/
|
||||
SPINEL_PROP_THREAD_CSL_CHANNEL = SPINEL_PROP_THREAD_EXT__BEGIN + 43,
|
||||
|
||||
/// Thread Domain Name
|
||||
/** Format `U` - Read-write
|
||||
* Required capability: `SPINEL_CAP_NET_THREAD_1_2`
|
||||
*
|
||||
* This property is available since Thread 1.2.0.
|
||||
* Write to this property succeeds only when Thread protocols are disabled.
|
||||
*
|
||||
*/
|
||||
SPINEL_PROP_THREAD_DOMAIN_NAME = SPINEL_PROP_THREAD_EXT__BEGIN + 44,
|
||||
|
||||
SPINEL_PROP_THREAD_EXT__END = 0x1600,
|
||||
|
||||
SPINEL_PROP_IPV6__BEGIN = 0x60,
|
||||
|
||||
@@ -1836,6 +1836,11 @@ template <> otError NcpBase::HandlePropertyGet<SPINEL_PROP_CAPS>(void)
|
||||
#if OPENTHREAD_MTD || OPENTHREAD_FTD
|
||||
|
||||
SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_NET_THREAD_1_1));
|
||||
|
||||
#if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2)
|
||||
SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_NET_THREAD_1_2));
|
||||
#endif
|
||||
|
||||
SuccessOrExit(error = mEncoder.WriteUintPacked(SPINEL_CAP_PCAP));
|
||||
|
||||
#if OPENTHREAD_CONFIG_MAC_FILTER_ENABLE
|
||||
|
||||
@@ -307,6 +307,9 @@ NcpBase::PropertyHandler NcpBase::FindGetPropertyHandler(spinel_prop_key_t aKey)
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CSL_CHANNEL),
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
#if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2)
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DOMAIN_NAME),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL),
|
||||
OT_NCP_GET_HANDLER_ENTRY(SPINEL_PROP_CHANNEL_MANAGER_DELAY),
|
||||
@@ -535,6 +538,9 @@ NcpBase::PropertyHandler NcpBase::FindSetPropertyHandler(spinel_prop_key_t aKey)
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_CSL_CHANNEL),
|
||||
#endif
|
||||
#if OPENTHREAD_FTD
|
||||
#if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2)
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_THREAD_DOMAIN_NAME),
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN),
|
||||
OT_NCP_SET_HANDLER_ENTRY(SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN),
|
||||
|
||||
@@ -331,6 +331,26 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
#if (OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2)
|
||||
template <> otError NcpBase::HandlePropertyGet<SPINEL_PROP_THREAD_DOMAIN_NAME>(void)
|
||||
{
|
||||
return mEncoder.WriteUtf8(otThreadGetDomainName(mInstance));
|
||||
}
|
||||
|
||||
template <> otError NcpBase::HandlePropertySet<SPINEL_PROP_THREAD_DOMAIN_NAME>(void)
|
||||
{
|
||||
otError error = OT_ERROR_NONE;
|
||||
const char *domainName;
|
||||
|
||||
SuccessOrExit(error = mDecoder.ReadUtf8(domainName));
|
||||
|
||||
error = otThreadSetDomainName(mInstance, domainName);
|
||||
|
||||
exit:
|
||||
return error;
|
||||
}
|
||||
#endif
|
||||
|
||||
template <> otError NcpBase::HandlePropertyGet<SPINEL_PROP_NET_PSKC>(void)
|
||||
{
|
||||
return mEncoder.WriteData(otThreadGetPskc(mInstance)->m8, sizeof(spinel_net_pskc_t));
|
||||
|
||||
Reference in New Issue
Block a user