FEC Error Injection

Control

Start/stop FEC error injection

Corresponding low-level API class: PL1_CWE_CONTROL`

await port.l1.fec_error_inject.control.set(action=enums.StartOrStop.START)
await port.l1.fec_error_inject.control.set_start()
await port.l1.fec_error_inject.control.set(action=enums.StartOrStop.STOP)
await port.l1.fec_error_inject.control.set_stop()

resp = await port.l1.fec_error_inject.control.get()
resp.action

Cycle Configuration

Configure the FEC codeword error injection cycle.

Corresponding low-level API class: PL1_CWE_CYCLE

await port.l1.fec_error_inject.cycle.set(loop=0, cycle_len=8, error_len=4)
await port.l1.fec_error_inject.cycle.set(loop=1, cycle_len=8, error_len=4)
await port.l1.fec_error_inject.cycle.set(loop=100, cycle_len=8, error_len=4)

resp = await port.l1.fec_error_inject.cycle.get()
resp.loop
resp.cycle_len
resp.error_len

Errored Symbols Per Codeword Configuration

Configure the positions of the errored symbols in errored codewords.

Corresponding low-level API class: PL1_CWE_ERR_SYM_INDICES

await port.l1.fec_error_inject.err_symbols.set(error_sym_indices=[543, 542, 541, 50, 44, 76, 88])

resp = await port.l1.fec_error_inject.err_symbols.get()
resp.error_sym_indices

Bit Error Mask Configuration

Configure the bit error mask for the errored symbols.

Corresponding low-level API class: PL1_CWE_BIT_ERR_MASK

await port.l1.fec_error_inject.bit_err_mask.set(mode=enums.FecCodewordBitErrorMaskMode.STATIC, bitmask=Hex("000F"))
await port.l1.fec_error_inject.bit_err_mask.set(mode=enums.FecCodewordBitErrorMaskMode.ROTATE_HIGH, bitmask=Hex("000F"))
await port.l1.fec_error_inject.bit_err_mask.set(mode=enums.FecCodewordBitErrorMaskMode.INC, bitmask=Hex("000F"))
await port.l1.fec_error_inject.bit_err_mask.set_all_bits()
await port.l1.fec_error_inject.bit_err_mask.set_no_bits()

resp = await port.l1.fec_error_inject.bit_err_mask.get()
resp.mode
resp.bitmask

FEC Engine Configuration

Configure which FEC engines to use.

Corresponding low-level API class: PL1_CWE_FEC_ENGINE

await port.l1.fec_error_inject.engine.set(bitmask=Hex("0F"))
await port.l1.fec_error_inject.engine.set_all_engines()

resp = await port.l1.fec_error_inject.engine.get()
resp.engine_bitmask

Error Injection Statistics

FEC error injection statistics.

Corresponding low-level API class: PL1_CWE_FEC_STATS

resp = await port.l1.fec_error_inject.statistics.get()
resp.total_cw
resp.total_correctable_cw
resp.total_uncorrectable_cw
resp.total_error_free_cw
resp.total_symbol_error

Clear Error Injection Statistics

Clear FEC codeword injection TX stats.

Corresponding low-level API class: PL1_CWE_FEC_STATS_CLEAR

await port.l1.fec_error_inject.clear_stats.set()