📄 skgepnmi.c
字号:
unsigned int TableIndex, SK_U32 NetIndex);static SK_U8 CalculateLinkModeStatus(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex);static SK_U8 CalculateLinkStatus(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex);static void CopyMac(char *pDst, SK_MAC_ADDR *pMac);static void CopyTrapQueue(SK_AC *pAC, char *pDstBuf);static int CsumStat(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int General(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static SK_U64 GetPhysStatVal(SK_AC *pAC, SK_IOC IoC, unsigned int PhysPortIndex, unsigned int StatIndex);static SK_U64 GetStatVal(SK_AC *pAC, SK_IOC IoC, unsigned int LogPortIndex, unsigned int StatIndex, SK_U32 NetIndex);static char* GetTrapEntry(SK_AC *pAC, SK_U32 TrapId, unsigned int Size);static void GetTrapQueueLen(SK_AC *pAC, unsigned int *pLen, unsigned int *pEntries);static int GetVpdKeyArr(SK_AC *pAC, SK_IOC IoC, char *pKeyArr, unsigned int KeyArrLen, unsigned int *pKeyNo);static int LookupId(SK_U32 Id);static int Mac8023Stat(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int MacPrivateConf(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int MacPrivateStat(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int MacUpdate(SK_AC *pAC, SK_IOC IoC, unsigned int FirstMac, unsigned int LastMac);static int Monitor(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int OidStruct(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int Perform(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int* pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int PnmiStruct(SK_AC *pAC, SK_IOC IoC, int Action, char *pBuf, unsigned int *pLen, SK_U32 NetIndex);static int PnmiVar(SK_AC *pAC, SK_IOC IoC, int Action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, SK_U32 NetIndex);static void QueueRlmtNewMacTrap(SK_AC *pAC, unsigned int ActiveMac);static void QueueRlmtPortTrap(SK_AC *pAC, SK_U32 TrapId, unsigned int PortIndex);static void QueueSensorTrap(SK_AC *pAC, SK_U32 TrapId, unsigned int SensorIndex);static void QueueSimpleTrap(SK_AC *pAC, SK_U32 TrapId);static void ResetCounter(SK_AC *pAC, SK_IOC IoC, SK_U32 NetIndex);static int Rlmt(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int RlmtStat(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int RlmtUpdate(SK_AC *pAC, SK_IOC IoC, SK_U32 NetIndex);static int SensorStat(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);static int SirqUpdate(SK_AC *pAC, SK_IOC IoC);static void VirtualConf(SK_AC *pAC, SK_IOC IoC, SK_U32 Id, char *pBuf);static int Vpd(SK_AC *pAC, SK_IOC IoC, int action, SK_U32 Id, char *pBuf, unsigned int *pLen, SK_U32 Instance, unsigned int TableIndex, SK_U32 NetIndex);/****************************************************************************** * * Global variables *//* * Table to correlate OID with handler function and index to * hardware register stored in StatAddress if applicable. */static const SK_PNMI_TAB_ENTRY IdTable[] = { {OID_GEN_XMIT_OK, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX}, {OID_GEN_RCV_OK, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX}, {OID_GEN_XMIT_ERROR, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_RCV_ERROR, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_RCV_NO_BUFFER, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_GEN_DIRECTED_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_UNICAST}, {OID_GEN_MULTICAST_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_MULTICAST}, {OID_GEN_BROADCAST_FRAMES_XMIT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_BROADCAST}, {OID_GEN_DIRECTED_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_UNICAST}, {OID_GEN_MULTICAST_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_MULTICAST}, {OID_GEN_BROADCAST_FRAMES_RCV, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_BROADCAST}, {OID_GEN_RCV_CRC_ERROR, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_FCS}, {OID_GEN_TRANSMIT_QUEUE_LENGTH, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_802_3_PERMANENT_ADDRESS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, 0}, {OID_802_3_CURRENT_ADDRESS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, 0}, {OID_802_3_RCV_ERROR_ALIGNMENT, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_FRAMING}, {OID_802_3_XMIT_ONE_COLLISION, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_SINGLE_COL}, {OID_802_3_XMIT_MORE_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_MULTI_COL}, {OID_802_3_XMIT_DEFERRED, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_DEFFERAL}, {OID_802_3_XMIT_MAX_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_EXCESS_COL}, {OID_802_3_RCV_OVERRUN, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HRX_OVERFLOW}, {OID_802_3_XMIT_UNDERRUN, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_UNDERRUN}, {OID_802_3_XMIT_TIMES_CRS_LOST, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_CARRIER}, {OID_802_3_XMIT_LATE_COLLISIONS, 0, 0, 0, SK_PNMI_RO, Mac8023Stat, SK_PNMI_HTX_LATE_COL}, {OID_SKGE_MDB_VERSION, 1, 0, SK_PNMI_MAI_OFF(MgmtDBVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_SUPPORTED_LIST, 0, 0, 0, SK_PNMI_RO, General, 0}, {OID_SKGE_ALL_DATA, 0, 0, 0, SK_PNMI_RW, OidStruct, 0}, {OID_SKGE_VPD_FREE_BYTES, 1, 0, SK_PNMI_MAI_OFF(VpdFreeBytes), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ENTRIES_LIST, 1, 0, SK_PNMI_MAI_OFF(VpdEntriesList), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ENTRIES_NUMBER, 1, 0, SK_PNMI_MAI_OFF(VpdEntriesNumber), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_KEY, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdKey), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_VALUE, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdValue), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ACCESS, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdAccess), SK_PNMI_RO, Vpd, 0}, {OID_SKGE_VPD_ACTION, SK_PNMI_VPD_ENTRIES, sizeof(SK_PNMI_VPD), SK_PNMI_OFF(Vpd) + SK_PNMI_VPD_OFF(VpdAction), SK_PNMI_RW, Vpd, 0}, {OID_SKGE_PORT_NUMBER, 1, 0, SK_PNMI_MAI_OFF(PortNumber), SK_PNMI_RO, General, 0}, {OID_SKGE_DEVICE_TYPE, 1, 0, SK_PNMI_MAI_OFF(DeviceType), SK_PNMI_RO, General, 0}, {OID_SKGE_DRIVER_DESCR, 1, 0, SK_PNMI_MAI_OFF(DriverDescr), SK_PNMI_RO, General, 0}, {OID_SKGE_DRIVER_VERSION, 1, 0, SK_PNMI_MAI_OFF(DriverVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_HW_DESCR, 1, 0, SK_PNMI_MAI_OFF(HwDescr), SK_PNMI_RO, General, 0}, {OID_SKGE_HW_VERSION, 1, 0, SK_PNMI_MAI_OFF(HwVersion), SK_PNMI_RO, General, 0}, {OID_SKGE_CHIPSET, 1, 0, SK_PNMI_MAI_OFF(Chipset), SK_PNMI_RO, General, 0}, {OID_SKGE_ACTION, 1, 0, SK_PNMI_MAI_OFF(Action), SK_PNMI_RW, Perform, 0}, {OID_SKGE_RESULT, 1, 0, SK_PNMI_MAI_OFF(TestResult), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_TYPE, 1, 0, SK_PNMI_MAI_OFF(BusType), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_SPEED, 1, 0, SK_PNMI_MAI_OFF(BusSpeed), SK_PNMI_RO, General, 0}, {OID_SKGE_BUS_WIDTH, 1, 0, SK_PNMI_MAI_OFF(BusWidth), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_SW_QUEUE_LEN, 1, 0, SK_PNMI_MAI_OFF(TxSwQueueLen), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_SW_QUEUE_MAX, 1, 0, SK_PNMI_MAI_OFF(TxSwQueueMax), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_RETRY, 1, 0, SK_PNMI_MAI_OFF(TxRetryCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_INTR_CTS, 1, 0, SK_PNMI_MAI_OFF(RxIntrCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_INTR_CTS, 1, 0, SK_PNMI_MAI_OFF(TxIntrCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_NO_BUF_CTS, 1, 0, SK_PNMI_MAI_OFF(RxNoBufCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_NO_BUF_CTS, 1, 0, SK_PNMI_MAI_OFF(TxNoBufCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_USED_DESCR_NO, 1, 0, SK_PNMI_MAI_OFF(TxUsedDescrNo), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_DELIVERED_CTS, 1, 0, SK_PNMI_MAI_OFF(RxDeliveredCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_OCTETS_DELIV_CTS, 1, 0, SK_PNMI_MAI_OFF(RxOctetsDeliveredCts), SK_PNMI_RO, General, 0}, {OID_SKGE_RX_HW_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(RxHwErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_TX_HW_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(TxHwErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_IN_ERRORS_CTS, 1, 0, SK_PNMI_MAI_OFF(InErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_OUT_ERROR_CTS, 1, 0, SK_PNMI_MAI_OFF(OutErrorsCts), SK_PNMI_RO, General, 0}, {OID_SKGE_ERR_RECOVERY_CTS, 1, 0, SK_PNMI_MAI_OFF(ErrRecoveryCts), SK_PNMI_RO, General, 0}, {OID_SKGE_SYSUPTIME, 1, 0, SK_PNMI_MAI_OFF(SysUpTime), SK_PNMI_RO, General, 0}, {OID_SKGE_SENSOR_NUMBER, 1, 0, SK_PNMI_MAI_OFF(SensorNumber), SK_PNMI_RO, General, 0}, {OID_SKGE_SENSOR_INDEX, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorIndex), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_DESCR, SK_PNMI_SENSOR_ENTRIES, sizeof(SK_PNMI_SENSOR), SK_PNMI_OFF(Sensor) + SK_PNMI_SEN_OFF(SensorDescr), SK_PNMI_RO, SensorStat, 0}, {OID_SKGE_SENSOR_TYPE,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -