Hi!
I am trying to update network key while the network is up and running by pressing on btn -2 , is used the following code;
zstack_secNwkKeyGetReq_t zstack_secNwkKeyGetReq; zstack_secNwkKeyGetRsp_t zstack_secNwkKeyGetRsp; zstack_secNwkKeySetReq_t zstack_secNwkKeySetReq; zstack_secNwkKeyUpdateReq_t zstack_secNwkKeyUpdateReq; zstack_secNwkKeySwitchReq_t zstack_secNwkKeySwitchReq; seqNum++; zstack_secNwkKeyGetReq.activeKey = TRUE; Zstackapi_secNwkKeyGetReq(appServiceTaskId, &zstack_secNwkKeyGetReq, &zstack_secNwkKeyGetRsp); zstack_secNwkKeySetReq.activeKey = TRUE; zstack_secNwkKeySetReq.seqNum = seqNum; zstack_secNwkKeySetReq.has_key = TRUE; OsalPort_memcpy(zstack_secNwkKeySetReq.key, Nwk_Key, INSTALL_CODE_LEN); Zstackapi_secNwkKeySetReq(appServiceTaskId, &zstack_secNwkKeySetReq); zstack_secNwkKeyUpdateReq.dstAddr = 0xFFFF; zstack_secNwkKeyUpdateReq.seqNum = seqNum; Zstackapi_secNwkKeyUpdateReq(appServiceTaskId, &zstack_secNwkKeyUpdateReq); zstack_secNwkKeySwitchReq.dstAddr = 0xFFFF; zstack_secNwkKeySwitchReq.seqNum = seqNum; Zstackapi_secNwkKeySwitchReq(appServiceTaskId, &zstack_secNwkKeySwitchReq);
Building and compiling this doesn't give any error, I have controlled that the key is actually copied over to key and I get success status.
But when I use packet sniffing (Ubiqua protocol analyzer) the network key is not changed but APS command Transport key and Switch key is broadcasted when i press the button.
The Network key inside transport key is not changed and is always the same.
Also, the DEFAULT_KEY is still set to 0 which will generate random key at initializing and it shouldn't effect NWK key updates, right?
Seems like I am missing or forgetting something...
Regards,
Hamza