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, you get double correction, and that actually introduces errors instead of fixing them.

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

Both ends of the link must use the same FEC setting. A mismatch (one side enabled, the other disabled) will keep the link down. This is the single most common misconfiguration we see.

FEC configuration by transceiver type

TypeForm FactorModulationBuilt-in FEC?ReachFEC on hostIEEE Standard
100G FR1QSFP28, SFP-DDPAM4Yes2 kmDisabled802.3cd
100G DR1QSFP28PAM4Yes500 mDisabled802.3cd
100G LR1QSFP28, SFP-DDPAM4Yes10 kmDisabled802.3cd
100G ER1QSFP28PAM4Yes40 kmDisabled802.3cd
100G CWDM4QSFP28NRZ (4x25G)No2 kmEnabled802.3bm
100G ER4QSFP28NRZ (4x25G)No40 kmEnabled802.3ba
100G ZR4QSFP28NRZ (4x25G)No80 kmEnabledOIF
100G ZR+QSFP28NRZ (4x25G)No120+ kmEnabledProprietary

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 signal gets corrected twice — and that second pass actually introduces errors instead of fixing them. 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