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

📄 oamtimer.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
字号:
/********************************************************************          
*	Product Name:	MPLS                                       	          
*	Module  Name:	OAM    	 									
*	File    Name:   oamtimer.c								        	          
*	Function    :	timer of EPPC used in OAM 
*   History:
*   Date          Version        modifier         Activities 
* ==================================================================
*   01-8-9         2.1.2        Sun Baoping        create		
********************************************************************/ 
#include <attache/h/timer.h>
#include "mplsOamS.h"

extern unsigned short  TimeSave[8];  /* 分别和8个记时器相对应 */
extern unsigned char   operArray[8]; /*0: LSRID的操作对应,1:所有LDP实体的操作对应, 2:单个LDP实体的操作对应*/

struct timer mplsOamEppcTimer[OAM_TIMER_MPLS_NI_TABLE+1];
mplsOamTimer_t         mplsOamTimer;
extern void mplsTafficDefSendAllEthi(unsigned char moduleNo); /* mplsfun.c */
extern char mplsTrafficDefaultACK(unsigned char module);
/************************************************************************
 * FUNCTION NAME  : mplsOamHandler()	                            
 * DESCRIPTION:   : set timer  			    
 *  INPUT         : t: timer
 *                  c: timer No                            				
 *  OUTPUT        : NONE		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : mplsOamEppcTimer								
 *  NOTE          :  ..                                                 
/************************************************************************/
void  mplsOamHandler(struct timer *t, void* c)
{
    unsigned short    timeEvent;
    unsigned char    module;
        
    timeEvent = *((short *)c);
    module    = (unsigned char)(timeEvent/TIMER_MACRO_MAX_NUMBER);
    timeEvent = timeEvent%TIMER_MACRO_MAX_NUMBER;
    
    if(timeEvent==0)
    {
       timeEvent = OAM_TIMER_MPLS_CONFIG_TABLE;
       module--;
    }
    switch(timeEvent)
    {
       case OAM_TIMER_MPLS_LSRID_TABLE:   
       {  
           mplsAttrConfig(module);
		   break;	   
       }        
       case OAM_TIMER_MPLS_INTERFACE_TABLE: 
       {  
       	   mplsInterfaceConfig(module);
				
		   break;	
       }   
       case OAM_TIMER_MPLS_ENTITY_TABLE:  
       {  
       	   mplsEntityConfig(module);
		   break;	  
       }
       case OAM_TIMER_MPLS_DEF_TRAFFIC_TO_LDP_TABLE:  
       {  
       	   mplsTafficDefSendAllEthi(module);
		   break;	  
       }
       
       default:
           break;
    }
}

/************************************************************************
 * FUNCTION NAME  : mplsOamSetTimer()	                            
 * DESCRIPTION:   : set timer  			    
 *  INPUT         : module,timerMsg, time                            				
 *  OUTPUT        : NONE		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : mplsOamEppcTimer								
 *  NOTE          :  ..                                                 
/************************************************************************/
void mplsOamSetTimer(unsigned char module, unsigned char timerMsg,unsigned short time)
{
    mplsOamTimer.backoff[timerNo(module,timerMsg)]=
	    mplsOamTimer.backoff[timerNo(module,timerMsg)]*2+1;
	if(mplsOamTimer.backoff[timerNo(module,timerMsg)]>40) 
	    mplsOamTimer.backoff[timerNo(module,timerMsg)]=40; /* 回退时间最长为2分钟*/
	       
    memset(&mplsOamEppcTimer[timerNo(module,timerMsg)], 0x0, sizeof(struct timer));
    etc_tm_init(&mplsOamEppcTimer[timerNo(module,timerMsg)]);
	mplsOamEppcTimer[timerNo(module,timerMsg)].handler = (void *)mplsOamHandler;
	mplsOamEppcTimer[timerNo(module,timerMsg)].cookie = (void *)(&mplsOamTimer.timerId[timerNo(module,timerMsg)]);
	etc_tm_set(&mplsOamEppcTimer[timerNo(module,timerMsg)],(bits32_t)(time*mplsOamTimer.backoff[timerNo(module,timerMsg)]));
}


⌨️ 快捷键说明

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