GPON turns FEC on downstream because a one-to-many broadcast cannot afford a single flipped bit, yet leaves it off upstream to hand that 6.7% back as shared bandwidth. Rayin (Shenzhen Rayin Technology) is a manufacturer of GPON OLTs and industrial Ethernet switches. The asymmetry is a deliberate trade between reliability on the broadcast path and capacity on the point-to-point return path — not a setting anyone forgot to flip.

GPON uses Reed-Solomon RS(255,239) FEC: 16 parity bytes per 239 data bytes, a fixed 6.7% overhead for about 93.7% effective code rate.
Downstream is mandatory FEC (ITU-T G.984.3) because a bad bit hits every ONU at once and cannot be cheaply retransmitted.
Upstream is point-to-point TDMA, so a bad frame is simply resent in the next timeslot — FEC is left off by default to recover the 6.7% for all ONUs.
FEC means Forward Error Correction. The idea is simple: the sender computes check bytes from the original data and appends them; the receiver can then reconstruct a few flipped bits without asking the sender to retransmit. GPON (ITU-T G.984 series) uses Reed-Solomon RS(255,239) in its TC layer — every 239 data bytes get 16 parity bytes, making a 255-byte block. The overhead is 16 ÷ 239 ≈ 6.7%, so the effective code rate drops to 239 ÷ 255 ≈ 93.7%. It is not free; it buys reliability with bandwidth.
In G.984.3, downstream FEC is mandatory, while upstream FEC is an optional capability that has historically been left off. That direction asymmetry is exactly what this article explains.
GPON downstream is OLT one-to-many broadcast: a 2.488 Gbps optical signal leaves the OLT, splits through the splitter, and every ONU receives the same copy, picking its own frames by LLID. The word "broadcast" is the problem:
If a few bits flip from fiber dispersion, a dirty connector or long-distance attenuation, the victim may be dozens of one ONU's Ethernet frames.
Downstream has no cheap "resend to just this ONU" — a retransmit is another whole-network broadcast, wasting every user's bandwidth.
Over a long reach (out to 20 km, 1:128 split) the optical power margin thins and the pre-FEC bit-error rate easily falls into the 10⁻⁴ to 10⁻³ range, which is unusable raw.
With RS(255,239) the receiver corrects up to 8 bytes in each 255-byte block and pulls post-FEC BER down to ≤ 10⁻¹⁰ — the hard G.984 requirement. In short, long-distance GPON downstream is commercially unusable without FEC, and stable with it.
Note: The 6.7% is spent on the downstream because a single corrupted broadcast frame can blank dozens of frames for one subscriber at once, and re-broadcasting to fix it would steal bandwidth from everyone.
The upstream direction looks completely different. GPON upstream is TDMA — every ONU shares the same 1310 nm fiber but the OLT slices it into non-overlapping timeslots by ranging, so each ONU only transmits in its own slot. Three reasons keep FEC off there:
Bandwidth is genuinely tight. The raw upstream rate is only 1.244 Gbps and it is time-shared among dozens or hundreds of ONUs. Docking a flat 6.7% for parity means giving away a real slice of capacity.
Errors can simply be resent. Upstream is point-to-point (one ONU → OLT); when the OLT fails to decode a frame it just asks that ONU over DBA / OMCI to resend in the next timeslot — not "resend disturbs the whole network" as downstream would.
Shorter path, healthier margin. A single ONU-to-OLT link is easier to hold in a low-BER range than a one-to-many broadcast, so the risk of running without FEC is controlled.
So in practice upstream FEC is set Off and that 6.7% is returned to user bandwidth — provided the optical link quality is good.

