13 Forward error correction
13.3 Upstream FEC
13.3.1 Upstream transmission with FEC structure
13.3.1.1 Parity bytes
When constructing the US transmission with FEC, the FEC parity bytes are inserted at the end of every codeword. When using RS(255,239), every 239 data bytes are followed with 16 parity bytes.
The delimiter and preamble fields of the PLOu section of the ONU OH are not included in the first codeword, i.e., the codeword begins with the BIP byte.
Figure 13-5 – US transmission with FEC parity bytes insertion
All allocations on a particular ONU will have the same FEC status. Contiguous allocations will be encoded as a single block of data, and have only one shortened last codeword. The start pointers cannot point to parity byte locations. As a consequence, the stop pointers cannot point to the first 15 parity byte locations or the last data byte before a parity byte location. These restrictions are illustrated in Figure 13-6.
Figure 13-6 – Pointer restrictions in the case of contiguous allocations with FEC
If, with upstream FEC enabled, the OLT violates the pointer restrictions, the ONU's behaviour is undefined.
As long as FEC is enabled in US transmission, the size of a non-contiguous allocation as well as the size of the last allocation in a group of contiguous allocations must be at least 18 bytes. The minimum allocation accommodates a DBRu-only transmission along with 16 parity bytes.
If the ONU receives a FEC-enabled allocation and, given the need to insert 16 parity bytes, finds its size insufficient to accommodate the minimal-size GEM frame transmission or the items requested via the Flags field (PLOAMu and DBRu), then the ONU may optionally ignore the allocation or try to assist the OLT in graceful recovery by sending an all-zero-octets sequence of the allocated size. Note that the FEC encoding processing step is applied before scrambling.
13.3.1.2 Shorter last codeword
The original transmission is divided into 239 bytes codewords. In most cases, less than 239 bytes will be left for the last codeword. The following describes the last codeword mechanism:
• In order that the number of bytes in the last codeword will be equal to 239, extra 'zero' bytes ('0' pad bytes) are added before the encoder, at the beginning of the last codeword. • The parity bytes are calculated.
• The extra bytes are removed and the shorter codeword is transmitted. • The transmission is received at the OLT.
• The extra 'zero' bytes are reinserted before the decoder, at the beginning of the last codeword. Since the transmission size is known to the OLT in advance, it can easily calculate the number of those 'zero' bytes.
• Following the decoding process, the extra bytes are once again removed.
Decoded
window: ONU OH BytesData Data Bytes Data Bytes
Data
Bytes Data Bytes Data Bytes
ONU OH Data
Bytes Output
Window
Data
Bytes Data Bytes
Parit y Data Bytes Parit y ONU OH Parit y Parit y Window before Decoder Data
Bytes Data Bytes
Parit y Data Bytes Parit y ONU OH Parit y Parit y Encoded Window: Window before Encoder Data
Bytes Data Bytes Data Bytes ONU OH
Data
Bytes Data Bytes Data Bytes
ONU OH Data Bytes Original Window: Data Bytes '0' Pad '0' Pad Data Bytes '0' Pad Data Bytes Data Bytes '0' Pad OLT RX Data
Bytes Data Bytes
Parit y Data Bytes Parit y ONU OH Parit y Data Bytes Parit y TxONT Window: Data
Bytes Data Bytes
Parit y Data Bytes Parit y ONU OH Parit y Data Bytes Parit y Rx Window at OLT ONU TX
Figure 13-7 – US transmission with FEC structure
Note that if less than 17 bytes are available for the last codeword, then all-zeroes should be sent. G.984.3_F13-7
13.3.1.3 ONU transmission size
The transmission size, defined in the US BWmap in the PCBd part of the downstream frame, is based on the encoded transmission without the '0' pad bytes. The OLT should take the usage of FEC into account in the calculation of the bandwidth map, and strive to allocate an integral number of FEC blocks for those ONUs that are utilizing FEC.
13.3.2 FEC codeword synchronization
13.3.2.1 Transmission synchronization
The preamble and delimiter fields in PLOu section of the ONU upstream burst are used for upstream transmission synchronization. These fields are not changed during the FEC encoding process, i.e., received unchanged at the OLT. Therefore, the OLT can continue using the preamble and delimiter for transmission synchronization.
Since all codewords are arranged sequentially in the transmission, no synchronization is needed over the codewords. Once transmission synchronization is achieved, the exact location of each codeword is known, and codeword synchronization is achieved (255 bytes per codeword).
13.3.2.2 Delimiter errors
Due to high BER, the probability for receiving errors in the delimiter is high. To achieve robust burst delineation in the presence of errors, the delimiter should be represented by a large enough bit-pattern with optimal autocorrelation properties. According to the model presented in Appendix I of [ITU-T G.984.2], a 20-bit delimiter can tolerate up to four errored bits.
13.3.3 US FEC on/off
13.3.3.1 US FEC indication bit
The upstream FEC function of the ONU can be activated/deactivated by the OpS system via the OLT. An in-band indication bit is used by the ONU to notify the OLT of a change in the FEC status.
The OLT sets the desired ONU FEC encoding status (on/off) using the Use_FEC bit in the Flags field. Note that all allocations in any ONU must use the same FEC status. The ONU should act immediately on the Use_FEC bit.
The FEC indication bit acts as follows:
• '0' – Off. No FEC in US transmission.
• '1' – On. US transmission contains parity bytes.
The indication bit serves as a confirmation that the ONU has complied with the Use_FEC request.
13.3.3.2 US FEC on/off detection behaviour at OLT
The OLT knows a priori the FEC status of the upstream burst since it controls this via the Flags field. Hence, if FEC is requested, the OLT should then expect FEC to be included in the upstream transmission. The content of the FEC indication bit is a piece of auxiliary information that can be used to confirm the FEC status of the ONU.