MobiSense / Ziggo-CaaS-Switch

HW&SW Switch implementation enabling Control-as-a-Service industrial network paradigm
MIT License
13 stars 5 forks source link

time_sync在端设备无法运行 #5

Open zcw8887seu opened 4 months ago

zcw8887seu commented 4 months ago

您好,我们目前使用三块AX7021开发板,一台作为caas交换机,两台作为端设备,部署的网络拓扑按照demo中的示例如下: 图片1 对应也修改了config.json和schedule.json,都按照https://github.com/Horacehxw/Ziggo-CaaS-Switch/blob/main/docs/software-build.md 中的指导来的,只是自己设置的mac地址有所不同,但也全部同步修改了。 图片2 图片3 主要问题有三个: 1.在2个端设备运行time_sync均不成功 图片4 图片5 2.pkt_gen在端设备也无法运行 图片6 3.交换机上的Switch_config只能显示当前配置情况,无法实现文档中描述的修改功能 图片7

ycdfwzy commented 4 months ago

你好,下面是回答你的问题: 1、这应该是几台设备间时间同步启动的间隔太大,请快速启动几台设备间的时间同步程序,或者使用我们提供的脚本控制时间同步 https://github.com/Horacehxw/Ziggo-TSNPerf/blob/main/testbed-build/batch.mjs 2、修改config里的mac地址为 eth 0 的mac地址 3、这里我没看出有什么问题,应该是正常输出

zcw8887seu commented 4 months ago

你好,下面是回答你的问题: 1、这应该是几台设备间时间同步启动的间隔太大,请快速启动几台设备间的时间同步程序,或者使用我们提供的脚本控制时间同步 https://github.com/Horacehxw/Ziggo-TSNPerf/blob/main/testbed-build/batch.mjs 2、修改config里的mac地址为 eth 0 的mac地址 3、这里我没看出有什么问题,应该是正常输出

感谢,问题1已经解决,想问下问题2中“修改config里的mac地址”是build目录下的config.json文件里吗?我们这里的地址本身就是eth0的mac地址,如果不是这里的话,那是在哪里修改呢?感谢!

ycdfwzy commented 4 months ago

抱歉,上一个回复中我说错了。 问题2里,你是在端设备运行代码,这里应该是用eth1的mac地址

zcw8887seu commented 4 months ago

抱歉,上一个回复中我说错了。 问题2里,你是在端设备运行代码,这里应该是用eth1的mac地址

您好,我还没太能理解,主要是有两个问题, 1.我们端设备按照硬件部分指导,在使用init_os.sh进行初始化的时候,只有默认的eth0口被设置了mac地址,且前4个字段是写死的,echo -n "Enter your mac address 00:0A:35:00:" ,想请问eth1的mac地址应该如何设置或获得呢? 2.在获得了eth1的mac地址之后,应该在哪里修改呢,是build目录下的config.json文件吗?我们目前的config.json文件在问题最开始的第一张图已经展示,里面只包含节点和连接信息,好像没有可以修改的地方。 麻烦了,非常感谢!

eraser333 commented 4 months ago
  1. 命令行输入ifconfig就能获得eth1的地址
  2. config.json最开始的部分, "nodes"下修改对应节点的mac地址
zcw8887seu commented 4 months ago
  1. 命令行输入ifconfig就能获得eth1的地址
  2. config.json最开始的部分, "nodes"下修改对应节点的mac地址

您好,我们现在在两台端设备运行pkt_gen结果如下,没看到任何输出,请问这是正常运行的结果吗?如果不是的话,能否指点一下可能是哪里出了问题,以及正确的运行结果应该是怎么样的。 device0发送端pkt device1接受端 另外还想请教的是,按照Ziggo-TSNPerf/docs/software-build.md中的指导,在运行time sync程序的过程中,数据会被保存在build/packet_log.csv和build/critical_log.csv中,但我们这里都没有看到任何csv文件,请问应该如何处理,非常感谢。

ycdfwzy commented 4 months ago

