Knowledge Base

When should FEC be enabled or disabled on 100G optics?

Posted March 6, 2026
inTechnical Questions
Edgeoptic Team

Symptoms

After inserting a 100G transceiver, you might see:

  • •Interface stuck in “down” or “err-disabled” state
  • •Link flapping repeatedly
  • •High CRC or FCS error counters
  • •Elevated bit error rate (BER)
  • •Packet loss on a link that shows “up”

Nine times out of ten, this is an FEC mismatch between the transceiver and the host device.

Background

Forward Error Correction (FEC) adds redundant data to a signal so the receiver can detect and fix bit errors without asking for retransmission. On 100G links, whether you enable FEC on the host depends on whether the transceiver already handles it internally.

Why some transceivers have built-in FEC

Single-lambda transceivers (FR1, DR1, LR1, ER1) push the full 100G over one wavelength using PAM4 modulation. PAM4 has four signal levels instead of two, which makes it noisier. To deal with that, these transceivers have a DSP with FEC baked in. If you also turn on host FEC, the host's extra encoding breaks the framing and lane alignment the module's DSP expects, which destabilizes the link rather than improving it, often showing up as climbing CRC/FCS counters and intermittent packet loss.

Multi-lambda transceivers (CWDM4, ER4, ZR4, ZR+) split 100G across four wavelengths at 25G each using NRZ modulation. NRZ is simpler, and these transceivers don’t have their own FEC. The host device has to provide it (typically RS-FEC).

The short version

Transceiver has built-in FEC → disable FEC on the host

Transceiver does not have built-in FEC → enable FEC on the host

FEC configuration by transceiver type

TypeForm FactorModulationBuilt-in FEC?ReachFEC on hostIEEE Standard
100G SR4QSFP28NRZ (4x25G)No100 mOptional802.3bm (Cl. 95)
100G FR1QSFP28, SFP-DDPAM4Yes2 kmDisabled802.3cu (Cl. 140)
100G DR1QSFP28PAM4Yes500 mDisabled802.3cu (Cl. 140)
100G LR1QSFP28, SFP-DDPAM4Yes10 kmDisabled802.3cu (Cl. 140)
100G LR4QSFP28NRZ (4x25G)No10 kmOptional (not needed at 10 km)802.3ba (Cl. 88)
100G ER1QSFP28PAM4Yes40 kmDisabled100G Lambda MSA (not IEEE)
100G CWDM4QSFP28NRZ (4x25G)No2 kmEnabledCWDM4 MSA (not IEEE)
100G ER4 LiteQSFP28NRZ (4x25G)No40 kmEnabledOEM (electrical/PCS per 802.3ba)
100G ZR4QSFP28NRZ (4x25G)No80 kmEnabledOEM vendor extension (not IEEE, not OIF)
100G ZR4+QSFP28NRZ (4x25G)No120+ kmEnabledProprietary
100G DCO ZRQSFP28DP-QPSKYes300 kmDisabledIEEE 802.3-2022 (802.3ct Cl. 154)
100G CWDM LRQSFP28PAM4Yes10 kmDisabled100G Lambda MSA (not IEEE)
100G CWDM ERQSFP28PAM4Yes40 kmDisabled100G Lambda MSA (not IEEE)
BIDI 100G LR1QSFP28PAM4Yes20 kmDisabled100G Lambda MSA (not an IEEE PMD)
BIDI 100G 4WDMQSFP28NRZ (4x25G)No20 kmEnabled4WDM MSA (not IEEE)
BIDI 100G SRBDQSFP28PAM4No150 mEnabledVendor/MSA (not IEEE)
BIDI 100G SR2.1QSFP28PAM4No150 mEnabledVendor/MSA (not IEEE)
BIDI 100G ER1QSFP28PAM4Yes30 kmDisabled100G Lambda MSA (not IEEE)

Note on ER4: the row above reflects EdgeOptic's QSFP28 ER4 Lite part (100G-QSFP28-40), which needs host FEC for its full 40 km reach. The IEEE 802.3ba Clause 88 ER4 baseline itself does not require FEC at 40 km; EdgeOptic's extended-reach 100G-QSFP28-42 only needs host FEC beyond that 40 km baseline.

Troubleshooting

