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

目前发现一个Zigbee 3.0.1协议栈内部的bug,如何破?

可以确定是协议栈内部的bug,没有源代码,如何破?

YiKai Chen:

You can report on and TI support team there would help to verify it. Once bug get confirmed, they will provide fix in the future.

Susan Yang:

请问能详细说明下吗?或者直接发帖到 e2e.ti.com/…/

miffy:

回复 Susan Yang:

bug是这样的,现在我们利用了many to one方案来发送消息,AN123文档研究不下二十遍,分析了每个字母每段话,参考了其knobs,测试了两种方案。

一,ZNP上开启many to one缓存,

CONCENTRATOR_ROUTE_CACHE=TRUE,

MAX_RTG_SRC_ENTRIES=430,

SRC_RTG_EXPIRY_TIME=30

经过长时间50~100ms间隔连续发送单播测试,开始时候,发出的ZCL包,抓包分析NWK Header还有Source Route Included[0x1] Yes,就是说协议栈在发送数据前还添加source route 到数据包头部,长时间测试之后,再发,就没有添加了,抓包分析Source Route Included[0x0] No,而且经常出现路由错误,此时节点给协调器发送source record都正常,按理说协调器会缓存其source route路径,结果协议栈并不利用source route table,而是协议栈自己去路由,还出现了路由错误重发的情况。

 

二、ZNP上关闭source route缓存,我们上层APP自己管理source route,自己记录route record,协议栈收到route record,就送给上层APP,然后上层需要发送数据的时候,调用MT_AfDataRequestSrcRtg来进行发送。结果经过测试,还是长时间运行之后,出现了无法添加source route的问题,然后ZNP重启之后,就又正常了。

 

这不是协议栈底层出了bug? RTG_AddSrcRtgEntry_Guaranteed这个函数是封装起来的看不到源码,TI资料也没有任何解释,网上也搜不到相关说明,现在怀疑内部出了某些异常,ZNP重启之后就自动恢复了

miffy:

回复 Susan Yang:

网上从来没有看到有人用MT_AfDataRequestSrcRtg来发送数据的,多数人都用的是MT_AfDataRequest,所以没有人提到说有bug

赞(0)
未经允许不得转载:TI中文支持网 » 目前发现一个Zigbee 3.0.1协议栈内部的bug,如何破?
分享到: 更多 (0)