[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:
Paweł Wańczyk
2021-02-08 11:41:21 -08:00
committed by GitHub
parent 1b1c733146
commit 3a37d347ee
5 changed files with 50 additions and 0 deletions
+8
View File
@@ -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;
+11
View File
@@ -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,
+5
View File
@@ -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
+6
View File
@@ -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),
+20
View File
@@ -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));