mirror of
https://github.com/espressif/openthread.git
synced 2026-08-11 21:27:46 +00:00
Add spinel property and its handler to get the msg buffer counter info (#944)
This commit is contained in:
committed by
Jonathan Hui
parent
8d55f4f823
commit
ea3936a198
@@ -197,6 +197,8 @@ const NcpBase::GetPropertyHandlerEntry NcpBase::mGetPropertyHandlerTable[] =
|
||||
{ SPINEL_PROP_CNTR_RX_SPINEL_TOTAL, &NcpBase::GetPropertyHandler_NCP_CNTR },
|
||||
{ SPINEL_PROP_CNTR_RX_SPINEL_ERR, &NcpBase::GetPropertyHandler_NCP_CNTR },
|
||||
|
||||
{ SPINEL_PROP_MSG_BUFFER_COUNTERS, &NcpBase::GetPropertyHandler_MSG_BUFFER_COUNTERS },
|
||||
|
||||
#if OPENTHREAD_ENABLE_LEGACY
|
||||
{ SPINEL_PROP_NEST_LEGACY_ULA_PREFIX, &NcpBase::GetPropertyHandler_NEST_LEGACY_ULA_PREFIX },
|
||||
#endif
|
||||
@@ -2572,6 +2574,42 @@ bail:
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
ThreadError NcpBase::GetPropertyHandler_MSG_BUFFER_COUNTERS(uint8_t header, spinel_prop_key_t key)
|
||||
{
|
||||
ThreadError errorCode = kThreadError_None;
|
||||
otBufferInfo bufferInfo;
|
||||
|
||||
otGetMessageBufferInfo(mInstance, &bufferInfo);
|
||||
|
||||
SuccessOrExit(errorCode = OutboundFrameBegin());
|
||||
|
||||
SuccessOrExit(errorCode = OutboundFrameFeedPacked("Cii", header, SPINEL_CMD_PROP_VALUE_IS, key));
|
||||
|
||||
SuccessOrExit(errorCode = OutboundFrameFeedPacked("T(SSSSSSSSSSSSSSSS)",
|
||||
bufferInfo.mTotalBuffers,
|
||||
bufferInfo.mFreeBuffers,
|
||||
bufferInfo.m6loSendMessages,
|
||||
bufferInfo.m6loSendBuffers,
|
||||
bufferInfo.m6loReassemblyMessages,
|
||||
bufferInfo.m6loReassemblyBuffers,
|
||||
bufferInfo.mIp6Messages,
|
||||
bufferInfo.mIp6Buffers,
|
||||
bufferInfo.mMplMessages,
|
||||
bufferInfo.mMplBuffers,
|
||||
bufferInfo.mMleMessages,
|
||||
bufferInfo.mMleBuffers,
|
||||
bufferInfo.mArpMessages,
|
||||
bufferInfo.mArpBuffers,
|
||||
bufferInfo.mCoapClientMessages,
|
||||
bufferInfo.mCoapClientBuffers
|
||||
));
|
||||
|
||||
SuccessOrExit(errorCode = OutboundFrameSend());
|
||||
|
||||
exit:
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
ThreadError NcpBase::GetPropertyHandler_MAC_WHITELIST(uint8_t header, spinel_prop_key_t key)
|
||||
{
|
||||
otMacWhitelistEntry entry;
|
||||
|
||||
@@ -331,6 +331,7 @@ private:
|
||||
ThreadError GetPropertyHandler_THREAD_ROUTER_ROLE_ENABLED(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_MAC_CNTR(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_NCP_CNTR(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_MSG_BUFFER_COUNTERS(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_MAC_WHITELIST(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_MAC_WHITELIST_ENABLED(uint8_t header, spinel_prop_key_t key);
|
||||
ThreadError GetPropertyHandler_THREAD_MODE(uint8_t header, spinel_prop_key_t key);
|
||||
|
||||
@@ -829,6 +829,29 @@ typedef enum
|
||||
/** Format: `L` (Read-only) */
|
||||
SPINEL_PROP_CNTR_RX_SPINEL_ERR = SPINEL_PROP_CNTR__BEGIN + 302,
|
||||
|
||||
/// The message buffer counter info
|
||||
/** Format: `T(SSSSSSSSSSSSSSSS)` (Read-only)
|
||||
* `T(`
|
||||
* `S`, (TotalBuffers) The number of buffers in the pool.
|
||||
* `S`, (FreeBuffers) The number of free message buffers.
|
||||
* `S`, (6loSendMessages) The number of messages in the 6lo send queue.
|
||||
* `S`, (6loSendBuffers) The number of buffers in the 6lo send queue.
|
||||
* `S`, (6loReassemblyMessages) The number of messages in the 6LoWPAN reassembly queue.
|
||||
* `S`, (6loReassemblyBuffers) The number of buffers in the 6LoWPAN reassembly queue.
|
||||
* `S`, (Ip6Messages) The number of messages in the IPv6 send queue.
|
||||
* `S`, (Ip6Buffers) The number of buffers in the IPv6 send queue.
|
||||
* `S`, (MplMessages) The number of messages in the MPL send queue.
|
||||
* `S`, (MplBuffers) The number of buffers in the MPL send queue.
|
||||
* `S`, (MleMessages) The number of messages in the MLE send queue.
|
||||
* `S`, (MleBuffers) The number of buffers in the MLE send queue.
|
||||
* `S`, (ArpMessages) The number of messages in the ARP send queue.
|
||||
* `S`, (ArpBuffers) The number of buffers in the ARP send queue.
|
||||
* `S`, (CoapClientMessages) The number of messages in the CoAP client send queue.
|
||||
* `S`, (CoapClientBuffers) The number of buffers in the CoAP client send queue.
|
||||
* `)`
|
||||
*/
|
||||
SPINEL_PROP_MSG_BUFFER_COUNTERS = SPINEL_PROP_CNTR__BEGIN + 400,
|
||||
|
||||
SPINEL_PROP_CNTR__END = 2048,
|
||||
|
||||
SPINEL_PROP_NEST__BEGIN = 15296,
|
||||
|
||||
Reference in New Issue
Block a user