⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dstatm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 3 页
字号:
		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.Jabbers - data->BaseStat.Jabbers;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}#ifdef REALLY_IFMIB_SPECIFICWORD DnpapEtherStatsInPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	MAC_STAT stat;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_VALID)		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.inPkts - data->BaseStat.inPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsInErrors(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	MAC_STAT stat;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_VALID)		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.inErrors - data->BaseStat.inErrors;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsOutPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	MAC_STAT stat;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_VALID)		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.outPkts - data->BaseStat.outPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsOutErrors(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	MAC_STAT stat;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_VALID)		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.outErrors - data->BaseStat.outErrors;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}#endifWORD DnpapEtherStatsCollisions(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	MAC_STAT stat;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_VALID)		{			Obj->Syntax.LngUns = 0UL;			return SNMP_NOERROR;		}		MacStatistics(data->Iface, &stat);		Obj->Syntax.LngUns = stat.Collisions - data->BaseStat.Collisions;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts64(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts64Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts65to127(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts65to127Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts128to255(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts128to255Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts256to511(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts256to511Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts512to1023(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts512to1023Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsPkts1024to1518(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->Pkts1024to1518Octets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsUtilInterval(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngUns = data->UtilInterval;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		if (Obj->Syntax.LngUns < 1)			return SNMP_BADVALUE;		data->UtilInterval = Obj->Syntax.LngUns;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsUtilization(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngInt = data->Utilization;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsIFTBuckets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	ULONG *buckets1, *buckets2;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngInt = data->IFTBuckets;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		if (Obj->Syntax.LngInt < 1)			return SNMP_BADVALUE;		if ((buckets1 = ReNewBuckets(data->IFTArrayPkts, Obj->Syntax.LngInt)) == NULL)			return SNMP_BADVALUE;		if ((buckets2 = ReNewBuckets(data->IFTArrayOctets, Obj->Syntax.LngInt)) == NULL)			return SNMP_BADVALUE;		data->IFTBuckets = Obj->Syntax.LngInt;		data->IFTArrayPkts = buckets1;		data->IFTArrayOctets = buckets2;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsIFTSize(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngInt = data->IFTSize;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		if (Obj->Syntax.LngInt < 1)			return SNMP_BADVALUE;		data->IFTSize = Obj->Syntax.LngInt;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsLengthBuckets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	ULONG *buckets1, *buckets2;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, INDEXSIZE, NULL) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		data = (DNPAP_ETHER_STATS *) local->Data;		Obj->Syntax.LngInt = data->LengthBuckets;		return SNMP_NOERROR;	case SNMP_PDU_SET:		data = (DNPAP_ETHER_STATS *) local->Data;		if (data->Status != SNMP_UNDERCREATION)			return SNMP_READONLY;		if (Obj->Syntax.LngInt < 1 || Obj->Syntax.LngInt > MAC_FRAME_ETHERNET_CSMACD)			return SNMP_BADVALUE;		if ((buckets1 = ReNewBuckets(data->LengthArrayPkts, Obj->Syntax.LngInt)) == NULL)			return SNMP_BADVALUE;		if ((buckets2 = ReNewBuckets(data->LengthArrayOctets, Obj->Syntax.LngInt)) == NULL)			return SNMP_BADVALUE;		data->LengthBuckets = Obj->Syntax.LngInt;		data->LengthSize = ceil(((FLOAT) MAC_FRAME_ETHERNET_CSMACD) / Obj->Syntax.LngInt);		data->LengthArrayPkts = buckets1;		data->LengthArrayOctets = buckets2;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DnpapEtherStatsLengthSize(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DNPAP_ETHER_STATS *data;	INT buckets;	ULONG *buckets1, *buckets2;	if ((local = MibRmon(Obj, etherStats, IdLen, INDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -