Page MenuHomeVyOS Platform

Be able to set FEC (Forward Error Correction) settings per interface
Open, NormalPublicFEATURE REQUEST

Description

With 25Gbps and above using FEC (Forward Error Correction) have become a thing specially when connecting to other devices regarding on/off/auto or for that matter statically set it to FC-FEC (FEC74) or RS-FEC (FEC91).

This is heavily vendor/model/transceiver/driver dependent so a current workaround is to use ethtool or manual modprobe settings through /config/scripts/vyos-preconfig-bootup.script or /config/scripts/vyos-postconfig-bootup.script.

But it would be handy if this could be set through the vyos-config along with be included when doing "shot interfaces" or similar.

Request as in:

https://old.reddit.com/r/vyos/comments/1ggzxye/setting_forward_error_correction_in_vyos/

Reference on "how others does this":

https://help.mikrotik.com/docs/spaces/ROS/pages/8323191/Ethernet#Ethernet-FEC

Background on FEC:

https://community.fs.com/article/enhancing-25g-fiber-optic-communication-with-advanced-fec-techniques.html

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

https://edc.intel.com/content/www/us/en/design/products/ethernet/adapters-and-devices-user-guide/forward-error-correction-fec-mode/

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Feature (new functionality)

Event Timeline

syncer triaged this task as Normal priority.Sat, Nov 2, 11:50 AM
syncer moved this task from Need Triage to Backlog - Feature Requests on the VyOS Rolling board.

According to https://old.reddit.com/r/vyos/comments/1ggzxye/setting_forward_error_correction_in_vyos/lv09d09/ using eth-tool to both set (and show) current fec-setting(s) should be doable (tested on Intel and Mellanox nics using transceivers from FS.com, Flexoptix and Mikrotik):

https://manpages.debian.org/bookworm/ethtool/ethtool.8.en.html

ethtool --set-fec devname encoding auto|off|rs|baser|llrs [...]

...

--show-fec
Queries the specified network device for its support of Forward Error Correction.

--set-fec
Configures Forward Error Correction for the specified network device.
Forward Error Correction modes selected by a user are expected to be persisted after any hotplug events. If a module is swapped that does not support the current FEC mode, the driver or firmware must take the link down administratively and report the problem in the system logs for users to correct.

encoding auto|off|rs|baser|llrs [...]
Sets the FEC encoding for the device. Combinations of options are specified as e.g. encoding auto rs ; the semantics of such combinations vary between drivers.

auto	Use the driver's default encoding
off	Turn off FEC
RS	Force RS-FEC encoding
BaseR	Force BaseR encoding
LLRS	Force LLRS-FEC encoding