使用z-stack home 1.2.2a协议, 现已经在协调(ZDSecMgrDeviceJoin 中检测)上加入了白名单功能,用来限制未指定的MAC设备入网,所有路由中没有加入白名单检测功能。
环境:1个协调, 1个路由, 1个普通节点
编译选项: 协调:ZIGBEEPRO / SECURE=1 / ZG_SECURE_DYNAMIC=0 / TC_LINKKEY_JOIN / REFLECTOR/ NV_INIT /NV_RESTORE
zgPreConfigKeys=FALSE
路由、节点:ZIGBEEPRO / SECURE=1 / ZG_SECURE_DYNAMIC=0 / TC_LINKKEY_JOIN / REFLECTOR/ NV_INIT zgPreConfigKeys=FALSE
测试描述:
1:当协调在线时,所有设备入网均可以被检测到,可以成功根据白名单列表实现让指定设备入网,并通迅正常。
2:没有启用MTO功能
3: 当协调器人为断电后,新节点设备可以通过任何一个路由加入网络,不经协调器认证,并且能正常通迅。
4:协调白名单检测位于 ZDSecMgrDeviceJoin 开始位置 status = MCK_macCheckCMP(device->extAddr)?ZSuccess:ZNwkUnknownDevice; 注释了原先的代码
//if ( device->secure == FALSE )
//{
//status = ZDSecMgrDeviceValidate( device );
//}
需解决问题:
1:协调白名单检测函数放在 ZDSecMgrDeviceJoin 的开始位置是否合理。
2:如何解决上面第三点所提到的,当协调掉离线后,所有新入网的设备不允许入网,必须等待协调上线检测通过后才能入网。
3:协调离线后,在路由ZDSecMgrDeviceJoinFwd函数中断点调试时,发现有发送(APSME_UpdateDeviceReq( &req ) )新设备的信息到信任中心,但好像都是返回成功的,如何处理。