ScenarioSymptomWhat’s happeningFix
Host FEC enabled on a transceiver with built-in FECLink is up but CRC/FCS errors climb, intermittent packet lossDouble error correction is corrupting dataDisable FEC on the host
Host FEC disabled on a transceiver without built-in FECLink won’t come up, or keeps flappingNothing is correcting errors on a link that needs itEnable FEC on the host
FEC mismatch between link endsLink stays down on both sidesOne side has FEC on, the other has it offMatch FEC settings on both ends

How to verify

  1. Figure out your transceiver type. Run show inventory or show interfaces transceiver on the device.
  2. Look it up in the table above.
  3. Check FEC status on both ends of the link, not just one.
  4. If you changed FEC, bounce the interface (shut / no shut). The change won’t take effect otherwise.

CLI examples by platform

Cisco NX-OS

! Enable FEC

interface Ethernet1/1
fec rs-fec

! Disable FEC

interface Ethernet1/1
no fec

Arista EOS

! Enable FEC

interface Ethernet1
error-correction encoding reed-solomon

! Disable FEC

interface Ethernet1
no error-correction encoding

Juniper Junos

# Enable FEC

set interfaces et-0/0/0 gigether-options fec fec91

# Disable FEC

set interfaces et-0/0/0 gigether-options fec none

SONiC

# Enable FEC

sudo config interface fec Ethernet0 rs

# Disable FEC

sudo config interface fec Ethernet0 none

Checking current FEC state

PlatformCommand
Cisco NX-OSshow interface Ethernet1/1 fec
Arista EOSshow interfaces Ethernet1 status
Juniper Junosshow interfaces et-0/0/0 extensive
SONiCshow interfaces status

FAQ:

What happens if FEC is enabled on both the host and the transceiver?

Transceivers like FR1, DR1, LR1, and ER1 already run FEC internally on their DSP. If you also turn on host FEC, the host's extra encoding breaks the framing and lane alignment the module's DSP expects, which destabilizes the link rather than correcting it. You'll see CRC/FCS counters climbing and intermittent packet loss, even though the link shows as up. Disable host FEC and the problem goes away.

Do both ends of the link need the same FEC setting?

Yes, always. If one end has FEC on and the other has it off, the link stays down. We see this constantly, someone swaps a transceiver, forgets to check the remote side, and spends hours troubleshooting what turns out to be a one-command fix. Check both ends first. It will save you time.

How do I know if my 100G transceiver has built-in FEC?

Look at the modulation. Single-lambda PAM4 optics (FR1, DR1, LR1, ER1) have a DSP that handles FEC internally, leave the host alone. Multi-lambda NRZ optics (CWDM4, ER4, ZR4, ZR+) split the signal across four 25G wavelengths and have no built-in correction, so the host needs to provide RS-FEC. If you're unsure, check the transceiver type with show inventory and match it against the table in this article.

Can't find right Answer?

Get in touch with our support team

Shop the Article

Products and categories featured in this article.

Category51 Products

100G QSFP28 Optical Transceivers

Welcome to our collection of 100G QSFP28 transceivers! The 100G QSFP28 optical transceiver are designed according to SFF-8665 standard which specifies QSFP+ 28 Gb/s 4X Pluggable Transceiver Solution (QSFP28) for 100 Gigabit Ethernet. 100G QSFP28 transceivers have the exact same footprint as it’s predecessor 40G QSFP+, but has variations where modules can have NRZ modulation (100G SR4, LR4, ER4, ZR4…) and there are some newer generation 100G QSFP28 Single Lambda modules (100G LR1, FR1, DR1) which use PAM4 modulation (more on PAM4 vs NRZ). We offer a wide range of optical modules tailored to diverse networking environments to cover all industry needs. Some of our most popular 100G modules are the 100G QSFP28 SR4 (PN: 100G-QSFP28-100) designed for short range (below 150m) Multi-Mode Fiber connections, 100G QSFP28 LR4 (PN: 100G-QSFP28-10) designed for long range (up to 10km) Single-Mode Fiber connections and 100G QSFP28 ER4 (PN:100G-QSFP28-40) designed for long range (up to 40km) Single-Mode Fiber connections. To help engineers find the correct units for their setup, we’ve sorted our 100G QSFP28 transceivers in the categories below based on their type and functionality. Not only do we offer a wide range of MSA compatible modules, but all of them can be re-programmed to be compatible with a wide range of devices. From industry-standard solutions to specialized modules, find the perfect fit for your network requirements.

View products