This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2652P:源路由将影响到 MTU

Guru**** 2455560 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1457437/cc2652p-source-routing-will-effect-to-mtu

器件型号:CC2652P

工具与软件:

我的坐标向路由器发送一个82字节的 APS 有效负载帧、它可以成功发送。 但是、当坐标多次向该路由器发送字段时、坐标将更改为源路由模式、该模式不能向该路由器发送82字节的数据。

我想在 afDataReqMTU 中添加一些处理来 处理 源路由

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果使用源路由、则由于整个数据包中添加了中间地址、您将无法容纳82字节的最大有效负载大小。
    通常、如果负载对于单个 APS 数据包来说太大、则 碎片 应解决它。

    请注意、 ZStack_afDataREQ_t 具有不指定源路由的方法、这将使单个数据包中的应用数据有效负载大小最大化。
    请参见 ZStack_afDataREQ_t --> n_RELAYLIST (/** RELAYLIST 中的条目数(0用于 非源路由 )*/)

    谢谢!
    Toby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何计算当"AF_DataRequestExt"发送消息时源路由是否会发生?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我修复了类似这样的"afDataReqMTU"、但它将触发 Fragment、 尽管没有触发源路由。

    uint8_t afDataReqMTU( afDataReqMTU_t* fields )
    {
      uint8_t len;
      uint8_t hdr;
    
      if ( fields->kvp == TRUE )
      {
        hdr = AF_HDR_KVP_MAX_LEN;
      }
      else
      {
        hdr = AF_HDR_V1_1_MAX_LEN;
      }
    
      len = (uint8_t)(APSDE_DataReqMTU(&fields->aps) - hdr);
    
      //match rtg table to recalculate MTU, fixed by luoyiming 2025-01-04
      if(afRtgDstAddress != 0xFFFE)
      {
        rtgSrcEntry_t* rtgSrcEntry = afGetRtgSrcEntry(afRtgDstAddress);
        if(rtgSrcEntry)
        {
          if(rtgSrcEntry->relayCount)
          {
            len -= (2 + rtgSrcEntry->relayCount * sizeof(uint16_t));
          }
        }
        afRtgDstAddress = 0xFFFE;
      }
    
      return len;
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现当 AF-Sending 中需要源路由时、Fragment-Sending 将不起作用。