TI中文支持网
TI专业的中文技术问题搜集分享网站

ZDSECMGR_TC_DEVICE_MAX限制问题, 设备退出网络后资源没有释放

上一次提问, zstack3.0设备无法添加超过40个, 回复可以修改ZDSECMGR_TC_DEVICE_MAX, 我尝试简单修改引入了新的bug, 我也有新的想法还没有尝试; 这里请教的不是这些bug, 发现了一个更严重的bug

ZDSECMGR_TC_DEVICE_MAX我使用的是默认值40个,  设备也成功添加了40个到网络中, 测试了2天很稳定, 没有异常; 今天我通过协调器删除了一个设备, 调用的是ZDP_MgmtLeaveReq(), 设备被成功删除, 但是新的设备也不能添加到这个网络; 我又将网络中的设备删除到只剩1个, 新的设备同样无法加入这个网络, 和添加第41个设备同一个现象

ZDSECMGR_TC_DEVICE_MAX给我的感觉并不是限制网络中3.0的设备数量, 而是这个网络累计添加的zigbee3.0设备数量; 是不是有些信息需要我们手动删除

Alvin Chen:

”这里请教的不是这些bug, 发现了一个更严重的bug“?

这是bug我不是很认同,ZDSECMGR_TC_DEVICE_MAX是可以修改的。
BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE设置为FALSE的前提下,ZDSECMGR_TC_DEVICE_MAX和可以加入ZigBee可以加入数量是对应的。

你关联表清除了没?

user3701862:

回复 Alvin Chen:

需要我手动清除关联表吗, 那么如果这个设备的父设备并不是协调器时, 设备的父设备如何知道设备已经离开网络

YiKai Chen:

回复 user3701862:

先檢查一下無法加入時协调器的关联表內容

user3701862:

回复 YiKai Chen:

NWK_MAX_DEVICES默认是21个,ZDSECMGR_TC_DEVICE_MAX默认是40个, 貌似对应不上, 关联表我今天已经看不了了, 只能明天再试; 总觉得关联表不应该背这个锅

Alvin Chen:

回复 user3701862:

你最好上传你的抓包文件,我看一下reject的原因。

user3701862:

回复 Alvin Chen:

调用ZDP_MgmtLeaveReq()删除的设备, AssociatedDevList中相关的信息已经被自动清除

“BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE设置为FALSE的前提下,ZDSECMGR_TC_DEVICE_MAX和可以加入ZigBee可以加入数量是对应的”, 如果BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE设置成TURE是否ZDSECMGR_TC_DEVICE_MAX限制就不起作用了呢

user3701862:

回复 Alvin Chen:

我这次测试是ZDSECMGR_TC_DEVICE_MAX=2, 我先添加了两个设备成功后添加第三个设备失败, 删除一个设备后再次添加第三个设备失败添加第3个设备.psd删除掉一个设备后再次添加第3个设备.psd

user3701862:

回复 Alvin Chen:

我仅仅将ZDSECMGR_TC_DEVICE_MAX设置成120, 第30个设备出现无法加入网络的情况; 抓包看第30个设备似乎有加入的动作, 但是bdb_RegisterCommissioningStatusCB()注册的callback收到的结果是BDB_COMMISSIONING_NO_NETWORK, 能不能帮我分析下什么情况添加第30个设备.psd

Alvin Chen:

回复 user3701862:

ZDSECMGR_TC_DEVICE_MAX is specific to the maximum number of unique TCLKs supported (and therefore Zigbee 3.0 devices allowed) in the network. 

bdb_default_tc_require_key_exchange用于强制执行TCLK交换过程。

我今天看不了抓包文件手头没有PC,退网使用是类似于下面的函数?

set to 1 to remove the children of the device as well. 0 otherwise. zstackmsg_zdoDeviceAnnounceInd_t *pInd; pInd=(zstackmsg_zdoDeviceAnnounceInd_t *)pMsg; zAddrType_t *dstAddr; dstAddr->addr.shortAddr=pInd->req.devAddr; dstAddr->addrMode=Addr16Bit;

ZStatus_t ret = ZDP_MgmtLeaveReq( dstAddr, pInd->req.devExtAddr, 1,0, 0 );

如果你很急可以发到英文上面上去或者找一些YK Chen。

e2e.ti.com/…/

user3701862:

回复 YiKai Chen:

问题已描述, 请求支援

赞(0)
未经允许不得转载:TI中文支持网 » ZDSECMGR_TC_DEVICE_MAX限制问题, 设备退出网络后资源没有释放
分享到: 更多 (0)