Intel® Acceleration Stack User Guide: Intel FPGA Programmable Acceleration Card N3000

ID 683040
Date 6/14/2021
Public
Document Table of Contents

8.2. Setting Forward Error Correction (FEC) Mode

The Intel® FPGA PAC N3000 supports different forward error correction (FEC) modes to enhance data reliability for 25GbE network configurations. The default FEC mode is Reed Solomon FEC. The following FEC modes are available:
Table 9.  FEC Modes
fec_mode Mode
no No FEC
kr Fire Code Forward Error Correction (IEEE 802.3 Clause 74)
rs Reed Solomon Forward Error Correction (IEEE 802.3 Clause 108)
Note: The configurable FEC is only supported for 2x2x25G and 4x25G network configurations. For 8x10G, the FEC setting has no impact and this operation is invalid.
To set FEC mode:
$ sudo fecmode -B <bus> <mode>

<mode> = ‘no’, ‘kr’, ‘rs’
<bus> = PCIe bus of FPGA in the format “0xYZ”
Note: The fecmode command causes a board level rsu event while changing FEC modes. The rsu event causes a board level reset which causes previously configured Ethernet settings to revert back to default settings. Intel recommends you first set FEC mode, then configure Ethernet and other board level settings. The rsu event may also cause the PCIe bus number to change.
To get FEC mode:
$ fecmode -B <bus>

<bus> = PCIe bus of FPGA in the format “0xYZ”
For example:
$ fecmode -B 0xb3
FEC mode in current driver: rs
FEC mode in current hardware: rs
$ sudo fecmode -B 0xb3 kr
reloading driver with new parameter 'kr'
performing remote system update
2019-11-14 10:00:34,121 - [[pci_address(0000:b3:00.0), pci_id(0x8086, 0x0b30)]] performing RSU operation
2019-11-14 10:00:34,123 - [[pci_address(0000:ae:00.0), pci_id(0x8086, 0x2030)]] removing device from PCIe bus
2019-11-14 10:00:34,124 - waiting 10 seconds for boot
2019-11-14 10:00:44,135 - rescanning PCIe bus: /sys/devices/pci0000:ae/pci_bus/0000:ae
2019-11-14 10:00:49,119 - RSU operation complete
Done
$ fecmode -B 0xb3
FEC mode in configuration: kr
FEC mode in current driver: kr
FEC mode in current hardware: kr