可以确定是协议栈内部的bug,没有源代码,如何破?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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重启之后就自动恢复了