[ncp] add new spinel property SPINEL_PROP_MAC_CCA_FAILURE_RATE (#2500)

This commit adds new spinel property corresponding to the MAC CCA
failure rate, and its get handler in `NcpBase`.
This commit is contained in:
Abtin Keshavarzian
2018-01-23 17:10:13 +00:00
committed by Jonathan Hui
parent 39af476d70
commit 171c951eaf
6 changed files with 28 additions and 1 deletions
@@ -202,3 +202,9 @@ Structure Parameters:
* Packed-Encoding: `b`
* Required capability: `CAP_MAC_WHITELIST`
### PROP 4873: PROP_MAC_CCA_FAILURE_RATE {#prop-mac-cca-failure-rate}
* Type: Read Only
* Packed-Encoding: `S`
This property provides the current CCA (Clear Channel Assessment) failure rate.
Maximum value `0xffff` corresponding to 100% failure rate.
+1
View File
@@ -92,6 +92,7 @@ const NcpBase::PropertyHandlerEntry NcpBase::mGetPropertyHandlerTable[] =
NCP_GET_PROP_HANDLER_ENTRY(MAC_SCAN_STATE),
NCP_GET_PROP_HANDLER_ENTRY(MAC_SCAN_MASK),
NCP_GET_PROP_HANDLER_ENTRY(MAC_SCAN_PERIOD),
NCP_GET_PROP_HANDLER_ENTRY(MAC_CCA_FAILURE_RATE),
#if OPENTHREAD_ENABLE_MAC_FILTER
NCP_GET_PROP_HANDLER_ENTRY(MAC_BLACKLIST),
NCP_GET_PROP_HANDLER_ENTRY(MAC_BLACKLIST_ENABLED),
+1
View File
@@ -428,6 +428,7 @@ protected:
NCP_SET_PROP_HANDLER(MAC_SCAN_PERIOD);
NCP_GET_PROP_HANDLER(MAC_SCAN_STATE);
NCP_SET_PROP_HANDLER(MAC_SCAN_STATE);
NCP_GET_PROP_HANDLER(MAC_CCA_FAILURE_RATE);
#if OPENTHREAD_ENABLE_MAC_FILTER
NCP_GET_PROP_HANDLER(MAC_WHITELIST_ENABLED);
NCP_SET_PROP_HANDLER(MAC_WHITELIST_ENABLED);
+5
View File
@@ -1518,6 +1518,11 @@ exit:
#endif // OPENTHREAD_ENABLE_CHANNEL_MONITOR
otError NcpBase::GetPropertyHandler_MAC_CCA_FAILURE_RATE(void)
{
return mEncoder.WriteUint16(otLinkGetCcaFailureRate(mInstance));
}
otError NcpBase::GetPropertyHandler_CNTR_TX_PKT_TOTAL(void)
{
return mEncoder.WriteUint32(otLinkGetCounters(mInstance)->mTxTotal);
+4
View File
@@ -1289,6 +1289,10 @@ spinel_prop_key_to_cstr(spinel_prop_key_t prop_key)
ret = "PROP_MAC_FIXED_RSS";
break;
case SPINEL_PROP_MAC_CCA_FAILURE_RATE:
ret = "PROP_MAC_CCA_FAILURE_RATE";
break;
case SPINEL_PROP_NET_SAVED:
ret = "PROP_NET_SAVED";
break;
+11 -1
View File
@@ -845,7 +845,17 @@ typedef enum
* * `E`: Optional EUI64 address of node. Set default RSS if not included.
* * `c`: Fixed RSS. OT_MAC_FILTER_FIXED_RSS_OVERRIDE_DISABLED(127) means not set.
*/
SPINEL_PROP_MAC_FIXED_RSS = SPINEL_PROP_MAC_EXT__BEGIN + 8,
SPINEL_PROP_MAC_FIXED_RSS = SPINEL_PROP_MAC_EXT__BEGIN + 8,
/// The CCA failure rate
/** Format: `S`
*
* This property provides the current CCA (Clear Channel Assessment) failure rate.
*
* Maximum value `0xffff` corresponding to 100% failure rate.
*
*/
SPINEL_PROP_MAC_CCA_FAILURE_RATE = SPINEL_PROP_MAC_EXT__BEGIN + 9,
SPINEL_PROP_MAC_EXT__END = 0x1400,