使用 OT CLI 显示和管理网络数据

<ph type="x-smartling-placeholder"></ph> 在 GitHub 上查看源代码

Thread 网络数据包含有关边界路由器和其他服务器的信息 Thread 网络中的可用。边界路由器和提供服务的设备 向该负责人注册自己的信息。领导者负责收集和组织数据, 将这些信息包含在 Thread 网络数据中, Thread 网络中的所有设备。

边界路由器可以注册分配给 Thread 网络的前缀和前缀 提供路线。服务可能会注册任何与 服务本身

边界路由器和服务信息可以是稳定的或临时的。稳定线程 网络数据会被分发到所有设备,包括 Sleepy End 设备 (SED)。 临时网络数据会分发到除 SED 之外的所有节点。

网络数据命令

如需查看 netdata 命令的列表,请输入 help

netdata help
help
full
length
maxlength
publish
register
show
steeringdata
unpublish
Done

full 命令

full 命令会报告标志状态或恢复标志跟踪 “净流量已用尽”回调函数被调用。

此命令需要 OPENTHREAD_CONFIG_BORDER_ROUTER_SIGNAL_NETWORK_DATA_FULL。

lengthmaxlength 命令

length 命令会获取报告的当前 Thread 网络数据长度 以字节数表示。maxlength 命令可获取观察到的最大长度,或 重置跟踪的长度上限。

publish 命令

广告联盟数据发布商提供了一些机制来限制 线程中的服务和前缀(网状网前缀或外部路由)条目 通过监控网络数据并管理何时添加或 移除条目。

发布商要求使用 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE

建立网络并配置前缀

  1. 生成新的网络配置。

    dataset init new
    Done
    
  2. 显示网络配置。

    dataset
    Active Timestamp: 1
    Channel: 13
    Channel Mask: 0x07fff800
    Ext PAN ID: d63e8e3e495ebbc3
    Mesh Local Prefix: fd3d:b50b:f96d:722d::/64
    Network Key: dfd34f0f05cad978ec4e32b0413038ff
    Network Name: OpenThread-8f28
    PAN ID: 0x8f28
    PSKc: c23a76e98f1a6483639b1ac1271e2e27
    Security Policy: 0, onrcb
    Done
    
  3. 将新数据集提交到非易失性中的活跃运营数据集 storage。

    dataset commit active
    Done
    
  4. 启用 Thread 接口

    ifconfig up
    Done
    thread start
    Done
    
  5. 显示分配给 Thread 接口的 IPv6 地址。

    ipaddr
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    
  6. 注册分配给 Thread 网络的 IPv6 前缀。

    prefix add fd00:dead:beef:cafe::/64 paros med
    Done
    netdata register
    Done
    
  7. 显示 Thread 网络数据。

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    fd49:7770:7fc5:0::/64 s med 4000
    Services:
    44970 5d c000 s 4000
    44970 01 9a04b000000e10 s 4000
    Done
    

    前缀和路由包括 参数映射和 RLOC 值。

    服务记录包括 otServiceConfig 值(包括 mEnterpriseNumbermServiceDataotServerConfig::mServerDatas,以指明 otServerConfig::mStable。RLOC 也会附加到 记录。

  8. 显示分区的 Thread 网络的当前长度(以字节数计) 数据。

    netdata length
    23
    Done
    
  9. 显示分配给 Thread 接口的 IPv6 地址,包括 添加前缀。

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

连接到现有网络

只有网络密钥才需要设备连接到 Thread 网络。

虽然不是必需的,但指定渠道可避免搜索 从而缩短连接过程的延迟时间和效率。

设备成功连接到 Thread 网络后, 完整的活跃运营数据集

  1. 创建部分活跃操作数据集。

    dataset networkkey dfd34f0f05cad978ec4e32b0413038ff
    Done
    dataset commit active
    Done
    
  2. 启用 Thread 接口。

    ifconfig up
    Done
    thread start
    Done
    
  3. 连接到现有网络后,显示 Thread 网络数据。

    netdata show
    Prefixes:
    fd00:dead:beef:cafe::/64 paros med dc00
    Routes:
    Services:
    Done
    
  4. 显示分区的 Thread 网络的当前长度(以字节数计) 数据。

    netdata length
    23
    Done
    
  5. 显示分配给 Thread 接口的 IPv6 地址。

    ipaddr
    fd00:dead:beef:cafe:4da8:5234:4aa2:4cfa
    fd3d:b50b:f96d:722d:0:ff:fe00:fc00
    fd3d:b50b:f96d:722d:0:ff:fe00:dc00
    fd3d:b50b:f96d:722d:393c:462d:e8d2:db32
    fe80:0:0:0:a40b:197f:593d:ca61
    Done
    

调试和诊断

网络数据有 254 个字节的大小限制。如果边界路由器继续添加 (例如前缀、路由或服务条目) 发生这种情况时,来自边界路由器的新请求添加新 项将被主管拒绝或忽略。领先变体 必须向边界路由器发出拒绝信号,这样边界路由器就可以 不会立即意识到网络数据已满。不过,有一种 方法可用于检测网络数据是否已满。

在边界路由器和主要路由器上实施的检测方法使用 一种回调 API 机制,允许在使用网络数据连接时通知用户 满格。该回调可用于执行操作,例如移除过时的前缀 或服务条目netdata full 命令用于 会跟踪“净数据已满”回调函数被调用。这些命令 可以报告或重置旗帜状态

对于 Thread 的典型用例,网络数据 即使有多个边界路由器并且这些路由器全都是 添加路由前缀。

从技术上来讲,网络数据满是可能的,但通常 或边界路由器出现问题导致的。netdata lengthnetdata maxlength 命令可帮助调试网络数据完整错误。 length 获取网络数据的当前长度(以字节为单位报告), maxlength 会获取观察到的最大长度,还可以重置跟踪的 最大长度。