Other Parts Discussed in Thread: Z-STACK
I have researched the processing of "security frame counter" on Z-stack 3.0.2
// check frame counter
linkInfo = nwkNeighborGetLinkInfo( dataInd->mac.srcAddr.addr.shortAddr, dataInd->mac.srcPanId );
if ( linkInfo )
{
keySeqNum = *(dataInd->msdu.p + ff.hdrLen + NWK_AUX_HDR_LEN - 1);
// check if the frame counter needs to be reset
if ( linkInfo->inKeySeqNum != keySeqNum )
{
linkInfo->inKeySeqNum = keySeqNum;
linkInfo->inFrmCntr = 0;
}
rcvdFrmCntr = osal_build_uint32( dataInd->msdu.p + ff.hdrLen + 1, 4 );
if ( rcvdFrmCntr < linkInfo->inFrmCntr )
{
return; // Bad frm count
}
else
{
linkInfo->inFrmCntr = rcvdFrmCntr + 1;
}
}
We can see that when current stored frame-counter is 0xFFFFFFFF but the received frame-counter is 0, the incoming message will be ignored. Has the SDK 7.10 fixed this issue?