在更改 IP 设置时、我会在 Wireshark 上注意到 NDK 会发送 ARP 探针并在更改 IP 时公布数据包、如何在启动期间执行同样的操作?
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.
在更改 IP 设置时、我会在 Wireshark 上注意到 NDK 会发送 ARP 探针并在更改 IP 时公布数据包、如何在启动期间执行同样的操作?
感谢 Charles 的回复
我同意您的看法、我们位于同一页面、 正如我在本主题中提到的
TM4C129XNCZAD:在 NS_BootTask 任务期间 ARP 公告数据包问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
此问题与 NDK 任务的时序问题有关、因此在对 NDK 稍作调查后、我发现 NDK 默认会发送此 ARP 广播消息、但 NDK 内部存在时序问题、阻止此消息在网络接口上传输 因此我们无法在 Wireshark 上看到它、但弄乱了 NDK、我在发送数据包之前添加了延迟。
- ndk/stack/bind/bind.c file 我添加了绿色行
句柄 BindNew(句柄 HIF, IPN IPHost, IPN IPMask )
{
...
if ( IFGetType ( HIF )== HTYPE_ETH && IPHost != INADDR_ANY && IPHost != INADDR_BROADDR_BROADCAST )
{
TaskSleep (2500);
LLIGenArpPacket( HIF, IPHost );
}
...
}
这将使引导任务能够等待执行较低 NDK 任务初始化
我将再次尝试找到初始化 NDK 任务接口的特定信号、但现在这解决了我的问题、现在我可以在网络上看到 ARP 广播消息、每个 NDK 引导牺牲时间开销 (2500ms)
当然、如果有人进行了该更改、请不要忘记构建