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

📄 snmp_ol100cr.c

📁 在freescale 的ne64上开发的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortFlowC:    /* 9, Table Object OCTET STRING, read-write */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortFlowCtrl(port,&temp_u08);
				temp = temp_u08;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				if(port ==1)
				{
					gSnmpFlowCtrlFlag1 =1;
					bSnmpFlowCtrl1= (UINT8)Int32Get(vbp);
				}
				else
				{
					gSnmpFlowCtrlFlag2 =1;
					bSnmpFlowCtrl2= (UINT8)Int32Get(vbp);
				}
				//hwSetPortFlowCtrl(port,(UINT8)Int32Get(vbp));
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortTxRateLmt:    /* 10, Table Object OCTET STRING, read-write */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortRate(port,1,&temp_u16);
				temp = temp_u16;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				hwSetPortRate(port,1,(UINT16)Int32Get(vbp));
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortBcastLmt:    /* 11, Table Object OCTET STRING, read-write */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortStorm(port,&type,&temp_u16);
				temp = temp_u16;
				if(type==0)
					Int32Set(vbp,temp);
				else
					Int32Set(vbp,0);
				break;
			case SET_REQUEST_PDU:
				hwSetPortStorm(port,0,(UINT16)Int32Get(vbp));
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortMBcastLmt:    /* 12, Table Object OCTET STRING, read-write */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortStorm(port,&type,&temp_u16);
				temp = temp_u16;
				if(type==1)
					Int32Set(vbp,temp);
				else
					Int32Set(vbp,0);
				break;
			case SET_REQUEST_PDU:
				hwSetPortStorm(port,1,(UINT16)Int32Get(vbp));
				break;
			}
			break;
		}

		
	}
	return(NO_ERROR);
}