1、pkt_gen 这样的输出结果是正常的,它会配置硬件,自动开始周期性地发送关键数据包。你可以把eth1端口接到电脑上,用wireshark,验证是否成功发包 2、你检查一下是否收到了数据包?可以把最后一个设备换成电脑,用wireshark看一下是否收到了关键数据包

zcw8887seu commented 4 months ago

1、pkt_gen 这样的输出结果是正常的,它会配置硬件,自动开始周期性地发送关键数据包。你可以把eth1端口接到电脑上,用wireshark,验证是否成功发包 2、你检查一下是否收到了数据包?可以把最后一个设备换成电脑,用wireshark看一下是否收到了关键数据包 图片1 我们还是按照上图中的网络拓扑,发送端ETH1连接交换机ETH1,交换机ETH3连接接收端ETH1,按照您的指导,我们尝试把接收端换成了电脑,在发送端运行pkt_gen并用wireshark抓包,结果如下: wireshark 这个是代表运行成功了吗? 另外一个问题还是没有解决,就是我们想用Ziggo-TSNPerf/docs/software-build.md中4.1直接分析的方法,但没有找到csv文件,请问是什么问题呢?谢谢。

eraser333 commented 4 months ago
  1. 运行成功了
  2. 请问是否在接收的TSNPerf设备中运行了pkt_gen?

1、pkt_gen 这样的输出结果是正常的,它会配置硬件,自动开始周期性地发送关键数据包。你可以把eth1端口接到电脑上,用wireshark,验证是否成功发包 2、你检查一下是否收到了数据包?可以把最后一个设备换成电脑,用wireshark看一下是否收到了关键数据包 图片1 我们还是按照上图中的网络拓扑,发送端ETH1连接交换机ETH1,交换机ETH3连接接收端ETH1,按照您的指导,我们尝试把接收端换成了电脑,在发送端运行pkt_gen并用wireshark抓包,结果如下: wireshark 这个是代表运行成功了吗? 另外一个问题还是没有解决,就是我们想用Ziggo-TSNPerf/docs/software-build.md中4.1直接分析的方法,但没有找到csv文件,请问是什么问题呢?谢谢。

zcw8887seu commented 4 months ago

好的好的,非常感谢,现在已经能看到csv文件了,还想请教您的是,我们想按照Ziggo-TSNPerf/docs/testbed.md中互联互通测试项目进行门控能力的测试 微信截图_20240326093421 想问下: 1.这个“每个调度周期预留长度为 3 的时隙给高优先级流量”应该怎么设置呢 2.每个周期定时发送 4 个数据包长度为 1500Byte 的高优先级(VLAN priority = 1)测试流量应该怎么设置 这两个都是修改schedule.json文件吗? 3.这里时隙和数据包的关系是什么呢,为什么3个时隙可以通过5个包呢 感谢

eraser333 commented 4 months ago

好的好的,非常感谢,现在已经能看到csv文件了,还想请教您的是,我们想按照Ziggo-TSNPerf/docs/testbed.md中互联互通测试项目进行门控能力的测试 微信截图_20240326093421 想问下: 1.这个“每个调度周期预留长度为 3 的时隙给高优先级流量”应该怎么设置呢 2.每个周期定时发送 4 个数据包长度为 1500Byte 的高优先级(VLAN priority = 1)测试流量应该怎么设置 这两个都是修改schedule.json文件吗? 3.这里时隙和数据包的关系是什么呢,为什么3个时隙可以通过5个包呢 感谢

1和2 所有给出测试配置文件都可以在TSNPerf开源项目中找到,请参考https://github.com/Horacehxw/Ziggo-TSNPerf/tree/main/testbed-build 3 时隙是我们团队设置能保证通过1MTU所预留的时间。具体来说一个时隙大小被设置为 2^14 = 16384ns,1MTU 在千兆网络下的存储转发时间是 1500B/1000Mbps = 12000ns (1B=8b)。所以三个时隙大小是 49152ns > 4 * 12000ns。而第5个以太网帧在此期间已经开始发送,所以也会被发完。所以3个时隙可以通过5个1500B的以太网帧。