CTP源码分析7 CTP路由引擎结构及源码分析(一)----TreeRoute.h头文件解读和概要介绍
2016-09-09 09:49
651 查看
CTP路由引擎主要由定时器驱动,发动路由帧来建立通信拓扑,广播主要的内容就是广播自己相对于根节点的ETX以及自己的地址,当然还有自己阻塞的一些状态信息,这些信息会被邻居节点捕获,然后更新邻居节点的路由表,每个节点都可以根据自己的路由表,根据情况选出ETX比较小的节点来作为自己的父节点。这样子每个节点和根节点的最小代价通信路径就可以得出来了。拓扑也可以得以建立。
在CTP.h中规定了路由帧的格式:
路由表的格式在TreeRoute.h中也有了定义:
路由引擎的源码结构是这样的:
在CTP.h中规定了路由帧的格式:
typedef nx_struct { nx_ctp_options_t options; nx_am_addr_t parent; nx_uint16_t etx; nx_uint8_t data[0]; } ctp_routing_header_t;第一个变量是状态位,比如如果节点阻塞了或者节点还没有自己的父节点,那么就要在这个状态为中填充对应的值。
路由表的格式在TreeRoute.h中也有了定义:
typedef struct { am_addr_t parent; uint16_t etx; bool haveHeard; bool congested; } route_info_t; typedef struct { am_addr_t neighbor; route_info_t info; } routing_table_entry; inline void routeInfoInit(route_info_t *ri) { ri->parent = INVALID_ADDR; ri->etx = 0; ri->haveHeard = 0; ri->congested = FALSE; }首先就是一个索引值一个信息部分,在路由表中要记录当前节点的地址,ETX,有没有监听到父节点(当一个节点没有确定父节点之前haveHeart这个值都是0),这么几个信息。
路由引擎的源码结构是这样的:
相关文章推荐
- CTP源码分析8 CTP路由引擎结构及源码分析(二)----源码实现解读(一)
- 开放源代码的全文检索引擎Lucene――介绍、系统结构与源码实现分析
- Faster RCNN 源码解读(1) -- 文件结构分析
- 3D打印机切片引擎CuraEngine源码分析<四> CuraEngine中的ReadMe解读,CuraEngine的版本介绍
- CTP源码分析6 CTP链路质量估计层结构及源码分析(五)----源码实现解读(二)
- CTP源码分析5 CTP链路质量估计层结构及源码分析(四)----源码实现解读(一)
- DEDE源码分析与学习之二: member文件结构说明
- 从monodis源码分析pe文件结构与msil反汇编
- Heritrix1.14源码分析(2) 配置文件order.xml介绍
- Heritrix源码分析(二) 配置文件order.xml介绍(转)
- Heritrix源码分析(六) Heritrix的文件结构分析
- [Leveldb] 源码分析之一接口文件介绍
- (转载)cocos2d-X学习之引擎源码目录结构介绍
- larbin源码分析(一) gloabl文件 Connexion结构
- Heritrix源码分析(六) Heritrix的文件结构分析(转)
- DEDE源码分析与学习---index.php文件解读。
- Heritrix源码分析(六) Heritrix的文件结构分析
- cocos2d-X学习之引擎源码目录结构介绍
- innodb存储引擎之参数文件分析与源码分析详解(未完待续)
- Wordpress源码分析 目录结构-文件调用关系(1)