From 3ef4641b36582e98fb17cf63a6f0b9a5e6fdd17f Mon Sep 17 00:00:00 2001 From: Yakun Xu Date: Sat, 13 Oct 2018 13:18:20 +0800 Subject: [PATCH] [posix-app] verify radio capabilities (#3148) --- src/posix/platform/radio_spinel.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/posix/platform/radio_spinel.cpp b/src/posix/platform/radio_spinel.cpp index 709df409c..15b06e3a1 100644 --- a/src/posix/platform/radio_spinel.cpp +++ b/src/posix/platform/radio_spinel.cpp @@ -560,9 +560,13 @@ void RadioSpinel::Init(const char *aRadioFile, const char *aRadioConfig) } { + const otRadioCaps kRequiredRadioCaps = + OT_RADIO_CAPS_ACK_TIMEOUT | OT_RADIO_CAPS_TRANSMIT_RETRIES | OT_RADIO_CAPS_CSMA_BACKOFF; unsigned int caps; + SuccessOrExit(error = Get(SPINEL_PROP_RADIO_CAPS, SPINEL_DATATYPE_UINT_PACKED_S, &caps)); mRadioCaps = static_cast(caps); + VerifyOrExit((mRadioCaps & kRequiredRadioCaps) == kRequiredRadioCaps, error = OT_ERROR_NOT_CAPABLE); } mRxRadioFrame.mPsdu = mRxPsdu;