Intel® Acceleration Stack用户指南: Intel FPGA Programmable Acceleration Card N3000

ID 683040
日期 8/17/2020
Public
文档目录

8.3. Ethernet暂停流控制(Ethernet Pause Flow Control)

Intel FPGA PAC N3000支持暂停帧操作用于:
  • 25G,如25G Ethernet Intel Arria 10 FPGA IP User GuideFlow Control部分中所述。
  • 10G,如Low Latency Ethernet 10G MAC Intel FPGA IP User GuideFlow Control部分中所述。
默认情况下,暂停帧生成和对暂停帧接收的响应是禁用的。您可以使用下面命令读取暂停帧生成的当前设置:
$ ethtool --show-pause npacf0g0l0
Pause parameters for npacf0g0l0:
Autonegotiate:	off
RX:		off
TX:		off
开启暂停帧生成:
  1. Set Pause Quanta:可配置寄存器,用于设置嵌入在暂停帧数据包中的所需延迟时间,该延迟帧数据包请求对等方在由量子定义的时间段内停止传输。一个量子等于512-bit时间。
  2. Hold-off Quanta:可配置寄存器,用于设置连续暂停帧数据包之间的所需延迟时间(单位为量子或者512-bit时间)。
  3. Pause Frame Enable:使您能够使用ethtool使能或者禁用暂停帧行为。
在多卡系统中,如果只想在一个PCIe器件上配置暂停帧,那么请运行以下命令来查找特定FPGA PCIe的器件映射:
ls -l /sys/class/fpga/intel-fpga-dev.*
样例输出:
/sys/class/fpga/intel-fpga-dev.0 -> ../../devices/pci0000:11/0000:11:00.0/0000:12:00.0/0000:13:09.0/0000:15:00.0/fpga/intel-fpga-dev.0
/sys/class/fpga/intel-fpga-dev.1 -> ../../devices/pci0000:ae/0000:ae:00.0/0000:af:00.0/0000:b0:09.0/0000:b2:00.0/fpga/intel-fpga-dev.1

仅对FPGA PCIe 15:00.0开启暂停帧生成,在以下命令中将intel-fpga-dev.*替换成器件实例id intel-fpga-dev.0

设置暂停帧生成的示例:
# echo 200 > /sys/class/fpga/intel-fpga-dev.*/intel-fpga-fme.*/pac_n3000_net.*.auto/\
net/npacf0g0l0/tx_pause_frame_quanta
# cat /sys/class/fpga/intel-fpga-dev.*/intel-fpga-fme.*/pac_n3000_net.*.auto/\
net/npacf0g0l0/tx_pause_frame_quanta
0xc8
# echo 200 > /sys/class/fpga/intel-fpga-dev.*/intel-fpga-fme.*/pac_n3000_net.*.auto/\
net/npacf0g0l0/tx_pause_frame_holdoff
# cat /sys/class/fpga/intel-fpga-dev.*/intel-fpga-fme.*/pac_n3000_net.*.auto/\
net/npacf0g0l0/tx_pause_frame_holdoff
0xc8
# ethtool --pause npacf0g0l0 tx on
# ethtool --show-pause npacf0g0l0
Pause parameters for npacf0g0l0:
Autonegotiate:	off
RX:		off
TX:		on
注: 本节中列出中所有Ethernet设置在电源重启或服务器重启或rsu之间不是恒定的。电源重启或服务器重启或rsu之后,Intel FPGA PAC N3000会返回到默认设置。 rsu命令导致PCIe B:D.F值发生变化。