[simulation] send enh-ack for 802.15.4-2015 frames (#5039)

This commit changes the simulation radio to send secured enh-ack for
secured frames. This improves code coverage for testing.
This commit is contained in:
Yakun Xu
2020-06-03 10:59:19 -07:00
committed by GitHub
parent 6de8d778b7
commit f302796bd2
3 changed files with 22 additions and 11 deletions
+18 -7
View File
@@ -732,7 +732,7 @@ void radioTransmit(struct RadioMessage *aMessage, const struct otRadioFrame *aFr
#endif // OPENTHREAD_SIMULATION_VIRTUAL_TIME == 0
}
void radioGenerateAck(void)
void radioSendAck(void)
{
if (
#if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2
@@ -746,17 +746,28 @@ void radioGenerateAck(void)
sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending = true;
}
otMacFrameGenerateImmAck(&sReceiveFrame, sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending, &sAckFrame);
}
void radioSendAck(void)
{
radioGenerateAck();
#if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2
// Use enh-ack for 802.15.4-2015 frames
if (otMacFrameIsVersion2015(&sReceiveFrame))
{
otEXPECT(otMacFrameGenerateEnhAck(&sReceiveFrame, sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending, NULL, 0,
&sAckFrame) == OT_ERROR_NONE);
}
else
#endif
{
otMacFrameGenerateImmAck(&sReceiveFrame, sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending, &sAckFrame);
}
sAckMessage.mChannel = sReceiveFrame.mChannel;
radioComputeCrc(&sAckMessage, sAckFrame.mLength);
radioTransmit(&sAckMessage, &sAckFrame);
#if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2
exit:
#endif
return;
}
void radioProcessFrame(otInstance *aInstance)