MX Foundation 4
MXF_A664_ERROR_INJ::error Struct Reference

#include <mxf_class_a664.h>

Data Fields

uint64 id
 
uint64 offset
 
uint64 mask
 
uint64 value
 

Field Documentation

MXF_A664_ERROR_INJ::error::id

The error ID defines one error condition rule to trigger. The error ID are related to the protocol stack layer where the error apply (PHY layer, MAC Layer VL layers...).

A client application is always implicitly running in a specific mode; in RAW mode no VL/COM ports are defined and physical port resources are referenced. Depending on the mode some error ID defined or not.

The lists below shows how to define an error condition. Some errors ID define completely an error to be injected (like the MAC_CRC32_ERROR) but most of them require to define the injection error value to be sent.

Raw Mode Errors ID:

Constant Description Value
MXF_A664_ERRORID_RAW_MAC_PREAMBLE_LENGTH_ERROR Inject Preamble Length Error. 0-15 bytes
MXF_A664_ERRORID_RAW_MAC_PREAMBLE_PATTERN_ERROR Inject Preamble Pattern Error. 0..7: Pattern 0x00-0xff (lsb). 8..15: offset 0-7, 0xff=all (msb). Note that the phy replaces the first byte (at 100Mbps) or the first two bytes (at 1000Mbps) by its own preamble, so they can't be changed.
MXF_A664_ERRORID_RAW_MAC_SFD_ERROR Inject SFD error. 0x00-0xff
MXF_A664_ERRORID_RAW_MAC_TRANSMISSION_ABORT Send halt symbols after x bytes. 0x000-0x5EE
MXF_A664_ERRORID_RAW_MAC_IFG_OVERRIDE Override default 96 bits (12 bytes) IFG that follows the transmission. 1-255 bytes
MXF_A664_ERRORID_RAW_MAC_NETID_OVERRIDE Override default Net ID. 0-3 (2 bits)
MXF_A664_ERRORID_RAW_MAC_CRC32_ERROR Inject MAC CRC error. Mutually exclusive with MXF_A664_ERRORID_RAW_MAC_NO_CRC32. If control bit MXF_A664_CTRL_TX_RAW_MAC_CRC32_INCLUDED is used, this error has no effect. No value (0). Sent value will be calculated crc+1
MXF_A664_ERRORID_RAW_MAC_NO_CRC32 Do not send MAC CRC (will transmit four bytes less). Mutually exclusive with MXF_A664_ERRORID_RAW_MAC_CRC32_ERROR. No value (0).
MXF_A664_ERRORID_RAW_IP_CHECKSUM_ERROR Inject IP Checksum error. No value (0). Sent value will be calculated checksum+1
MXF_A664_ERRORID_RAW_PORT_JITTER_DELAY Add Tx delay to port after scheduling. Offset 0-65535 (usec)


VL Mode Error ID:

