需要确认注册邮箱后才能开通博客,立即确认我的邮箱
文章 搜索 高级搜索 ?3? ?3?
  • 滤波器new!
  • LED驱动 new!
  • 新能源 new!
  • PLL
  • PCIE协议
  • 可穿戴
  • LSI
  • FCI
文章 论坛 博客 小组 研讨会
EDN电子技术论坛>博客 >lanzhoo博客 >Microchip zigbee协议栈路由协议学习(4):路由表

lanzhoo的博客——lanzhoo's Blog

博主:lanzhoo???? ???? ????
介绍: lanzhoo
文章(59)???? 访问(88513)???? 评论(54)???? 投票(38)???? 订阅本博??

博文列表查看方式: ???

Microchip zigbee协议栈路由协议学习(4):路由表
发布时间:2008-09-19 21:26:13
技术类别:单片机
需要确认注册邮箱后才能下载,立即确认我的邮箱

Microchip的zigbee协议栈路由协议实现代码中有3张与路由有关的表:路由表(routing table)、路由发现表(route discovery table)和邻居表(neighbor table)。


在对数据分组转发中,主要进行下一跳地址定位的函数为GetRoutingAddress()(用于网状路由)和RouteAlongTree()(用于树状路由)。


GetRoutingAddress()方法的主要流程为:



  • 通过NWKLookupNodeByShortAddrVal()方法在邻居表中查找节点;

  • 如果找到了并且该节点属于本节点的下属节点(currentNeighborRecord.deviceInfo.bits.Relationship == NEIGHBOR_IS_CHILD):


    • ? 直接发送该分组。返回。

  • 否则:


    • ?如果设置了支持网状路由算法的话:


      • ?先通过HaveRoutingCapacity()检测路由表(routing table)和路由发现表(route discovery table)是否存在目的地址的路由或者有空记录(可以发起对目的地址的路由发现)。

      • 如果具备路由能力:


        • 如果输入参数指定强制发现路由(discoverRoute == ROUTE_DISCOVERY_FORCE):


          • 启动路由发现:InitiateRouteDiscovery();

        • 否则:


          • 通过GetNextHop()遍历路由表,找到目的地址对应的路由记录,从路由记录中取下一跳地址及路由状态;

          • 如果返回成功(ROUTE_ACTIVE):


            • 发送分组;

          • 否则:


            • 通过RouteAlongTree()使用树状路由算法转发分组;

      • 否则:


        • 通过RouteAlongTree()使用树状路由算法转发分组;

    • 否则:


      • 通过RouteAlongTree()使用树状路由算法转发分组;

注:GetRoutingAddress()方法本身不执行分组的转发,而是通过返回ROUTE_SEND_TO_MAC_ADDRESS状态由它的调用者来执行分组转发。


在RouteAlongTree()方法中,对邻居表中的每条记录进行判断,如果该邻居属于本节点的子节点,则判断目的地址是否该节点或该节点的下级节点(通过IsDescendant()方法实现判断),是的话就转发分组。


?

标签:??
分享到:? 新浪微博 ?? 微信 ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
qq空间 ?? 腾讯微博 ?? 人人网 ?? 百度搜藏 ??
??????有[ 0 ]名读者喜欢此文
阅读(4748)?? 评论(3)?? 收藏??I?? 打印??I?? 推荐到小组??I?? 转发到我的博客 (0)
对不起,您还没有登录,请先登录注册
上一篇:Microchip zigbee协议栈路由协议学习(5):任务处理机制

下一篇:zigbee协议栈路由协议学习(3):Neighbor表

最近到访博主
WilliamZhou 胖螃蟹 觉明子 HHTT
牛人有话说 - Microchip zigbee协议栈路由协议学习(4):路由表
美国的游客 (您将以游客身份发表,请登录 | ?注册)
?
你还可以输入1000
验证码:
分享: 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
?
有 [ 3 ] 名读者发表评论 - Microchip zigbee协议栈路由协议学习(4):路由表
好久没上来了。我得先重新看看代码再回复。谢谢!
(0) ???? (0) ???? 回复(0)
对不起,您还没有登录,请先登录注册
???? 2011-05-08 18:31
你好,我也想知道zigbee协议栈如何获取路由表?
(0) ???? (0) ???? 回复(0)
对不起,您还没有登录,请先登录注册
???? 2011-01-15 10:00
您好: 我看到您的文章,想问一下:如何获取路由表?谢谢
(0) ???? (0) ???? 回复(0)
对不起,您还没有登录,请先登录注册
???? 2011-01-06 09:44
转发到我的博客
评论?@lanzhoo's Blog?的“Microchip zigbee协议栈路由协议学习(4):路由表”
Microchip的zigbee协议栈路由协议实现代码中有3张与路由有关的表:路由表(routingtable)、路由发现表(routediscoverytable)和邻居表(neighbortable)。在对数据分组转发中,主要进行下一跳地址定位的函数为GetRoutingAddress()(用于...
你还可以输入30000
同时评论给?lanzhoo
????
快速回复
?
你还可以输入1000
????
引用回复
引用评论?
?
你还可以输入1000
????
个人文章分类
文章存档
最新评论
阅读排行
lanzhoo的小组???? 加入小组
ZigBee & IAR学习小组
成员2004名
创建者:emot
最新网络博文
华为官方回应有关自研手机操作系统的传闻
这颗芯片有故事,你有酒吗?
PCB设计PADS各层的用途和作用
联想收购的得与失 摩托罗拉空壳化使...
传华为智能机销量目标下调2000万部 Ma...
? 更多博文>>
返回博客首页
有问题请反馈