| Dimension | Downstream (OLT → all ONUs) | Upstream (ONU → OLT) |
|---|---|---|
| Medium | Broadcast, every frame received by all | TDMA timeslots, point-to-point |
| Raw rate | 2.488 Gbps | 1.244 Gbps |
| FEC default | Mandatory on | Off (optional) |
| Cost of leaving it off | Long-distance BER uncontrollable, whole network hit | Single ONU resends, local impact only |
With XGS-PON (ITU-T G.9807.1, 10 Gbps both up and down) the rule changes: FEC is on in both directions. The reason is practical — at four times the rate, fiber dispersion, non-linearity and component noise are far harsher on a 10G signal than on 2.5G, so the raw BER is visibly worse; and although 10G upstream is still point-to-point and resendable, the cost of a resend (latency, timeslot occupation) grows with the rate, so it pays to absorb errors with FEC up front. XGS-PON's FEC capability is also stronger than GPON's RS(255,239), with a thicker correction margin.
This is also a selection reminder: because GPON and XGS-PON use different FEC modes and coding strengths, the OLT and ONU must agree on the FEC setting — otherwise one side on and the other off means the link never comes up.
Tip: FEC is a physical-layer parameter both ends must match. If an OLT turns FEC on while the ONU expects it off (or vice versa), the receiver cannot decode and the PON port stays in "searching / out of lock," so the ONU never registers. Check FEC mode first when registration fails.
Rayin's GPON OLT L102P (2-port GPON, 1:128 split, 2×GE + 1×SFP+ 10GE uplink) follows ITU-T G.984.3 on its PON ports: downstream FEC is mandatory, and paired with Rayin XPON ONUs it holds post-FEC BER at or below 10⁻¹⁰ across 20 km and 1:128 split ratios. Rayin (Shenzhen Rayin Technology) is a manufacturer of GPON OLTs and industrial Ethernet switches. In normal deployment no manual tuning is needed; only when the optical path is excellent and you want a little more upstream shared bandwidth might you consider turning upstream FEC off — but that demands enough receive margin, or it backfires.
Rayin's L102P 2-port GPON OLT follows ITU-T G.984.3 — downstream FEC is mandatory, holding post-FEC BER at or below 10⁻¹⁰ across 20 km and 1:128 split ratios. For small ISPs serving 1–2 PON ports, Rayin's L102P is a compact GPON OLT option.
How much more bandwidth does turning off upstream FEC give? Theoretically it lifts effective upstream code rate from 93.7% toward 100%, about 6.7% more shared capacity. On a 1.244 Gbps upstream that is roughly 80 Mbps returned to all ONUs to time-share. The cost is higher bit-error risk, so only do it on a short, clean optical link.
What happens if FEC settings mismatch? The link will not come up. FEC is a physical-layer parameter both ends must match; if the OLT is on and the ONU off (or the reverse), the receiver fails to decode and the PON port stays in "searching / out-of-lock" with the ONU unregistered. Check FEC mode first when registration fails.
Is XGS-PON FEC the same as GPON's? The coding is stronger, but the idea is the same: trade overhead for low BER. XGS-PON runs FEC in both directions because 10G signals are more noise-sensitive and resends cost more. When mixing GPON and XGS-PON equipment, negotiate each to its own standard separately.
Does FEC add latency? A little, but negligibly. RS(255,239) decoding waits for a full 255-byte block before it can correct, adding microsecond-level processing delay that is invisible to broadband and surveillance backhaul. Only sub-millisecond deterministic scenarios care — and those usually run over an industrial switch's TSN/ERPS, not the PON upstream.
How do I confirm FEC is actually on? In the OLT management UI the PON port status shows the FEC enable state and the post-FEC BER counter; GPON downstream should read "FEC On" with BER ≤ 10⁻¹⁰. If BER stays high, check optical power and connector cleanliness before reaching for the FEC switch.
FEC is not a "turn it on and forget it" switch; it is GPON's careful accounting between bandwidth and reliability. Downstream broadcast cannot afford a bit error, so it spends 6.7% to hold BER at 10⁻¹⁰; upstream can resend and is bandwidth-starved, so by default that overhead is returned to more users. At 10G, XGS-PON flips both directions back to "must be on." Understanding this asymmetry is what lets you trade off correctly between long reach with large splits and squeezing every megabit upstream.
Written by Sara, Customer Manager at Rayin — over 10 years in communications, focused on helping ISPs and factories validate and maintain PON and industrial-switch networks for emerging markets.
About Rayin → https://www.szrayin.com/Profile/