Constant Description Value
MXF_A664_ERRORID_VL_MAC_PREAMBLE_LENGTH_ERROR Inject Preamble Length Error. 0-15 bytes
MXF_A664_ERRORID_VL_MAC_PREAMBLE_PATTERN_ERROR Inject Preamble Pattern Error. 0..7: Pattern 0x00-0xff (lsb). 8..15: offset 0-7, 0xff=all (msb). Note that the phy replaces the first byte (at 100Mbps) or the first two bytes (at 1000Mbps) by its own preamble, so they can't be changed.
MXF_A664_ERRORID_VL_MAC_SFD_ERROR Inject SFD error. 0x00-0xff
MXF_A664_ERRORID_VL_MAC_TRANSMISSION_ABORT Send halt symbols after x bytes. 0x000-0x5EE
MXF_A664_ERRORID_VL_MAC_IFG_OVERRIDE Override default 96 bits (12 bytes) IFG that follows the transmission. 1-255 bytes
MXF_A664_ERRORID_VL_MAC_NETID_OVERRIDE Override default Net ID. 0-3 (2 bits)
MXF_A664_ERRORID_VL_MAC_SN_OFFSET Add this offset to the current MAC SN, but continue with original value afterward. 0-255
MXF_A664_ERRORID_VL_MAC_SN_OVERRIDE Send this value for MAC SN, but continue with original value afterward. 0-255
MXF_A664_ERRORID_VL_MAC_SN_NO_SEND Do not send MAC SN (will transmit one byte less). No value (0).
MXF_A664_ERRORID_VL_MAC_CRC32_ERROR Inject MAC CRC error. Mutually exclusive with MXF_A664_ERRORID_VL_MAC_NO_CRC32. No value (0). Sent value will be calculated crc+1
MXF_A664_ERRORID_VL_MAC_NO_CRC32 Do not send MAC CRC (will transmit four bytes less). Mutually exclusive with MXF_A664_ERRORID_VL_MAC_CRC32_ERROR. No value (0).
MXF_A664_ERRORID_VL_IP_CHECKSUM_ERROR Inject IP Checksum error. No value (0). Sent value will be calculated checksum+1
MXF_A664_ERRORID_VL_EDE_SID_OVERRIDE Override EDE SID for CRC X & Y computation. 32-bit
MXF_A664_ERRORID_VL_EDE_SN_OFFSET Add this offset to the current EDE SN, but continue with original value afterward. 0-65535
MXF_A664_ERRORID_VL_EDE_SN_OVERRIDE Send this value for EDE SN, but continue with original value afterward. 0-65535
MXF_A664_ERRORID_VL_EDE_TIMESTAMP_OFFSET Add this offset to the EDE timestamp. -32768 to 32767 (usec)
MXF_A664_ERRORID_VL_EDE_TIMESTAMP_OVERRIDE Override the EDE timestamp with the value at offset 2 bytes of datarec array data. Must be used in conjuction with MXF_A664_TX_REC_CTRL_EDE_HEADER_INCLUDED bit in datarec control. No value (0).
MXF_A664_ERRORID_VL_EDE_CRCX_ERROR Inject EDE CRCX error. No value (0). Sent value will be calculated crc+1
MXF_A664_ERRORID_VL_EDE_CRCY_ERROR Inject EDE CRCY error. No value (0). Sent value will be calculated crc+1
MXF_A664_ERRORID_VL_PORT_JITTER_DELAY Add Tx delay to port after scheduling. Offset 0-65535 (usec)
MXF_A664_ERRORID_VL_PORT_OVERRIDE Override net selection. MXF_A664_NETSELECT_A, MXF_A664_NETSELECT_B or MXF_A664_NETSELECT_ALL
MXF_A664_ERRORID_VL_FRAME_MASK_OR OR value at offset with mask offset: 0-8192. mask: 8-bit
MXF_A664_ERRORID_VL_FRAME_MASK_AND AND value at offset with mask offset: 0-8192. mask: 8-bit
MXF_A664_ERRORID_VL_FRAME_MASK_SET Override value at offset with value offset: 0-8192. value: 8-bit
MXF_A664_ERRORID_VL_MAC_DESTINATION_ADDRESS_OVERRIDE Override the MAC destination address value: 0-0xffffffffffff
Examples:
ar664_error_injection_detection.c, and ar664_error_injection_detection_ede.c.
MXF_A664_ERROR_INJ::error::offset

Offset to use for MXF_A664_ERRORID_VL_FRAME_MASK_OR, MXF_A664_ERRORID_VL_FRAME_MASK_AND and MXF_A664_ERRORID_VL_FRAME_MASK_SET error id.

Examples:
ar664_error_injection_detection.c.
MXF_A664_ERROR_INJ::error::mask

Mask to use for MXF_A664_ERRORID_VL_FRAME_MASK_OR or MXF_A664_ERRORID_VL_FRAME_MASK_AND error id.

Examples:
ar664_error_injection_detection.c.
MXF_A664_ERROR_INJ::error::value

Can be set or not depending on the error ID.

Updated 10/23/2023