bug描述:
MAC_CbackEvent中,消息MAC_MCPS_DATA_CNF返回的内容中,pData->dataCnf.pDataReq中的msdu,其实不是msdu,而是包含了mac header部分。msdu.len的长度是整个MAC包减去CRC的长度,msdu.p[0]和msdu[1]为MAC Frame Control域而非NWK Frame Control域。但是在StubAPS_ZMacCallback的处理中,直接把msdu.p当做网络层的域来处理,这是不对的。
uint8 StubAPS_ZMacCallback( uint8 *msgPtr )
{
uint16 nwk_fc;
uint8 aps_fc;
uint8 frameType;
uint8 *buf = NULL;
uint8 event = ((osal_event_hdr_t *)msgPtr)->event;
if ( event == MAC_MCPS_DATA_IND )
{
buf = ((macMcpsDataInd_t *)msgPtr)->msdu.p;
}
else if ( event == MAC_MCPS_DATA_CNF )
{
buf = ((macMcpsDataCnf_t *)msgPtr)->pDataReq->msdu.p;//这个是不正确的
}
测试了Home 1.2.2a和Mesh 1.0.0,都有这个现象。