关于AddrManager的问题
时间:10-02
整理:3721RD
点击:
由于存在Addr满的情况所以做了一些测试(整个系统处于加密状态)
协调器一个,路由器2个,终端3个
协调器建网后,
一个一级路由,一个二级路由
终端一个入协调器,一个从一级路由加入网络,一个从二级路由加入网络
加密状态从1级路由和二级路由入网的设备,MAC会存在AddrManager中,我使用AddrMgrEntryRelease在协调器端删除(通过判断是不是Assolist中的设备,不是就删除MAC)
但我发现邻居表中的设备(二级路由),的MAC地址也存在于协调器中,但不存在于Assolist中,此时按照我的判断机制也给删除了.
路由器中使用同样的办法清除不是本地Assolist的MAC地址,但是二级路由也会把邻居的MAC清除
此时重新上电,二级路由下就不会出现邻居设备(协调器)
但是已经入果网的终端通信时正常的,但新的从二级路由入网的设备就不能加入网络了。
我想请教一下AddrManager,TI协议栈是怎么定义的,在好多情况下,AddrManager都不清除,只会导致AddrManager满,最终只能擦除NV重建网络
追问,处于加密状态时,所有入网设备的MAC地址都存储到协调器端,有什么办法处理吗?这会导致Addrmanager满