diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index 084be960f..fe7dc6e03 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -1372,8 +1372,15 @@ exit: template <> otError NcpBase::HandlePropertyGet(void) { - return mEncoder.WriteUint8(otPlatRadioGetPromiscuous(mInstance) ? SPINEL_MAC_PROMISCUOUS_MODE_FULL - : SPINEL_MAC_PROMISCUOUS_MODE_OFF); + bool isPromiscuous; + +#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE + isPromiscuous = otLinkRawGetPromiscuous(mInstance); +#else + isPromiscuous = otLinkIsPromiscuous(mInstance); +#endif + + return mEncoder.WriteUint8(isPromiscuous ? SPINEL_MAC_PROMISCUOUS_MODE_FULL : SPINEL_MAC_PROMISCUOUS_MODE_OFF); } template <> otError NcpBase::HandlePropertySet(void) @@ -1386,12 +1393,20 @@ template <> otError NcpBase::HandlePropertySet switch (mode) { case SPINEL_MAC_PROMISCUOUS_MODE_OFF: - otPlatRadioSetPromiscuous(mInstance, false); +#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE + error = otLinkRawSetPromiscuous(mInstance, false); +#else + error = otLinkSetPromiscuous(mInstance, false); +#endif break; case SPINEL_MAC_PROMISCUOUS_MODE_NETWORK: case SPINEL_MAC_PROMISCUOUS_MODE_FULL: - otPlatRadioSetPromiscuous(mInstance, true); +#if OPENTHREAD_RADIO || OPENTHREAD_CONFIG_LINK_RAW_ENABLE + error = otLinkRawSetPromiscuous(mInstance, true); +#else + error = otLinkSetPromiscuous(mInstance, true); +#endif break; default: