📄 ixf6048d.h
字号:
/* Configure num of consecutive, identical J0 strings to be
See: reg J0_RSTC bit 3 */
typedef enum
{
ixf6048_eJ0_STABLE_AFTER_3 = 0, /* J0 stable after 3 consecutive strings */
ixf6048_eJ0_STABLE_AFTER_5 /* J0 stable after 5 consecutive strings */
} ixf6048_J0StableNum_e;
/* Configure Expected J0 format
-- Maps to Register Bits
-- Also Used for Expected J1 Format in HPT section
See: Reg J0_RSTC bits 2:0*/
typedef enum
{
ixf6048_eRX_Jn_64_WITH_LF_CR =0x7, /* 64 bytes with LF,CR at end */
ixf6048_eRX_Jn_64_FREE_FORM =0x6, /* 64 bytes, free form */
ixf6048_eRX_Jn_16_WITH_CRC7 =0x4, /* 16 bytes, starting with CRC7 (SDH) */
ixf6048_eIGNORE_RX_Jn =0x2, /* Ignore J0 */
ixf6048_eRX_Jn_1_BYTE =0x0 /* 1 byte */
} ixf6048_RxJnFormat_e;
typedef struct /* Rx Regenerator Section Termination Configuration */
{
ixf6048_RxRstScrmblCnfg_e RxRstScrmblCnfg;
ixf6048_RxRstFBaDsbl_e RxRstFBaDsbl;
ixf6048_RstRcvFwdCnfg_e RxRstRcvFwdOffCnfg;
ixf6048_RstRcvFwdCnfg_e RxRstRcvFwdOnCnfg;
ixf6048_B1CntrCfg_e B1CntrCfg;
ixf6048_RxRstLos_e RxRstLos;
ixf6048_BlueClkOnLosLoc_e BlueClkOnLosLoc;
ixf6048_RxRstAisOnLof_e RxRstAisOnLof;
ixf6048_RxRstAisOnLos_e RxRstAisOnLos;
ixf6048_RxRstAisOnLoc_e RxRstAisOnLoc;
ixf6048_RxRstAisOnJ0_e RxRstAisOnJ0;
ixf6048_RxRstLocFiltering_e RxRstLocFiltering;
ixf6048_NdfFrameAcqCfg_e NdfFrameAcqCfg;
ixf6048_RcvOofCnfg_e RcvOofCnfg; /* Reg LOF_LMN */
ixf6048_LofStateMachineParms_t LofStateMachineParms;
ixf6048_J0Crc7Mismatch_e J0Crc7Mismatch;
ixf6048_J0UnstableMismatch_e J0UnstableMismatch;
ixf6048_J0StableNum_e J0StableNum;
ixf6048_RxJnFormat_e ExpectedJ0Format;
uchar* pExpectedJ0String;
/* -> Expected J0 string, if used.
Driver appends LF,CR or prepends dummy
byte for CRC7, if appropriate */
} ixf6048_RxRstCfg_t;
/***********************************************************************
* Rx Multiplexer Section Termination Configuration - Pg 208 on
**********************************************************************/
/* B2 Excessive Error Configuration: Regs (1cc)B0H - (1cc)0xB5
Registers: WINSZ_SB2, CWIN_SB2, E_EXCWIN_SB2, WINSZ_C2, CWIN_CB2, E_NEXCWIN_CB2 */
typedef struct
{
struct ixf6048_SetExcB2_t/* Parms for Setting Excessive B2 Error Condition */
{
ushort WindowSize; /* (8 to 2**14) = (8-16384)
Number of frames per window;
Driver quantizes to (8,16,24 .. 2**14) */
uchar NumExcessiveErrs;
/* (1 to 2**12 - 1) = (1-4095)
Number of errors/window to have window considered
as excessively errored */
uchar NumExcessiveWindows;
/* (0, or 1 to 2**7 - 1) = (0, or 1-127)
Number consecutive excessively errored windows
to set Excessively Errored Condition */
/* NOTE: if Excessively Errored Condition not set
and NumExcessiveWindows = 0, then
Excessively Errored Condition never set */
} Set;
struct ixf6048_ClrExcB2_t/* Parms for Clearing Excessive B2 Error Condition*/
{
ushort WindowSize; /* (8 to 2**14) = (8-16384)
Number of frames per window;
Driver quantizes to (8,16,24 .. 2**14) */
uchar NumNonexcessiveErrs;
/* (1 to 2**12 - 1) = (1-4095)
Number of errors/window to have window considered
as non-excessively errored */
uchar NumNonexcessiveWindows;
/* (1 to 2**7 - 1) = (1-127)
Number consecutive non-excessively errored
windows to clear Excessively Errored Condition */
} Clear;
} ixf6048_B2ExcErrCfg_t;
/* B2 (Degraded Signal Defect) Error Configuration (1cc)B7H - (1cc)0xBD
Registers: WINSZ_SDEGB2, CWIN_SDEGB2, E_DEGWIN_SB2,
WINSZ_CDEGB2, CWIN_CDEGB2, E_NDEGWIN_CB2 */
typedef struct
{ /* Parms for Setting Degraded B2 Error Condition */
struct ixf6048_SetDegB2_t
{
ulong WindowSize; /* (8 to 2**14) = (8-16384)
Number of frames per window;
Driver quantizes to (8,16,24 .. 2**14) */
uchar NumDegradedErrs;
/* (1 to 2**12 - 1) = (1-4095)
Number of errors/window to have window considered
as degraded */
uchar NumDegradedWindows;
/* (0, or 1 to 2**7 - 1) = (0, or 1-127)
Number consecutive degraded windows
to set Degraded Errored Condition */
/* NOTE: if Degraded Errored Condition not set
and NumDegradedWindows = 0, then
Degraded Error Condition never set */
} Set;
/* Parms for Clearing Degraded B2 Error Condition*/
struct ixf6048_ClrDegB2_t
{
ulong WindowSize; /* (8 to 2**14) = (8-16384)
Number of frames per window;
Driver quantizes to (8,16,24 .. 2**14) */
uchar NumNondegradedErrs;
/* (1 to 2**12 - 1) = (1-4095)
Number of errors/window to have window considered
as not degraded */
uchar NumNondegradedWindows;
/* (1 to 2**7 - 1) = (1-127)
Number consecutive non-degraded windows to clear
Degraded Errored Condition */
} Clear;
} ixf6048_B2DegErrCfg_t;
/* K1,K2 Filtering: Combined or separately - R_MST_C bit 13 */
typedef enum
{
ixf6048_eK1K2_SEPARATE=0, /* Filter K1 & K2 bytes separately */
ixf6048_eK1K2_COMBINED /* Filter K1 & K2 bytes as unit */
} ixf6048_K1K2Filtering_e;
typedef enum /* K2 RDI Filtering for MST AIS: 3 or 5 consecutive frames,
with value of '111', to set (or different, to clear)
R_MST_C bit 10 */
{
ixf6048_eK2_AIS_DETECT_IN_3_FRAMES = 0,
ixf6048_eK2_AIS_DETECT_IN_5_FRAMES
} ixf6048_K2AisDetect_e;
typedef enum /* K2 RDI Filtering for MST RDI: 3,5,10,16 consecutive frames,
with value of '110', to set (or different, to clear)
R_MST_C 9:8 */
{
ixf6048_eK2_RDI_DETECT_IN_3_FRAMES = 0,
ixf6048_eK2_RDI_DETECT_IN_5_FRAMES,
ixf6048_eK2_RDI_DETECT_IN_10_FRAMES,
ixf6048_eK2_RDI_DETECT_IN_16_FRAMES
} ixf6048_K2RdiDetect_e;
typedef enum /* Enable/Disable AIS generation from MST to MSA
and generation of Signal Fail (SF) on Excessive B2 Error
R_MST_C bit 7 */
{
ixf6048_eENABLE_AIS_TO_MSA_ON_EXC_B2_ERR = 1, /* Enable AIS and Signal Fail
on Exc B2 Err */
ixf6048_eDISABLE_AIS_TO_MSA_ON_EXC_B2_ERR /* Disable AIS and Signal Fail
on Exc B2 Err*/
} ixf6048_AisToMsaOnExcB2Err_e;
typedef enum /* Enable/Disable automatic AIS generation from MST to MSA,
R_MST_C bit 5 */
{
ixf6048_eDISABLE_AIS_TO_MSA=0, /* Disable AIS from MST to MSA */
ixf6048_eENABLE_AIS_TO_MSA /* Enable AIS from MST to MSA */
} ixf6048_AisToMsa_e;
typedef enum /* Config generated MST REI (based on B2 BIP errs) to be
inserted into Tx M1 byte as BIP or Block errs
(for STM-4c/STS-12c or STM-16c/STS-48c formats)
R_MST_C bit 4 */
{
ixf6048_eTX_REI_BIP_ERRS = 0, /* MST REI as Bit err */
ixf6048_eTX_REI_BLK_ERRS /* MST REI as Block err */
} ixf6048_TxReiBipBlk_e;
typedef enum /* Config Rx MST REI as tracking BIP or Block errs
(for STM-4c/STS-12c or STM-16c/STS-48c formats)
R_MST_C bit 3 */
{
ixf6048_eRX_REI_BIP_ERRS=0, /* MST REI as Bit err */
ixf6048_eRX_REI_BLK_ERRS /* MST REI as Block err */
} ixf6048_RxReiBipBlk_e;
typedef enum /* Enable/Disable MST RDI generation (i.e. Tx K2[2:0] = '110')
on Excessive B2 Error. R_MST_C bit 2 */
{
ixf6048_eDISABLE_MST_RDI_ON_EXC_B2_ERR=0, /* Disable MST RDI on Exc B2 Err*/
ixf6048_eENABLE_MST_RDI_ON_EXC_B2_ERR /* Enable MST RDI on Exc B2 Err */
} ixf6048_MstRdiOnExcB2Err_e;
typedef enum /* Config block size of a concatenated frame,
for Rx B2 detected errored blocks, and
for Tx REI Generated errored block - R_MST_C bit 0 */
{
ixf6048_eSINGLE_BLK_PER_CONCAT_FRAME=0,
ixf6048_eMULT_2430_BYTE_BLKS_PER_FRAME
} ixf6048_BlksPerConcatFrame_e;
typedef struct /* Rx MST Configuration structure */
{
ixf6048_B2ExcErrCfg_t B2ExcErrCfg;
ixf6048_B2DegErrCfg_t B2DegErrCfg;
ixf6048_K1K2Filtering_e K1K2Filtering; /* Bit13 */
ixf6048_K2AisDetect_e K2AisDetect; /* Bit10 */
ixf6048_K2RdiDetect_e K2RdiDetect; /* Bits[9:8] */
ixf6048_AisToMsaOnExcB2Err_e AisToMsaOnExcB2Err; /* Bit7 */
ixf6048_AisToMsa_e AisToMsa; /* Bit5 */
ixf6048_TxReiBipBlk_e TxReiBipBlk; /* Bit4 */
ixf6048_RxReiBipBlk_e RxReiBipBlk; /* Bit3 */
ixf6048_MstRdiOnExcB2Err_e MstRdiOnExcB2Err; /* Bit2 */
ixf6048_BlksPerConcatFrame_e BlksPerConcatFrame; /* Bit0 */
} ixf6048_RxMstCfg_t;
/***********************************************************************
* Rx Multiplexer Section Adaptation Configuration - Reg R_MSA_C
**********************************************************************/
/* Enable/Disable use of AuAisc detection
R_MSA_C bit 9 */
typedef enum
{
ixf6048_eAU_AISC_DETECTION_DISABLE=0,
ixf6048_eAU_AISC_DETECTION_ENABLE
} ixf6048_UseAuAiscDetection_e;
/* Enable/Disable HP-RDI generation during LOPC
R_MSA_C bit 8 */
typedef enum
{
ixf6048_eHP_RDI_GEN_DURING_LOPC_DISABLE=0,
ixf6048_eHP_RDI_GEN_DURING_LOPC_ENABLE
} ixf6048_LopcOnServerDefect_e;
/* Enable/Disable AIS generation during LOPC
R_MSA_C bit 7 */
typedef enum
{
ixf6048_eAIS_GEN_DURING_LOPC_DISABLE=0,
ixf6048_eAIS_GEN_DURING_LOPC_ENABLE
} ixf6048_LopcOnMsaAis_e;
/* Enable/Disable Config Det of concatenation indication for H1/H2 Pairs
R_MSA_C bit 6 */
typedef enum
{
ixf6048_eVERIFY_CONCAT_PTR_ON_ALL_H1H2_PAIRS = 0,
ixf6048_eVERIFY_CONCAT_PTR_ON_SOME_H1H2_PAIRS
} ixf6048_ConcPtDetCnfg_e;
/* Use SONET or SDH AU Pointer justification rules
R_MSA_C bit 5 */
typedef enum
{
ixf6048_eUSE_SONET_AU_PTRS = 0,
ixf6048_eUSE_SDH_AU_PTRS
} ixf6048_UseSonetSdhAuPtrs_e;
/* Normal Operation / Force AIS generation from MSA to HPT, when
See R_MSA_C bit 5 */
typedef enum
{
ixf6048_eNORMAL_AIS_TO_HPT=0,
ixf6048_eFORCE_AIS_TO_HPT
}ixf6048_RcvHptAisFrc_e;
/* Enable/Disable AIS generation from MSA to HPT, when
AU AIS (H1:H2 = All 1's) or
LOP (Invalid Pointer Value, Or
SS bits != 'ss' And AU Ptr SS bits enabled)
(where ss = ExpectedAuPtrSsBits, below)
See R_MSA_C bit 2 */
typedef enum
{
ixf6048_eDISABLE_AIS_TO_HPT=0,
ixf6048_eENABLE_AIS_TO_HPT
} ixf6048_AisToHpt_e;
/* Use/Ignore AU pointer SS bits - R_MSA_C bit 0 */
typedef enum
{
ixf6048_eIGNORE_AU_PTR_SS_BITS=0,
ixf6048_eUSE_AU_PTR_SS_BITS
} ixf6048_UseAuPtrSsBits_e;
/* Configuration for the R_MSA_C Register */
typedef struct /* Rx Multiplexer Section Adaptation Config */
{
ixf6048_UseAuAiscDetection_e UseAuAiscDetection; /* Bit9 */
ixf6048_LopcOnServerDefect_e LopcOnServerDefect; /* Bit8 */
ixf6048_LopcOnMsaAis_e LopcOnMsaAis; /* Bit7 */
ixf6048_ConcPtDetCnfg_e ConcPtDetCnfg_e; /* Bit6 */
ixf6048_UseSonetSdhAuPtrs_e UseSonetSdhAuPtrs; /* Bit5 */
ixf6048_AisToHpt_e AisToHpt; /* Bit2 */
ixf6048_UseAuPtrSsBits_e UseAuPtrSsBits; /* Bit1 */
uchar ExpectedAuPtrSsBits; /* if SS bits used
See R_MSA_C 4:3 */
} ixf6048_RxMsaCfg_t;
/***********************************************************************
*
* Rx High Order Path Termination Configuration -
* Regs: R_HPT_C1, R_HPT_C2
**********************************************************************/
/* Enable/Disable AIS Generation from HPT to HPA on alarm
R_HPT_C2 bits 4,3,2 */
typedef enum
{
ixf6048_eDISABLE_AIS_TO_HPA=0,
ixf6048_eENABLE_AIS_TO_HPA
} ixf6048_AisToHpa_e;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -