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.

[参考译文] TMDSCNCD263:AM2634 -以太网在接收时丢弃 Rx TCP 帧。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356305/tmdscncd263-am2634---ethernet-drops-rx-tcp-frames-while-reception

器件型号:TMDSCNCD263
主题中讨论的其他器件:AM2634

团队成员、您好!

我正在使用 AM2634上的引导加载程序 ETH。

在成功建立通信后、我遇到了 TCP Rx 帧丢失问题。

ARP 和 UDP 帧正在接收、只有 TCP 帧被丢弃。

且 TCP 握手失败且无 TCP 链路。

但当使用 NCAT 向 TCP 帧发送该帧时、硬件正在接收和响应。

您能就我的问题向我提供任何提示吗?

此致、

Hari

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

    嗨、Hari、

    您是否在使用 MCU_PLUS_SDK 或 MCAL_SDK?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我与 MCAL 一起工作。

    此致、

    Hari

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

    嗨、Hari、

    1.正在发送的 TCP 帧没有格式错误、正确吗? 您能否使用 GEL 脚本并共享 CPSW 统计信息? 完成应用程序运行并验证 TCP 是否正常工作后、停止内核并转到"Scripts"->"CPSW Stats"并运行 CPSW3G nonzero stats GEL 脚本。 请分享这些统计数据、以便我们能够理解问题。

    2.如果我的理解正确、192.168.88.77是您的外部 PC、而192.168.88.73是 AM263x? 如果愿意、MCU 确实发回了 TCP 数据包的 ACK。 您能否确保外部世界 PC 不会因为某些防火墙设置而丢弃此数据包?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    1.正在发送的 TCP 帧没有格式错误、正确吗? 您能否使用 GEL 脚本并共享 CPSW 统计信息? 完成应用程序运行并验证 TCP 是否正常工作后、停止内核并转到"Scripts"->"CPSW Stats"并运行 CPSW3G nonzero stats GEL 脚本。 请分享这些统计数据、以便我们能够理解问题。

    ->否、TCP 帧没有格式错误。

    ->是否有任何特定的功能,从有必要读取统计?

    制动执行时获得空的统计数据

    从变量:

    *当我在 T307C( Ip_Rx )保持制动点时,我可以看到 TCP 帧接收。

    ETH 或 EthTrcv 中是否存在时序问题?   

    2.如果我的理解正确、192.168.88.77是您的外部 PC、而192.168.88.73是 AM263x? 如果愿意、MCU 确实发回了 TCP 数据包的 ACK。 您能否确保外部世界 PC 不会因为某些防火墙设置而丢弃此数据包?

    ->是的、 192.168.88.77/71是 外部 PC、192.168.88.73是 AM263x?

    ->不知道防火墙阻止,我会更新你。

     当我在 T387ICA()中保持制动点时,我就能看到 Ip_Rx 帧的接收。

    此致、

    Hari

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

    嗨、Hari、

    1.从统计数据可以看出数据包会被丢弃(ALE_DROP)。 您能否验证 MAC 地址是否已添加到 ALE 表中? 您是否可以使用 GEL 脚本并共享 ALE 表的转储?

    2.从统计数据中,我也看到 Rx 计数在递增。 我的观察结果是、您尝试建立 TCP 连接、第一个 SYN 数据包从外部世界发送到 MCU、MCU 以 ACK 进行响应(我可以在您的 Wireshark 片段中看到)、但随后其他 TCP 数据包似乎会被 ALE 丢弃、理想情况下应该不会这样。 您是否还可以并行使用任何其他数据流(确认丢弃的数据包不是某些意外数据包、而是 TCP 数据包)

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    1.从统计数据可以看出数据包会被丢弃(ALE_DROP)。 您能否验证 MAC 地址是否已添加到 ALE 表中? 您是否可以使用 GEL 脚本并共享 ALE 表的转储?

    ->返回空值

    ->在什么时候,我必须阅读它。

    ->从那里我可以检查它的源代码来确认 ALE 表?

    2.从统计数据中,我也看到 Rx 计数在递增。 我的观察结果是、您尝试建立 TCP 连接、第一个 SYN 数据包从外部世界发送到 MCU、MCU 以 ACK 进行响应(我可以在您的 Wireshark 片段中看到)、但随后其他 TCP 数据包似乎会被 ALE 丢弃、理想情况下应该不会这样。 您是否还可以并行使用任何其他数据流(确认丢弃的数据包不是某些意外数据包、而是 TCP 数据包)

    ->在实际用例中、AM2634没有 ACK  

    ->这只是为了检查而不是实际的用例

    对于以下请求、以上内容是可以的、  ncat -t 192.168.88.73 13400 -p 60020

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

    嗨、Hari、

    请确保您也使用的是最新的 CCS 版本。 很奇怪的是、ALE 和 CPSW 统计数据都返回为空。 有些设置问题。

    请在您尝试建立 TCP 连接时暂停内核、它会失败。 然后运行 GEL 脚本。

    [报价用户 id="592034" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356305/tmdscncd263-am2634---ethernet-drops-rx-tcp-frames-while-reception/5174747 #517474747"]

    ->这只是为了检查而不是实际的用例

    [报价]

    我不明白这一点。 您能解释什么是"实际"案例与工作案例(ncat)

    附加的上述屏幕截图(其中我看到 ACK 数据包)不是"实际"用例吗?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    实际用例:

    以下请求序列从 PC 发送到 AM2634

    -> ARP、ICMP、DoIP(UDP)和 TCP。

    -> ARP -已确认。

    -> ICMP (Ping)-无响应。

    -> DoIP(UDP)-已响应。

    -> TCP -无确认和无连接建立。

    检查用例(ncat):

    仅发送了一个 TCP 请求  ncat -t 192.168.88.73 13400 -p 60020

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

    嗨、Hari、

    运行1次  

    使用案例检查(ncat):

    在这种情况下、可以看到来自 MCU 的响应是正确的?

    实际使用案例:

    在实际情况下、您能解释如何发送数据包吗? 如果驱动程序出现问题、NCAT 连接不应该成功、对吧? 您是否已建立 NCAT 终端连接日志?

    该问题可能还与上层 TCP/IP 堆栈有关。 如果问题与驱动程序有关、我假设 UDP/ARP 数据包也将被丢弃。 我可能错了,但我必须进一步研究这一点。

    同时、您能否进一步研究 ALE 丢弃帧。 您可以在每次发射后检查统计数据吗? (首先发送 ICMP、检查统计数据、然后发送 TCP、再检查统计数据、然后发送 ARP 和检查统计数据)

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    对于每个接收到的 TCP 帧、AM2634都正确响应。

    我已在 Ethh 驱动程序中添加了一个代码以检查 TCP 帧接收。

    TCP 堆栈中没有问题、实际上、TCP 帧未到达以太驱动程序。

    我将尝试获取 TCMP、TCP 每次传输的状态。

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

    尊敬的 Shaunak:

    我已经尝试过了、正如您建议的

    同时、您能否进一步研究 ALE 丢弃帧。 您可以在每次发射后检查统计数据吗? (首先发送 ICMP、检查统计数据、然后发送 TCP、再检查统计数据、然后发送 ARP 和检查统计数据)

    达到 Eth 时的统计数据 T452.42_rxIndicationIcmp() Ip_Ip function - ICMP frame

    达到 Eth 时的统计数据 T452.45 Ip_Tcp_ Indication()  函数-tcp 帧

    达到 Eth 时的统计数据 T452.45 Ip_Udp_ Indication()  函数- ARP 帧

    未接收、按顺序发送 ARP - ICMP - UDP -TCP。

    ICMP 和 TCP 没有响应。

    *当我在 T307C( Ip_Rx )中保持制动点时,我可以看到 ICMP、 TCP 帧接收和响应。

    据我所知、存在一些同步/时序问题。

    您能告诉我、漏了什么地方。

    此致、

    Hari

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

    嗨、Hari、

    1.从上面分享的统计数据来看,我看不到任何下降,所以我们确定 CPSW 没有下降任何帧。 在 CPSW 之后、MCAL Eth 驱动程序将获取帧。 如果您查看 MCAL 的 TH 演示、我们可以使用"gAppObj.stats"来显示统计数据。 您是否有可能检查这些统计数据并查看是否存在任何溢出或其他错误?

    2.如果我错了,请纠正我,这里的流程是
      来自外部世界的数据包-> CPSW -> MCAL Eth 驱动程序->上层 TCP/IP 堆栈
      无论帧类型如何(TCP/UDP/ARP/ICMP)、CPSW 和 MCAL Eth 驱动程序都不会以不同的方式处理它们、而是仅执行所需的基本处理并将其转发到上层堆栈

    3. Im 不确定这是否是计时问题。 我会让其他专家对此发表评论。 但我再次理解、如果是计时问题、UDP 和 ARP 也应该有问题。

    根据我的理解、存在一些同步/计时问题。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    只有当帧单独发送而不是按顺序发送时、才会接收到所有类型的帧。

    我已在 Ethh 驱动器中添加了一个代码、以检查驱动器级的帧接收情况、如下所示

     

    仅当帧单独发送而不是按顺序发送时、这些制动点才会发生撞击。

    *即使是以上的制动点也不会对所有的单个请求进行撞击,有时 Eth 驱动器正在掉落框架。

      

    来自外部世界的数据包-> CPSW -> MCAL Eth 驱动程序->上层 TCP/IP 堆栈

    -> MCAL ETH 驱动程序-> EthIf ->您的上层 TCP/IP 堆栈

    实际所需序列

     对于上述序列、上述制动点未发生碰撞。

    此致、

    Hari

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

    嗨、Hari、

    只有在帧不按顺序单独发送时、才能收到所有类型的帧。

    感谢您确认这一点。 现在我更好地理解了这个问题。  

    我需要一些时间来调查这件事。 我很快就会给您回复、介绍我们可以进一步调试的内容。

    此致、
    Shaunak

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

    嗨、Hari、

    发送数据包的数据包速率是多少?

    此致、

    Shaunak

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

    尊敬的 Shaunak:

    我不确定确切的传输速率、Wireshark 跟踪似乎是10 - 100ms。

    我们使用的是内部开发的定制工具。

    数据包速率是否有任何限制?

    我已经测试了轮询和中断模式中的 Eth 配置。

    仍然无法接收帧。

    针对 ICMP/TCP 帧没有触发中断。

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

    嗨、Hari、

    让我对我的最后进行一些测试 驾驶员似乎会因突发流量而窒息、可能是因为流量突发导致驾驶员无法处理的情况。

    您能否分享确切的数据包传输速率? 是每10-100ms 1个数据包吗? 突发数据包呢? 增加数据包之间的时间间隔是否有帮助?

    此致、

    Shaunak

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

    尊敬的 Shaunak:

    不可能发生流量突发。

    帧之间最长为1秒、基于回复的最小值。

    如果确认了一个帧、则下一帧将发送到另一个帧、下一帧的发送时间为1秒。

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

    你(们)好、Hari

    由于我们没有完整的 AUTOSAR 堆栈、因此我很难重新创建。 当我发送50,000个数据包间隔(10ms)时、仅在第2层进行测试未显示此问题。 这是因为 L2驱动程序将以相同的方式处理所有数据包。

    对于时序和 EthTrcv 配置、您可以参考开箱即用演示。 我用同样的方法进行测试。 我可以帮助使用与 CPSW 相关的调试指针、但从 AutoSAR 堆栈的角度来看、我不确定 TCP/IP 调试情况。

    1.要查看 DMA 状态、可以选中"0x52834024"以获取 DMA 状态。 如果是"80000000"、则表示它处于空闲状态。 如果有任何其他值、则会指示 DMA 被阻止。

    2.检查 CPSW 统计数据是否存在跌落和溢出(在您按顺序发送所有数据包并且未收到电路板的响应后)。 按照前面提到的顺序发送所有数据包后执行此操作。

    3.检查 FIFO 队列是否存在丢弃: 0x5283A04C (Tx SOF 溢出)、 0x5283A08C (FIFO 底部的 Rx 丢弃)(两者都应为零)

    4. AutoSAR 堆栈的 TCP/IP 实现中是否有日志或调试统计信息? 我建议也检查一下。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    Eth 未接收 ICMP/TCP 帧。

    是否可以在明天(16.05.2024)、星期五或?

    我们可以在完整堆栈上检查该问题。

    此致、

    Hari

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

    嗨、Hari、

    当然、您可以通过电子邮件告知您的空闲时隙吗? 我们可以在2024年5月17日(星期五)打电话。

    此致、

    Shaunak

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

    嗨、Hari、

    根据我们获得的调试调用、我们倾向于 PortMask 和 ALE 配置问题。

    1.为了进一步测试,我们可以尝试绕过 ALE。

    您能否将其添加到代码中:

    CPSWAleBypassEnable (Eth_Drv j.baseAddr、(uint32) true);
    2.广播 MAC 地址将在 Init/SetPhys 地址 API 期间注册,我们应该知道数据包的目标 MAC 地址(从外部发送到控制器),我们应该在 ALE 表中注册 Eth_Update ADDRFilter。
    您能否尝试上述2项并分享结果?
    此致、
    Shaunak
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shaunak:

    应从哪个函数中调用 CPSWAleBypassEnable(appizj.baseAddr, Eth_Drv (UINT32)  true );?

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

    您好!

    您可以在 CpswPort_hostPortopen()之后调用它;在 CPSWAleInit()之前调用它。

    这应该发生在 EthCpswInstInit ()函数中。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    解决方法  CPSWAleBypassEnable(UINT32) Eth_Drv 使能(UINT32) ;工作正常、能够接收所有帧。

    我想、现在你得到了实际的问题。 请告诉我解决方案。

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

    嗨、Hari、

    PORTMASK_DROP!= 0的原因有多种、但最可能的原因有:

    1. 数据包的 DA 是 ALE 表中未包含的单播(即不是主机端口的 MAC 地址)
    2. DA 是多播地址、但多播地址不在 ALE 表中
    3. DA 是多播地址、但主机端口不是 ALE 表多播条目的 portMask 字段的一部分

    "那你怎么又来了?" 此类操作通常可以解决此问题:

    [报价 userid="534155" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356305/tmdscncd263-am2634---ethernet-drops-rx-tcp-frames-while-reception/5201919 #5201919"]
    2.广播 MAC 地址将在 Init/SetPhys 地址 API 期间注册,我们应该知道数据包的目标 MAC 地址(从外部发送到控制器),我们应该在 ALE 表中注册 Eth_Update ADDRFilter。
    您能否尝试上述2项并分享结果?
    [报价]

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我来看看第2点、我有一个问题要问。

    单独接收 TCP/ICMP 帧、如果 MAC 未在 ALE 表中注册、这是如何工作的?

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

    尊敬的 Shaunak:

    "广播 MAC 地址将在 Init/SetPhys 地址 API 期间注册,我们应该知道数据包的目标 MAC 地址(从外部发送到控制器),我们应该在 ALE 表 Eth_Update 中注册 MAC 地址。"

    我已经尝试获取广播 Mac 地址。

    ->根据我的理解、获取 外部广播 Mac 地址是不可能的、只能在外部 ARP 期间。

    你能告诉我 ALE 表的地址/变量吗?

    ->在哪个函数中可以调用以下函数 Eth_Update AddrFilter

    您能不能更详细地解释一下、我能从哪个函数获得广播 Mac?我能从哪个函数在 ALE 表中更新它?

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

    嗨、Hari、

    我昨天就不在办公室了,因为我的反应延迟了。

    1.我们能够在 ALE 被绕过的情况下运行测试(不会由 ALE 评估/丢弃入口的任何数据包)。 我们在调试调用中注意到 ALE 端口掩码导致了问题。 ALE 将转发广播数据包、这就是我们能够看到 DoIP (UDP)和 ARP 数据包没有下降的原因。 这种广播转发是有效的、因为在 Init 期间、我们在 ALE 中添加了广播 MAC。  

    2.对于我们来说、ALE 中不存在单播地址。 我怀疑这是一个问题:  数据包的 DA 是 ALE 表中未包含的单播(即不是主机端口的 MAC 地址)

    3.

    ->在哪个函数中我可以调用以下函数 Eth_Update AddrFilter

    流程一般如下:

    Eth_Init ()->45V App_Trcv 3015IT()->45V Eth_Set Mode()-> Eth_Set _Addr() 0 ->  Eth_Update T.2001 AddrFilter()

    首先初始化 ETH 和 ETH Trcv。 然后、我们在控制器模式下设置 AM263x、设置控制器地址、再将数据包的目标地址设置为 ALE。 粗体函数是 我认为在此例中缺少的并导致数据包丢失的函数。

    您无需在 ALE 表中更新或添加广播 MAC。 请参阅点2。

    ->请告诉我 ALE 表的地址/变量。

    很难从存储器浏览器直接读取 ALE 表。 ALE 表寄存器可在寄存器指南的第4.18.416节中找到: www.ti.com/.../spruj42d.pdf

    ALE 表应由 GEL 脚本读取。 ALE 表的起始地址为 0x5283E020并且有512个条目。 每个条目将分为字0 (0x5283E03C)字1 (0x5283E038)和字2 (0x5283E034)。 那么我们可以进一步推断这一点。

    GEL 脚本通过以下方式读取 ALE 表:

    hotmenu cpsw_print_ale_table_3g()
    {
        uint32_t word0, word1, word2;
        uint32_t type;
        int i;
    
        GEL_TextOut("---------------------------------------------\n");
        GEL_TextOut("-------CPSW3G ALE TABLE----------------------\n");
        GEL_TextOut("---------------------------------------------\n");
    
        for (i = 0; i < ALE_TABLE_DEPTH_3G; i++)
        {
            WR_MEM_32(ALE_TBLCTL_3G, i);
    
            word0 = RD_MEM_32(ALE_TBLW0_3G);
            word1 = RD_MEM_32(ALE_TBLW1_3G);
            word2 = RD_MEM_32(ALE_TBLW2_3G);
    
            if (0)
            {
    
                GEL_TextOut("WORD1  = %u\n",,,,, word0);
                GEL_TextOut("WORD1  = %u\n",,,,, word1);
                GEL_TextOut("WORD1  = %u\n",,,,, word2);
            }
    
            /* ENTRY_TYPE (bits 61:60) */
            type = (word1 >> 28) & 0x3;
    
            if (type == ALE_ENTRY_EMTPY) {
                //GEL_TextOut(" Entry %u - Empty\n",,,,, i);
            } else if (type == ALE_ENTRY_ADDR) {
                if ((word1 >> 8) & 0x1) {
                    show_ale_entry_multicast_3g(i, word0, word1, word2);
    //            } else if ((word1 >> 30) & 0x3) {
    //                show_ale_entry_oui_unicast(i, word0, word1, word2);
                } else {
                    show_ale_entry_unicast_3g(i, word0, word1, word2);
                }
            } else if (type == ALE_ENTRY_VLAN) {
                show_ale_entry_vlan_3g(i, word0, word1, word2);
            } else if (type == ALE_ENTRY_VLAN_ADDR) {
                if ((word1 >> 8) & 0x1) {
                    show_ale_entry_vlan_multicast_3g(i, word0, word1, word2);
                } else {
                    show_ale_entry_vlan_unicast_3g(i, word0, word1, word2);
                }
            }
        }
    
        GEL_TextOut("Completed analysis of %u ALE entries\n",,,,, i);
    }

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我认为下面是非自动标记序列。

    Eth_Init ()->45V App_Trcv 3015IT()->45V Eth_Set Mode()-> Eth_Set _Addr() 0 ->  Eth_Update T.2001 AddrFilter()

    在本例中、顺序略有不同、根本不调用这些函数  Eth_Set Addr()、 Eth_Update AddrFilter()

    Eth_Init ()- 45ml Trcv_Init ()- Eth_Set 3079器模式()

     

     

     

    因为问题长期以来一直未决

    我的工作时间从1pm IST 开始。

    明天是否可以有调试会话来结束和关闭问题?

    此致、

    Hari

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

    嗨、Hari、

    当然可以、我们可以在 IST 下午4点之前进行45分钟的同步吗? 请重复使用上次会议共享的会议链接。

    此致、
    Shaunak

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

    谢谢!

    请再次发送会议请求。

    我误拒绝了之前的会议请求。

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

    当然、我将重新安排会议邀请

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

    尊敬的 Shaunak:

    根据我们上周五的讨论,我尝试了 EthRxProcessPacket()函数的以下更改,但它不起作用。

    您有更新吗?

    有任何事情需要检查、需要在今天下午4点 IST 进行调试?

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

    嗨、Hari、

    您能再检查一件事吗、

    在 tresos 中、可以将 AA:BB:CC:DD:EE:FF 作为控制器 MAC 地址、而不是11:22:33:44:55:66。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    以前我使用的是66-55-44-33-22-11、因为11-22-33-44-55-66不工作。

    现在、我向 AA-BB-CC-DD-EE-FF 进行了检查、但问题仍然相同。

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

    嗨、Hari、

    为了使调试更轻松、我尝试在 MCAL 的开箱即用 Eth 应用演示中复制此内容。 我不能这样做。 我请另一位专家也对其进行审查、但他们 都无法复制。

    如果可能的话,你可以尝试复制它在你的终端只与 Eth 应用程序演示. 我们只需要用您的工具检查 MCAL 演示中的统计数据(检查 ICMP 和 TCP 滴点)。 驱动程序在第2层处理所有数据包。 运行 MCAL ETH 应用演示并使用您的工具发送数据包、如果我们看到 MCAL Eth 演示也显示下降、那么我可以确认这是 ALE 或 MCAL 产品的问题、否则这可能是测试或应用级问题、我没有自己的专业知识。

    我还有一个建议、如果您使用的是 MCAL 09.01 SDK、请尝试对 MCAL 09.02 SDK 执行相同的操作、因为团队进行了一些更改。

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    我尝试用 Mcal 演示测试相同的测试顺序、但无法测试。

    工具期望 Mcal Demo 的 ARP 响应继续剩余的测试序列,而在 Demo 中则没有发生。

    ALE 和 STAT 脚本结果:

     

    在这种情况下、没有跌落、无法确认帧跌落。

    因为完整的测试序列未完成。

    从上面的 ALE 图像端口0具有 HW 和 Tester Mac 地址。

    此处没有基于 MAC (而不是 IP 地址)的 ARP 和传输。

    q)何时/从哪个功能测试仪 Mac 添加到 ALE 中?

    q)何时接收帧?

    问:通常、何时将测试仪 Mac 添加到 ALE 中?

    *我会尝试可能性,测试相同的序列,但不确定。

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

    嗨、Hari、

    1.我也无法在我们的 SDK 中重现该问题。

    [报价 userid="592034" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356305/tmdscncd263-am2634---ethernet-drops-rx-tcp-frames-while-reception/5218615 #5218615"]

    此处没有基于 MAC (而不是 IP 地址)的 ARP 和传输。

    [报价]

    是的、由于我们没有 TCP/IP AutoSAR 堆栈、因此我们无法测试基于 IP 的传输、但我知道一些使用的客户在通过 MCAL 集成其堆栈后成功实现了基于 IP 的通信。  

    2.  

    Q)何时/从哪种功能测试仪向 ALE 添加 Mac?

    你可以参考 EthApp Demo,我们使用  Eth_Set 2001地址() 控制器 MAC 和使用  Eth_Update T.2001 AddrFilter() 添加测试 MAC 地址(这将是该工具所发送数据包的目标地址)。

    所有 MAC 地址添加在之后发生 Eth_Init ()、Eth_Trcv 541IT()、 Eth_Set 3628erMode()、 Eth_Get 247erMode()。

    [报价 userid="592034" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1356305/tmdscncd263-am2634---ethernet-drops-rx-tcp-frames-while-reception/5218615 #5218615"]Q)接收一帧?[/QUOT]

    不、它是在手头之前添加的

    您可以参考 ALE.c、了解它是如何加入 Eth_Priv 的。

    第一时间发送  Eth_Update T.2001 AddrFilter() 进行调用  Eth_Hw 骨灰阶滤波器()。

    我建议在该函数中添加一个断点、同时添加测试仪 MAC 并检查的值 currPort . 如果该值为0、则 ALE 表端口号为0、如果为1、则将添加为端口号1。

    您是否可以尝试此操作并确保其为零(出于测试目的、您可以尝试硬编码0)。 但是、由于在 SDK 中看不到压降、因此我不确定我可以在这里投入多少精力。 似乎是测试或配置问题。 因为当我们使用 ncat 独立测试 TCP 时、我们可以连接和执行 ICMP ping 操作。

    此致、
    Shaunak

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

    嗨、Hari、

    您是否有关于此问题的任何更新? 我们是否仍会观察到相同的行为?

    此致、
    Shaunak

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

    尊敬的 Shaunak:

    类似用例测试设置不可用于测试 TI MCAL ETH_APP 演示。

    我们正在寻找用于测试它的选项。 我将在获得用例测试结果后立即更新。

    此致、

    Hari