update keySequence when incoming MAC frame has key index matches next key index (#287)

This commit is contained in:
rongli
2016-07-25 21:18:32 -07:00
committed by Jonathan Hui
parent 3313b66342
commit 3b4bf8594e
2 changed files with 13 additions and 5 deletions
+5
View File
@@ -766,6 +766,11 @@ ThreadError Mac::ProcessReceiveSecurity(Frame &aFrame, const Address &aSrcAddr,
aFrame.SetSecurityValid(true);
if (keySequence > mKeyManager.GetCurrentKeySequence())
{
mKeyManager.SetCurrentKeySequence(keySequence);
}
exit:
if (error != kThreadError_None)
+8 -5
View File
@@ -104,13 +104,16 @@ uint32_t KeyManager::GetCurrentKeySequence() const
void KeyManager::SetCurrentKeySequence(uint32_t aKeySequence)
{
mKeySequence = aKeySequence;
ComputeKey(mKeySequence, mKey);
if (aKeySequence != mKeySequence)
{
mKeySequence = aKeySequence;
ComputeKey(mKeySequence, mKey);
mMacFrameCounter = 0;
mMleFrameCounter = 0;
mMacFrameCounter = 0;
mMleFrameCounter = 0;
mNetif.SetStateChangedFlags(OT_NET_KEY_SEQUENCE);
mNetif.SetStateChangedFlags(OT_NET_KEY_SEQUENCE);
}
}
const uint8_t *KeyManager::GetCurrentMacKey() const