我想知道RPL如何在初始化阶段为没有数据包的节点计算ETX链路指标。谢谢。
RPL 查看邻居统计信息模块。模块有多种选择
- 如果您提供
LINK_STATS_CONF_INIT_ETX(stats)
宏的自定义定义,它将用于初始化 ETX。 - 否则
(ETX_INIT * ETX_DIVISOR)
用作默认值。 默认情况下,ETX_INIT
定义为 2。ETX_DIVISOR
只是一个特定于 Contiki 的比例因子,用于避免浮点运算。
节点通常在传输数据包之前从邻居接收数据包。在这种情况下,RSSI估计是已知的,但ETX是未知的。要从 RSSI 初始化 ETX 的初始估计值,请将此行添加到project-conf.h
:
#define LINK_STATS_CONF_INIT_ETX(stats) guess_etx_from_rssi(stats)
这样,在没有其他信息的情况下,信号较强的节点将优先进行路由。有关详细信息,请查看net/link-stats.c
。