dstatm.c

来自「嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络」· C语言 代码 · 共 1,330 行 · 第 1/3 页

C
1,330
字号
		{			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 + =
减小字号Ctrl + -
显示快捷键?