硬件定版调测下BareFoot交换配置操作说明
概述
Barefoot交换芯片是由Barefoot Networks公司(于2020年6月被英特尔(Intel)公司收购)开发的一种高性能网络交换芯片。它采用了基于P4编程语言的可编程数据平面技术,可以实现灵活的数据包处理和流量控制,并且具有前所未有的高性能和可编程性。
芯片配套的SDE(Software Development Environment)包是一个软件开发环境,可以帮助开发者进行Barefoot交换芯片的应用程序开发、测试和调试。
SDE包中包含了P4编译器、模拟器、调试工具和API库等组成部分,可以支持开发者进行全面的应用开发工作:
- P4编译器可以将P4代码编译成可执行的二进制文件。
- 模拟器可以模拟交换机硬件的行为,进行应用程序测试和调试。
- 调试工具可以帮助开发者进行代码调试和性能分析。
- API库可以提供数据结构和函数库,方便开发者进行应用开发。
本文针对Barefoot交换芯片SDE自带的命令行操作,对常使用到的一些信息查看,配置操作,以及与硬件强绑定的SERDES配置操作进行了详细说明,能够满足相关开发者在定板调测和项目应用场景中的一些需求。
环境
- X86环境: 内核3.16.x
- sde版本: 9.4.1。
交换命令行
1.相关脚本说明
启动交换,按照sde提供脚本,配置环境变量以及加载需要的相关驱动:
. ./set_sde.bash //配置环境变量
./install/bin/bf_kdrv_mod_load $SDE_INSTALL //加载交换驱动
./run_switchd.sh -p diag //以diag模式启动交换
2.交换命令菜单
进入交换后,输入ucli,?命令操作后显示所有菜单,其中常用的有以下:
port_mgr //接口信息等操作
pm //接口属性配置及显示等操作
bf_pltfm //led,日志,芯片硬件信息,外围器件信息,例如:光模块信息
diags //vlan,流量转发等。
PM菜单下的接口配置
以下操作命令均在ucli界面的pm窗口下进行,进入方式:
在bfshell下输入ucli,然后输入pm,如图:
Pm视图下的接口操作,使用的均为port_str:例如:1/0 ,3/3
1.接口添加配置
命令:port-add <port_str> <speed (1G, 10G, 25G, 40G, 40G_NB, 50G(50G/50G-R2, 50G-R1), 100G(100G/100G-R4, 100G-R2),200G(200G/200G-R4, 200G-R8), 400G 40G_NON_BREAKABLE), 40G-R2> <fec (NONE, FC, RS)>
举例:添加接口1为100G 开fec
port-add 1/- 100G RS
2.接口删除
命令:port-del <port_str>
举例:删除接口1
port-del 1/-
3.接口使能
命令:port-enb <port_str>
举例:使能接口1
port-enb 1/-
4.接口去使能
命令:port-dis <port_str>
举例:去使能接口1
port-dis 1/-
5.清除接口计数
命令:port-stats-clr <port_str>
举例:清除所有接口计数
port-stats-clr -/-
6.开启接收均衡
命令:port-sd-dfe-pcal<port_str> <lane/all>
举例:开启接口1的接收均衡
port-sd-dfe-pcal 1/0 all
7.开启接口单收/发
命令:port-dir-set <port_str> <0->Default,1->TX Only,2->RX Only>
举例1:开启接口1的单接收功能
port-dir-set 1/0 2
举例2:开启接口1的单发送功能
port-dir-set 1/0 1
举例3:恢复接口1的正常接收发送功能
port-dir-set 1/0 0
8.接口自协商
命令:an-set <port_str> <0->auto,1->enable,2->disable>
举例:接口1的自协商开启
an-set 1/0 1
9.接口kr模式
命令: kr-set <port_str> <0->auto,1->enable,2->disable>
举例:接口1的kr开启
Kr-set 1/0 1
注:sde-9.4.0及以上版本才对kr模式配置做支持
10.接口状态查询
命令:show -a -p <port_str> [-d]
举例1:查看所有接口link状态,收发包状态
Show
举例2:查看接口60的收发详细统计信息
Show -a -p 60/0 -d
注:打印信息包含各种包的情况,例如:红色方框为fcs错包统计
11.接口预加重查询
命令:port-sd-show <port_str>
举例:查看接口28的预加重