在上一期飞凌课堂丨OK1046A-C内存交互测试,小白也能看懂中,笔者介绍了OK1046A-C内存部分的测试。本文中将针对于OK1046A-C的万兆网测试和网络转换方面,展示完整的测试过程。
测试工具介绍
1、Iperf工具介绍
Iperf是一个网络性能测试工具。可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失。利用Iperf这一特性,可以用来测试一些网络设备如路由器、防火墙、交换机等的性能。
2、获取方式
wget https://github.com/esnet/iperf/archive/3.6.tar.gz
获得iperf压缩包
3、编译方法
因1046板卡自带iperf3测试程序,所以以下只是通用性的编译方法,本机并不需要。
解压iperf压缩包并进入编译目录
tar xvf 3.6.tar.gz && cd iperf-3.6/
configure配置
./configure --host=arm-none-linux-gnueabi --prefix=`pwd`/install CC=arm-xxx-linux-gnueabi-gcc CFLAGS="-static"进行config
工具使用说明
像其它Linux工具一样,iperf3同样是支持-h/--help之类的命令,我们利用显示帮助看一下,如下图:
我们可以看到,这款软件分为客户端与服务端两部分,以-s 作为区分。
以下是Iperf3的参数介绍(此部分图片来源于网络)
板卡网口的介绍
OK1046A-C软件上网络部分存在两种配置:
§ 配置1040支持的网络资源有XFI、RGMIIx2、QSGMII共计7个网口;
§ 配置1133支持的网络资源有XFI、SFP+、RGMIIx2、SGMII 共计5个网口(修改硬件设计可以多支持一个SGMII网口),且板卡默认qspi的启动配置是1040。
以下是Linux系统中fm1-macN与RJ45的对应关系。
网络性能测试
万兆网口网络测试(J5)
测试环境对端为安装有万兆网卡的Linux主机(本测试中的主机eth1为万兆网卡,其IP地址为192.168.2.181,连接开发板万兆网口与Linux主机万兆网口)。
测试环境参数如下:
Linux host 192.168.2.181
OK1046A-C 192.168.2.182
使用iperf进行打流测试,在同一局域网内的Linux主机上输入:
# ifconfig eth1 192.168.2.181
# iperf3
在OK1046A-C终端上输入以下命令:
root@localhost:~# ifconfig fm1-mac9 up
root@localhost:~# ifconfig fm1-mac9 192.168.2.182
root@localhost:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@localhost:~# iperf3 -c 192.168.2.181 -i 5 -t 60
RGMII接口网络测试(J26上)
测试环境参数如下:
Linux Host 192.168.1.181
OK1046A-C 192.16.1.106
在同一局域网内的Linux主机上输入:
# ifconfig eth0 192.168.1.181
# iperf3 -s
将网线插入fm1-mac4(J26上)口,输入以下命令进行测试:
root@localhost:~# ifconfig fm1-mac4 up
root@localhost:~# ifconfig fm1-mac4 192.168.1.106
root@localhost:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@localhost:~# iperf3 -c 192.168.1.181 -i 5 -t 60
注意:根据Linux主机实际ip更改此处192.168.1.181
QSGMII接口网络测试(J29上)
测试环境参数如下:
Linux Host 192.168.1.181
OK1046A-C 192.168.1.106
在同一局域网内的Linux主机上输入:
# ifconfig eth0 192.168.1.181
# iperf3 -s
将网线插入fm1-mac4(J26上)口,输入以下命令进行测试:
root@localhost:~# ifconfig fm1-mac1 up
root@localhost:~# ifconfig fm1-mac1 192.168.1.106
root@localhost:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@localhost:~# iperf3 -c 192.168.1.181 -i 5 -t 60
注意:根据Linux主机实际ip更改此处192.168.1.181
测试结果
综上,笔者通过iperf灌包程序针对OK1046A-C的几个网口的带宽性能进行了测试,并得出了相应带宽数据。
经验证OK1046A-C千兆网上传带宽速度均达到940Mb/s左右,万兆网卡上传带宽为7Gb/s,符合一般情况下的网络使用。同时,iPerf仍然是一个非常方便的工具,它可以帮助你生成和检测udp/tcp的数据流量。
我们这里测试带宽上限只用到了其中很小的一部分,还有更多测试功能有待后续发掘。