📄 skgepnmi.h
字号:
#define OID_SKGE_RLMT_MONITOR_NUMBER 0xFF010150#define OID_SKGE_RLMT_MONITOR_INDEX 0xFF010151#define OID_SKGE_RLMT_MONITOR_ADDR 0xFF010152#define OID_SKGE_RLMT_MONITOR_ERRS 0xFF010153#define OID_SKGE_RLMT_MONITOR_TIMESTAMP 0xFF010154#define OID_SKGE_RLMT_MONITOR_ADMIN 0xFF010155#define OID_SKGE_TX_SW_QUEUE_LEN 0xFF020170#define OID_SKGE_TX_SW_QUEUE_MAX 0xFF020171#define OID_SKGE_TX_RETRY 0xFF020172#define OID_SKGE_RX_INTR_CTS 0xFF020173#define OID_SKGE_TX_INTR_CTS 0xFF020174#define OID_SKGE_RX_NO_BUF_CTS 0xFF020175#define OID_SKGE_TX_NO_BUF_CTS 0xFF020176#define OID_SKGE_TX_USED_DESCR_NO 0xFF020177#define OID_SKGE_RX_DELIVERED_CTS 0xFF020178#define OID_SKGE_RX_OCTETS_DELIV_CTS 0xFF020179#define OID_SKGE_RX_HW_ERROR_CTS 0xFF02017A#define OID_SKGE_TX_HW_ERROR_CTS 0xFF02017B#define OID_SKGE_IN_ERRORS_CTS 0xFF02017C#define OID_SKGE_OUT_ERROR_CTS 0xFF02017D#define OID_SKGE_ERR_RECOVERY_CTS 0xFF02017E#define OID_SKGE_SYSUPTIME 0xFF02017F#define OID_SKGE_ALL_DATA 0xFF020190/* Defines for VCT. */#define OID_SKGE_VCT_GET 0xFF020200#define OID_SKGE_VCT_SET 0xFF020201#define OID_SKGE_VCT_STATUS 0xFF020202#ifdef SK_DIAG_SUPPORT/* Defines for driver DIAG mode. */#define OID_SKGE_DIAG_MODE 0xFF020204#endif /* SK_DIAG_SUPPORT *//* New OIDs */#define OID_SKGE_DRIVER_RELDATE 0xFF020210#define OID_SKGE_DRIVER_FILENAME 0xFF020211#define OID_SKGE_CHIPID 0xFF020212#define OID_SKGE_RAMSIZE 0xFF020213#define OID_SKGE_VAUXAVAIL 0xFF020214#define OID_SKGE_PHY_TYPE 0xFF020215#define OID_SKGE_PHY_LP_MODE 0xFF020216/* VCT struct to store a backup copy of VCT data after a port reset. */typedef struct s_PnmiVct { SK_U8 VctStatus; SK_U8 PCableLen; SK_U32 PMdiPairLen[4]; SK_U8 PMdiPairSts[4];} SK_PNMI_VCT;/* VCT status values (to be given to CPA via OID_SKGE_VCT_STATUS). */#define SK_PNMI_VCT_NONE 0#define SK_PNMI_VCT_OLD_VCT_DATA 1#define SK_PNMI_VCT_NEW_VCT_DATA 2#define SK_PNMI_VCT_OLD_DSP_DATA 4#define SK_PNMI_VCT_NEW_DSP_DATA 8#define SK_PNMI_VCT_RUNNING 16/* VCT cable test status. */#define SK_PNMI_VCT_NORMAL_CABLE 0#define SK_PNMI_VCT_SHORT_CABLE 1#define SK_PNMI_VCT_OPEN_CABLE 2#define SK_PNMI_VCT_TEST_FAIL 3#define SK_PNMI_VCT_IMPEDANCE_MISMATCH 4#define OID_SKGE_TRAP_SEN_WAR_LOW 500#define OID_SKGE_TRAP_SEN_WAR_UPP 501#define OID_SKGE_TRAP_SEN_ERR_LOW 502#define OID_SKGE_TRAP_SEN_ERR_UPP 503#define OID_SKGE_TRAP_RLMT_CHANGE_THRES 520#define OID_SKGE_TRAP_RLMT_CHANGE_PORT 521#define OID_SKGE_TRAP_RLMT_PORT_DOWN 522#define OID_SKGE_TRAP_RLMT_PORT_UP 523#define OID_SKGE_TRAP_RLMT_SEGMENTATION 524#ifdef SK_DIAG_SUPPORT/* Defines for driver DIAG mode. */#define SK_DIAG_ATTACHED 2#define SK_DIAG_RUNNING 1#define SK_DIAG_IDLE 0#endif /* SK_DIAG_SUPPORT *//* * Generic PNMI IOCTL subcommand definitions. */#define SK_GET_SINGLE_VAR 1#define SK_SET_SINGLE_VAR 2#define SK_PRESET_SINGLE_VAR 3#define SK_GET_FULL_MIB 4#define SK_SET_FULL_MIB 5#define SK_PRESET_FULL_MIB 6/* * Define error numbers and messages for syslog */#define SK_PNMI_ERR001 (SK_ERRBASE_PNMI + 1)#define SK_PNMI_ERR001MSG "SkPnmiGetStruct: Unknown OID"#define SK_PNMI_ERR002 (SK_ERRBASE_PNMI + 2)#define SK_PNMI_ERR002MSG "SkPnmiGetStruct: Cannot read VPD keys"#define SK_PNMI_ERR003 (SK_ERRBASE_PNMI + 3)#define SK_PNMI_ERR003MSG "OidStruct: Called with wrong OID"#define SK_PNMI_ERR004 (SK_ERRBASE_PNMI + 4)#define SK_PNMI_ERR004MSG "OidStruct: Called with wrong action"#define SK_PNMI_ERR005 (SK_ERRBASE_PNMI + 5)#define SK_PNMI_ERR005MSG "Perform: Cannot reset driver"#define SK_PNMI_ERR006 (SK_ERRBASE_PNMI + 6)#define SK_PNMI_ERR006MSG "Perform: Unknown OID action command"#define SK_PNMI_ERR007 (SK_ERRBASE_PNMI + 7)#define SK_PNMI_ERR007MSG "General: Driver description not initialized"#define SK_PNMI_ERR008 (SK_ERRBASE_PNMI + 8)#define SK_PNMI_ERR008MSG "Addr: Tried to get unknown OID"#define SK_PNMI_ERR009 (SK_ERRBASE_PNMI + 9)#define SK_PNMI_ERR009MSG "Addr: Unknown OID"#define SK_PNMI_ERR010 (SK_ERRBASE_PNMI + 10)#define SK_PNMI_ERR010MSG "CsumStat: Unknown OID"#define SK_PNMI_ERR011 (SK_ERRBASE_PNMI + 11)#define SK_PNMI_ERR011MSG "SensorStat: Sensor descr string too long"#define SK_PNMI_ERR012 (SK_ERRBASE_PNMI + 12)#define SK_PNMI_ERR012MSG "SensorStat: Unknown OID"#define SK_PNMI_ERR013 (SK_ERRBASE_PNMI + 13)#define SK_PNMI_ERR013MSG ""#define SK_PNMI_ERR014 (SK_ERRBASE_PNMI + 14)#define SK_PNMI_ERR014MSG "Vpd: Cannot read VPD keys"#define SK_PNMI_ERR015 (SK_ERRBASE_PNMI + 15)#define SK_PNMI_ERR015MSG "Vpd: Internal array for VPD keys to small"#define SK_PNMI_ERR016 (SK_ERRBASE_PNMI + 16)#define SK_PNMI_ERR016MSG "Vpd: Key string too long"#define SK_PNMI_ERR017 (SK_ERRBASE_PNMI + 17)#define SK_PNMI_ERR017MSG "Vpd: Invalid VPD status pointer"#define SK_PNMI_ERR018 (SK_ERRBASE_PNMI + 18)#define SK_PNMI_ERR018MSG "Vpd: VPD data not valid"#define SK_PNMI_ERR019 (SK_ERRBASE_PNMI + 19)#define SK_PNMI_ERR019MSG "Vpd: VPD entries list string too long"#define SK_PNMI_ERR021 (SK_ERRBASE_PNMI + 21)#define SK_PNMI_ERR021MSG "Vpd: VPD data string too long"#define SK_PNMI_ERR022 (SK_ERRBASE_PNMI + 22)#define SK_PNMI_ERR022MSG "Vpd: VPD data string too long should be errored before"#define SK_PNMI_ERR023 (SK_ERRBASE_PNMI + 23)#define SK_PNMI_ERR023MSG "Vpd: Unknown OID in get action"#define SK_PNMI_ERR024 (SK_ERRBASE_PNMI + 24)#define SK_PNMI_ERR024MSG "Vpd: Unknown OID in preset/set action"#define SK_PNMI_ERR025 (SK_ERRBASE_PNMI + 25)#define SK_PNMI_ERR025MSG "Vpd: Cannot write VPD after modify entry"#define SK_PNMI_ERR026 (SK_ERRBASE_PNMI + 26)#define SK_PNMI_ERR026MSG "Vpd: Cannot update VPD"#define SK_PNMI_ERR027 (SK_ERRBASE_PNMI + 27)#define SK_PNMI_ERR027MSG "Vpd: Cannot delete VPD entry"#define SK_PNMI_ERR028 (SK_ERRBASE_PNMI + 28)#define SK_PNMI_ERR028MSG "Vpd: Cannot update VPD after delete entry"#define SK_PNMI_ERR029 (SK_ERRBASE_PNMI + 29)#define SK_PNMI_ERR029MSG "General: Driver description string too long"#define SK_PNMI_ERR030 (SK_ERRBASE_PNMI + 30)#define SK_PNMI_ERR030MSG "General: Driver version not initialized"#define SK_PNMI_ERR031 (SK_ERRBASE_PNMI + 31)#define SK_PNMI_ERR031MSG "General: Driver version string too long"#define SK_PNMI_ERR032 (SK_ERRBASE_PNMI + 32)#define SK_PNMI_ERR032MSG "General: Cannot read VPD Name for HW descr"#define SK_PNMI_ERR033 (SK_ERRBASE_PNMI + 33)#define SK_PNMI_ERR033MSG "General: HW description string too long"#define SK_PNMI_ERR034 (SK_ERRBASE_PNMI + 34)#define SK_PNMI_ERR034MSG "General: Unknown OID"#define SK_PNMI_ERR035 (SK_ERRBASE_PNMI + 35)#define SK_PNMI_ERR035MSG "Rlmt: Unknown OID"#define SK_PNMI_ERR036 (SK_ERRBASE_PNMI + 36)#define SK_PNMI_ERR036MSG ""#define SK_PNMI_ERR037 (SK_ERRBASE_PNMI + 37)#define SK_PNMI_ERR037MSG "Rlmt: SK_RLMT_MODE_CHANGE event return not 0"#define SK_PNMI_ERR038 (SK_ERRBASE_PNMI + 38)#define SK_PNMI_ERR038MSG "Rlmt: SK_RLMT_PREFPORT_CHANGE event return not 0"#define SK_PNMI_ERR039 (SK_ERRBASE_PNMI + 39)#define SK_PNMI_ERR039MSG "RlmtStat: Unknown OID"#define SK_PNMI_ERR040 (SK_ERRBASE_PNMI + 40)#define SK_PNMI_ERR040MSG "PowerManagement: Unknown OID"#define SK_PNMI_ERR041 (SK_ERRBASE_PNMI + 41)#define SK_PNMI_ERR041MSG "MacPrivateConf: Unknown OID"#define SK_PNMI_ERR042 (SK_ERRBASE_PNMI + 42)#define SK_PNMI_ERR042MSG "MacPrivateConf: SK_HWEV_SET_ROLE returned not 0"#define SK_PNMI_ERR043 (SK_ERRBASE_PNMI + 43)#define SK_PNMI_ERR043MSG "MacPrivateConf: SK_HWEV_SET_LMODE returned not 0"#define SK_PNMI_ERR044 (SK_ERRBASE_PNMI + 44)#define SK_PNMI_ERR044MSG "MacPrivateConf: SK_HWEV_SET_FLOWMODE returned not 0"#define SK_PNMI_ERR045 (SK_ERRBASE_PNMI + 45)#define SK_PNMI_ERR045MSG "MacPrivateConf: SK_HWEV_SET_SPEED returned not 0"#define SK_PNMI_ERR046 (SK_ERRBASE_PNMI + 46)#define SK_PNMI_ERR046MSG "Monitor: Unknown OID"#define SK_PNMI_ERR047 (SK_ERRBASE_PNMI + 47)#define SK_PNMI_ERR047MSG "SirqUpdate: Event function returns not 0"#define SK_PNMI_ERR048 (SK_ERRBASE_PNMI + 48)#define SK_PNMI_ERR048MSG "RlmtUpdate: Event function returns not 0"#define SK_PNMI_ERR049 (SK_ERRBASE_PNMI + 49)#define SK_PNMI_ERR049MSG "SkPnmiInit: Invalid size of 'CounterOffset' struct!!"#define SK_PNMI_ERR050 (SK_ERRBASE_PNMI + 50)#define SK_PNMI_ERR050MSG "SkPnmiInit: Invalid size of 'StatAddr' table!!"#define SK_PNMI_ERR051 (SK_ERRBASE_PNMI + 51)#define SK_PNMI_ERR051MSG "SkPnmiEvent: Port switch suspicious"#define SK_PNMI_ERR052 (SK_ERRBASE_PNMI + 52)#define SK_PNMI_ERR052MSG ""#define SK_PNMI_ERR053 (SK_ERRBASE_PNMI + 53)#define SK_PNMI_ERR053MSG "General: Driver release date not initialized"#define SK_PNMI_ERR054 (SK_ERRBASE_PNMI + 54)#define SK_PNMI_ERR054MSG "General: Driver release date string too long"#define SK_PNMI_ERR055 (SK_ERRBASE_PNMI + 55)#define SK_PNMI_ERR055MSG "General: Driver file name not initialized"#define SK_PNMI_ERR056 (SK_ERRBASE_PNMI + 56)#define SK_PNMI_ERR056MSG "General: Driver file name string too long"/* * Management counter macros called by the driver */#define SK_PNMI_SET_DRIVER_DESCR(pAC,v) ((pAC)->Pnmi.pDriverDescription = \ (char *)(v))#define SK_PNMI_SET_DRIVER_VER(pAC,v) ((pAC)->Pnmi.pDriverVersion = \ (char *)(v))#define SK_PNMI_SET_DRIVER_RELDATE(pAC,v) ((pAC)->Pnmi.pDriverReleaseDate = \ (char *)(v))#define SK_PNMI_SET_DRIVER_FILENAME(pAC,v) ((pAC)->Pnmi.pDriverFileName = \ (char *)(v))#define SK_PNMI_CNT_TX_QUEUE_LEN(pAC,v,p) \ { \ (pAC)->Pnmi.Port[p].TxSwQueueLen = (SK_U64)(v); \ if ((pAC)->Pnmi.Port[p].TxSwQueueLen > (pAC)->Pnmi.Port[p].TxSwQueueMax) { \ (pAC)->Pnmi.Port[p].TxSwQueueMax = (pAC)->Pnmi.Port[p].TxSwQueueLen; \ } \ }#define SK_PNMI_CNT_TX_RETRY(pAC,p) (((pAC)->Pnmi.Port[p].TxRetryCts)++)#define SK_PNMI_CNT_RX_INTR(pAC,p) (((pAC)->Pnmi.Port[p].RxIntrCts)++)#define SK_PNMI_CNT_TX_INTR(pAC,p) (((pAC)->Pnmi.Port[p].TxIntrCts)++)#define SK_PNMI_CNT_NO_RX_BUF(pAC,p) (((pAC)->Pnmi.Port[p].RxNoBufCts)++)#define SK_PNMI_CNT_NO_TX_BUF(pAC,p) (((pAC)->Pnmi.Port[p].TxNoBufCts)++)#define SK_PNMI_CNT_USED_TX_DESCR(pAC,v,p) \ ((pAC)->Pnmi.Port[p].TxUsedDescrNo=(SK_U64)(v));#define SK_PNMI_CNT_RX_OCTETS_DELIVERED(pAC,v,p) \ { \ ((pAC)->Pnmi.Port[p].RxDeliveredCts)++; \ (pAC)->Pnmi.Port[p].RxOctetsDeliveredCts += (SK_U64)(v); \ }#define SK_PNMI_CNT_ERR_RECOVERY(pAC,p) (((pAC)->Pnmi.Port[p].ErrRecoveryCts)++);#define SK_PNMI_CNT_SYNC_OCTETS(pAC,p,v) \ { \ if ((p) < SK_MAX_MACS) { \ ((pAC)->Pnmi.Port[p].StatSyncCts)++; \ (pAC)->Pnmi.Port[p].StatSyncOctetsCts += (SK_U64)(v); \ } \ }#define SK_PNMI_CNT_RX_LONGFRAMES(pAC,p) \ { \ if ((p) < SK_MAX_MACS) { \ ((pAC)->Pnmi.Port[p].StatRxLongFrameCts++); \ } \ }#define SK_PNMI_CNT_RX_FRAMETOOLONG(pAC,p) \ { \ if ((p) < SK_MAX_MACS) { \ ((pAC)->Pnmi.Port[p].StatRxFrameTooLongCts++); \ } \ }#define SK_PNMI_CNT_RX_PMACC_ERR(pAC,p) \ { \ if ((p) < SK_MAX_MACS) { \ ((pAC)->Pnmi.Port[p].StatRxPMaccErr++); \ } \ }/* * Conversion Macros */#define SK_PNMI_PORT_INST2LOG(i) ((unsigned int)(i) - 1)#define SK_PNMI_PORT_LOG2INST(l) ((unsigned int)(l) + 1)#define SK_PNMI_PORT_PHYS2LOG(p) ((unsigned int)(p) + 1)#define SK_PNMI_PORT_LOG2PHYS(pAC,l) ((unsigned int)(l) - 1)#define SK_PNMI_PORT_PHYS2INST(pAC,p) \ (pAC->Pnmi.DualNetActiveFlag ? 2 : ((unsigned int)(p) + 2))#define SK_PNMI_PORT_INST2PHYS(pAC,i) ((unsigned int)(i) - 2)/* * Structure definition for SkPnmiGetStruct and SkPnmiSetStruct */#define SK_PNMI_VPD_KEY_SIZE 5#define SK_PNMI_VPD_BUFSIZE (VPD_SIZE)#define SK_PNMI_VPD_ENTRIES (VPD_SIZE / 4)#define SK_PNMI_VPD_DATALEN 128 /* Number of data bytes */#define SK_PNMI_MULTICAST_LISTLEN 64#define SK_PNMI_SENSOR_ENTRIES (SK_MAX_SENSORS)#define SK_PNMI_CHECKSUM_ENTRIES 3#define SK_PNMI_MAC_ENTRIES (SK_MAX_MACS + 1)#define SK_PNMI_MONITOR_ENTRIES 20#define SK_PNMI_TRAP_ENTRIES 10#define SK_PNMI_TRAPLEN 128#define SK_PNMI_STRINGLEN1 80#define SK_PNMI_STRINGLEN2 25#define SK_PNMI_TRAP_QUEUE_LEN 512typedef struct s_PnmiVpd { char VpdKey[SK_PNMI_VPD_KEY_SIZE]; char VpdValue[SK_PNMI_VPD_DATALEN]; SK_U8 VpdAccess; SK_U8 VpdAction;} SK_PNMI_VPD;typedef struct s_PnmiSensor { SK_U8 SensorIndex; char SensorDescr[SK_PNMI_STRINGLEN2]; SK_U8 SensorType; SK_U32 SensorValue; SK_U32 SensorWarningThresholdLow; SK_U32 SensorWarningThresholdHigh; SK_U32 SensorErrorThresholdLow;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -