NetFPGA安装与调试[2]
NetFPGA平台搭建完成后,总要进行selftest和RegressionTest以测试NetFPGA卡的物理与逻辑功能是否完好。但是在测试过程中经常遇到很多问题,尤其是回归测试,经常会因为寄存器没有清空而出现各种错误。经过一段时间的分析整理,我们将自检与回归测试各个项目的内容与注意事项总结出来,提供给大家参考。
1. Selftest
自检主要是对NetFPGA卡进行物理的检测,注意事项如下:
Ø 用两根网线连接nf2c0-->nf2c1,nf2c2-->nf2c3(直连交叉均可),使用串口线连接NetFPGA开发板右侧的两个串口;
Ø 执行脚本cpci_reprogram.pl初始化NetFPGA;
Ø 启用NetFPGA的四个端口:
for i in `seq 0 3`; do ifconfig nf2c$i up; done |
Ø 下载selftest.bit文件进V2PRO,开始测试。
2. RegressionTest
回归测试的情况比较复杂,基本内容是以几个推荐实例为基础,结合实际可能出现的问题进行测试,以保证NetFPGA在各种异常状态下都能够正确的处理信息。回归测试的准备工作很繁琐,主要分为一下几个方面:
(1) 修改网卡配置文件或者测试脚本中的网卡映射(用INTEL双口网卡的朋友不用修改);
(2) 关闭Linux系统的IPv6;
(3) 回归测试网口仅支持1Gbps速率,使用千兆网卡测试;
(4) 回归测试的时候任意非测试系统生成的以太网数据包都将导致错误发生,尽量避免异常情况(如广播等)。
3. 测试分析
整个回归测试包括了八大部分:
project_reference_driver
project_reference_nic
project_reference_router
project_scone
dram_queue_test
dram_router
project_router_buffer_sizing
project_router_kit
整个测试涵盖了NetFPGA运行时可能会遇见的各种异常问题,包括遇到各种错误的数据包,各种非法数据帧,也包括调试路由表大小,DDR内存性能的特性测试,下面将详细讨论各个测试的具体内容。
project_reference_driver
此项测试的具体内容及其测试目的如下:
1. Driver compiles
测试驱动正常编译
2. Driver installs in the correct location
检测驱动文件nf2.Ko是否在正确的存放地点(/lib/modules/`uname -r`/kernel/drivers/)。
3. nf2c[0-3] interfaces present in system with one NetFPGA card
测试NetFPGA中的4个网口是否能够被成功找到。
要求:驱动正常而且仅安装了一块NetFPGA卡。
4. Ability to load driver with modprobe
验证驱动程序能够被modprobe程序启动。
*modprobe 是CentOS 系统启动时挂载驱动的程序。
5. Driver advertises MTU of 1500 bytes
设置网口的MTU大小
6. IP address can be assigned to nf2cX interfaces
为nf2c0--nf2c3指定IP
待续…