/**********************************************************************************
* ValidateIndex_ol100crLocPortInfoEntry - validate the index of ol100crLocPortInfoEntry.
***********************************************************************************/
_INT16 ValidateIndex_ol100crLocPortInfoEntry(_UINT8 request,VB_T *vbp)
{
	
	return NO_ERROR;
}
/**********************************************************************************
* GetNextIndex_ol100crLocPortInfoEntry - Get the next index of ol100crLocPortInfoEntry.
***********************************************************************************/
_INT16 GetNextIndex_ol100crLocPortInfoEntry(VB_T *vbp)
{
	if(vbp->vb_obj_id.num_components<=vbp->defined_prefix_len)
	{
		/*get the first index*/
		vbp->pIndex[0]=1;
		vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
		return NO_ERROR;
	}
	else
	{
		/*get the next index*/
		if(vbp->pIndex[0]>=2)
		{
			(*(vbp->pLeafId))++;
			vbp->pIndex[0]=1;
			return NO_ERROR;
		}
		vbp->pIndex[0]++;
		vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
		return NO_ERROR;
	}
	return GEN_ERR;
}
/**********************************************************************************
* ol100crLocPortInfoEntry_Handler - This routine handles the objects of ol100crLocPortInfoEntry.
***********************************************************************************/
_INT16 ol100crLocPortInfoEntry_Handler(_UINT8 request,void *ptr)
{
	VB_T *vbp=(VB_T *)ptr;
	_UINT8 port;
	
	if(request==GET_NEXT_REQUEST_PDU)
	{		
		if(GetNextIndex_ol100crLocPortInfoEntry(vbp)!=NO_ERROR)
			return GEN_ERR;
	}	
	if(ValidateIndex_ol100crLocPortInfoEntry(request,vbp)!=NO_ERROR)
		return GEN_ERR;
	if(vbp->pIndex[0]==1)
		port=1;
	else if(vbp->pIndex[0]==2)
		port=2;
	else
		return GEN_ERR;
	switch(*(vbp->pLeafId))
	{
		UINT32 temp,temp1,temp2,temp3;
		UINT16 temp_u16,temp1_u16;
		UINT8 temp_u08,temp1_u08,temp2_u08,temp3_u08,index,type;
		//index = (UINT8)(vbp->pIndex[0]);
		default:
			return GEN_ERR;
			break;

		/* ================================================================= */
		case LEAF_ol100crLocalPortType:    /* 1, Table Object INTEGER, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				if(localDTEType==0x0B)	
				{	
					if(vbp->pIndex[0]==1)
						Int32Set(vbp,1);
					else
						Int32Set(vbp,2);
				}
				else
					Int32Set(vbp,2);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		
		case LEAF_ol100crLocalPortFiber:    /* 2, Table Object INTEGER, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_port_info(port,&temp_u08,&temp1_u08,&temp2_u08,&temp_u16);
				temp = temp_u08;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				#if 0
				get_port_info(port,&temp_u08,&temp1_u08,&temp2_u08,&temp_u16);
				set_port_info(port,(UINT8)Int32Get(vbp),temp1_u08,temp2_u08,temp_u16);
				#endif
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		
		case LEAF_ol100crLocalPortMode:    /* 3, Table Object INTEGER, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_port_info(port,&temp_u08,&temp1_u08,&temp2_u08,&temp_u16);
				temp = temp1_u08;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortConnector:    /* 4, Table Object OCTET STRING, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_port_info(port,&temp_u08,&temp1_u08,&temp2_u08,&temp_u16);
				temp = temp2_u08;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortDistance:    /* 5, Table Object OCTET STRING, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_port_info(port,&temp_u08,&temp1_u08,&temp2_u08,&temp_u16);
				temp = temp_u16;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortTxWaveLength:    /* 6, Table Object OCTET STRING, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_wave_info(port,&temp_u16,&temp1_u16);
				temp = temp_u16;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				#if 0
				get_wave_info(port,&temp_u16,&temp1_u16);
				set_wave_info(port,(UINT16)Int32Get(vbp),temp1_u16);
				#endif
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxWaveLength:    /* 7, Table Object OCTET STRING, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				get_wave_info(port,&temp_u16,&temp1_u16);
				temp = temp1_u16;
				Int32Set(vbp,temp);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

	}
	return(NO_ERROR);
}

/**********************************************************************************
* ValidateIndex_ol100crLocPortStasticEntry - validate the index of ol100crLocPortStasticEntry.
***********************************************************************************/
_INT16 ValidateIndex_ol100crLocPortStasticEntry(_UINT8 request,VB_T *vbp)
{
	
	return NO_ERROR;
}
/**********************************************************************************
* GetNextIndex_ol100crLocPortStasticEntry - Get the next index of ol100crLocPortStasticEntry.
***********************************************************************************/
_INT16 GetNextIndex_ol100crLocPortStasticEntry(VB_T *vbp)
{
	if(vbp->vb_obj_id.num_components<=vbp->defined_prefix_len)
	{
		/*get the first index*/
		vbp->pIndex[0]=1;
		vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
		return NO_ERROR;
	}
	else
	{
		/*get the next index*/
		if(vbp->pIndex[0]>=2)
		{
			(*(vbp->pLeafId))++;
			vbp->pIndex[0]=1;
			return NO_ERROR;
		}
		vbp->pIndex[0]++;
		vbp->vb_obj_id.num_components=vbp->defined_prefix_len+vbp->defined_index_cnt;
		return NO_ERROR;
	}
	return GEN_ERR;
}
/**********************************************************************************
* ol100crLocPortStasticEntry_Handler - This routine handles the objects of ol100crLocPortStasticEntry.
***********************************************************************************/
_INT16 ol100crLocPortStasticEntry_Handler(_UINT8 request,void *ptr)
{
	VB_T *vbp=(VB_T *)ptr;
	_UINT8 port;
	if(request==GET_NEXT_REQUEST_PDU)
	{		
		if(GetNextIndex_ol100crLocPortStasticEntry(vbp)!=NO_ERROR)
			return GEN_ERR;
	}	
	if(ValidateIndex_ol100crLocPortStasticEntry(request,vbp)!=NO_ERROR)
		return GEN_ERR;
	if(vbp->pIndex[0]==1)
		port=1;
	else if(vbp->pIndex[0]==2)
		port=2;
	else 
		return GEN_ERR;
	switch(*(vbp->pLeafId))
	{
		UINT32 temp,temp1;
		UINT8 index,type;
		default:
			return GEN_ERR;
			break;

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxBytes:    /* 1, Table Object Counter64, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortCnt(port,0,&temp,&temp1);
				Counter64Set(vbp,temp,temp1);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxPkts:    /* 2, Table Object Counter32, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortCnt(port,1,&temp,&temp1);
				CounterSet(vbp,temp1);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxUniPkts:    /* 3, Table Object Counter32, read-only  */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortCnt(port,2,&temp,&temp1);
				CounterSet(vbp,temp1);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxMcastPkts:    /* 4, Table Object Counter32, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortCnt(port,3,&temp,&temp1);
				CounterSet(vbp,temp1);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}
			break;
		}

		/* ================================================================= */
		case LEAF_ol100crLocalPortRxBcastPkts:    /* 5, Table Object Counter32, read-only */
		{
			switch(request)
			{
			case GET_NEXT_REQUEST_PDU:/*do nothing*/
			case GET_REQUEST_PDU:
				hwGetPortCnt(port,4,&temp,&temp1);
				CounterSet(vbp,temp1);
				break;
			case SET_REQUEST_PDU:
				return NOT_WRITABLE;
				break;
			}

⌨️ 快捷键说明

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