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

📄 mplscmd.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
📖 第 1 页 / 共 5 页
字号:
{
	uchar     maxhop;
	unsigned short    RetMsgNO;
	maxhop   = para_group[0].param_un.param_int32;
	RetMsgNO = mplsHopCountLimit(maxhop,is_no);
	
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}

/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_loopdetection()	                    */
/* DESCRIPTION:   : config ldp protocol loopdetection                   */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..                                                 */
/************************************************************************/
int16 cmd_mpls_ldp_loopdetection(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	unsigned short    RetMsgNO;
	RetMsgNO = mplsLdpLoopDetection(is_no);
	
	if(is_no!=MPLS_OAM_CMD_FLAG)
	   RetMsgNO = MPLS_LOOP_DETECT_AGGREGATE;
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}

/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_loopdetection()	                    */
/* DESCRIPTION:   : config ldp protocol loopdetection                   */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..                                                 */
/************************************************************************/
int16 cmd_mpls_ldp_discovery_holdtime(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	unsigned long     time;
	unsigned short    RetMsgNO;
	time      = para_group[0].param_un.param_int32;
	RetMsgNO  = mplsHelloHoldtimer(time,is_no);
	
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}


/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_holdtime()	                            */
/* DESCRIPTION:   : config ldp session holdtime                         */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..                                                 */
/************************************************************************/
int16 cmd_mpls_ldp_holdtime(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	unsigned long     time;
	unsigned short    RetMsgNO;
	time      = para_group[0].param_un.param_int32;
	RetMsgNO  = mplsSessionHoldtimer(time,is_no);
	
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}


/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_holdtime()	                            */
/* DESCRIPTION:   : config ldp session holdtime                         */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..                                                 */
/************************************************************************/
int16 cmd_egress_targeted_proxy(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	/*unsigned long     ipaddr;
	unsigned long     ipmask;
	unsigned short    RetMsgNO;
	ipaddr      = para_group[0].param_un.param_int32;
	ipmask      = para_group[1].param_un.param_int32;
	RetMsgNO  = mplsProxyEgress(ipaddr, ipmask, is_no);
	
	return(mplsCommonErrorMsg(sty,MPLS_EGRESS_FOR_CONFIG));   /* change RetMsgNO to MPLS_EGRESS_FOR_CONFIG by lixia*/
	unsigned long        addr;
     unsigned long        mask;
     unsigned long        nexthop;
     int16                ResMsgNo;
     
     addr  = para_group[0].param_un.param_int32;
     mask  = para_group[1].param_un.param_int32;
     nexthop = 0x0;

     if(is_no==SDP_CMD_FLAG)
         ResMsgNo=mpls_insert_into_policy_tab(MPLS_POLICY_EGRESS,addr,mask,nexthop,MPLS_POLICY_DST_MSK);
     else
         ResMsgNo=mpls_delete_from_policy_tab(MPLS_POLICY_EGRESS,addr,mask,nexthop,MPLS_POLICY_DST_MSK);
         
     return(mplsLspResMsgNo(sty,ResMsgNo));



}

/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_control_mode()	                        */
/* DESCRIPTION:   : config control mode                                 */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..                                                 */
/************************************************************************/
int16 cmd_mpls_ldp_control_mode(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	uchar     ctrMode;
	unsigned short    RetMsgNO;
	ctrMode   = para_group[0].param_un.param_int32;
	
	ctrMode  = changeMplsRealNum(ctrMode);
	RetMsgNO  = mplsLdpCtrMode(ctrMode,is_no);
	
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}


/************************************************************************/
/* FUNCTION NAME  : cmd_mpls_ldp_control_mode()	                        */
/* DESCRIPTION:   : config control mode                                 */
/*  OUTPUT        : success or fail message      						*/
/*  AUTHOR/DATE   : sbp 2002-6-17                                       */
/*  GLOBAL        : NONE                     		     				*/
/*  NOTE          :  ..
/*   2002.11.28  sbp  transport address 配置与数据无关                                                 */
/************************************************************************/
int16 cmd_mpls_ldp_discovery_trans_addr(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	unsigned long     ipaddr;
	uchar     moduleNo;
	uchar     portNo;
	unsigned short    ifIndex;
	unsigned short    RetMsgNO;

	moduleNo  = globalModule[telnet_num]; 
	portNo    = globalPort[telnet_num];   
    ifIndex   = globalIfIndex[telnet_num];
	
	ipaddr    = para_group[0].param_un.param_int32;
	if ( is_no == SDP_CMD_FLAG )
	{
	   if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)
       {
           if(mplsIfConf[moduleNo].port[portNo-1].TransPortAddr != 0)
               return(mplsCommonErrorMsg(sty,MPLS_TRANSPORT_ADDR_FIRST_DELETE));
           mplsIfConf[moduleNo].port[portNo-1].TransPortAddr = ipaddr;
           mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen |= MPLS_TRANS_ADDR;
       }
       else
       {
           if(mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr != 0)
               return(mplsCommonErrorMsg(sty,MPLS_TRANSPORT_ADDR_FIRST_DELETE));
           mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr = ipaddr;
           mplsIfConf[moduleNo-1].port[portNo-1].Ip_maskLen |= MPLS_TRANS_ADDR;
       }
       mplsIpReset();
       return MPLS_OAM_CMD_SUCCESS; 
	}    
	else
	{
	   if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)
       {
           mplsIfConf[moduleNo].port[portNo-1].TransPortAddr = 0;
       }
       else
       {
           mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr = 0;
       }
       mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen &= NO_MPLS_TRANS_ADDR;
	   RetMsgNO  = mplsLdpdisTransAddr(moduleNo,portNo,ifIndex,ipaddr,is_no);
	}
	return(mplsCommonErrorMsg(sty,RetMsgNO));
}

/*********************************************************************************
 * 函 数 名: cmd_mpls_ip_default() 
 * 功    能: 启动LDP并设置默认参数。                                                
 * 输    入: sty:         用于显示的结构;
 *            para_group:   操作中对应的参数域结构;                       
 *            is_no:        是一般命令还是no命令的标识;
 *            telnet_num:   当前的TELNET的序号                
 * 输    出: 无
 * 返    回: 无条件地返回SDP_CMD_SUCCESS                
 * 全局变量:  mplsLsrAttrEntry    
 * 修改记录:
   -  修改日期       版本      修 改 人       修改原因及内容
 =========================================================
   -  01-7-25        1.0      孙保平            创建                                                      
 *********************************************************************************/
int16 cmd_mpls_ip_default(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	/* cmdfun.c */
	int16  RetMsg;
    RetMsg = mplsMibInitWholeDefaultSend(is_no);
    return(mplsCommonErrorMsg(sty,RetMsg));
} 

/*********************************************************************************
 * 函 数 名: cmd_mpls_ip_if_default_3() 
 * 功    能: 启动单个端口的LDP并设置默认参数。                                                
 * 输    入: sty:         用于显示的结构;
 *            para_group:   操作中对应的参数域结构;                       
 *            is_no:        是一般命令还是no命令的标识;
 *            telnet_num:   当前的TELNET的序号                
 * 输    出: 无
 * 返    回: 无条件地返回SDP_CMD_SUCCESS                
 * 全局变量:  globalModule ,globalPort , globalIfIndex
 * 修改记录:
   -  修改日期       版本      修 改 人       修改原因及内容
 =========================================================
   -  01-7-25        1.0     孙保平            创建                                                      
 *   2002.11.28  sbp  MPLS IP 配置与数据无关                                                 
 * sbp 2002-12-24 data online              
*********************************************************************************/

int16 cmd_mpls_ip_if_default_3(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
	uchar    moduleNo;
	uchar    portNo;
	unsigned short   ifIndex;
	int16    RetMsgNo;

	moduleNo  = globalModule[telnet_num]; 
	portNo    = globalPort[telnet_num];   
    ifIndex   = globalIfIndex[telnet_num];
		
   if (arrayLen[NOLSRATTR]<1)
	{
		return(mplsCommonErrorMsg(sty,MPLS_LSRID_NOT_CONFIG));
	}
   if(is_no==SDP_CMD_FLAG_NO)
   {		
      /* wengqing 2003-7-8  */
      if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000 || (mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M2000 && moduleNo == 0))
      {
         mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen &=NO_MPLS_IP;
      }
      else
      {
         mplsIfConf[moduleNo-1].port[portNo-1].Ip_maskLen &=NO_MPLS_IP;
      }
      /* sbp 2002-12-24 data online  */
      mplsDataDel( moduleNo,portNo,ifIndex);
      RetMsgNo = MPLS_OAM_CMD_SUCCESS;
   }		
   else
       RetMsgNo = mplsMibInitIfDefaultSend(moduleNo,portNo,ifIndex,is_no);
    
    return(mplsCommonErrorMsg(sty,RetMsgNo));
} 

     
/************************************************************************
 * FUNCTION NAME  : cmd_mpls_tunnel_destination()	                            
 * DESCRIPTION:   : configure tunnel destination 			    
 *  INPUT         : ipaddr, ipmask, is_no                           				
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : sbp 2002-7-1                                
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/

⌨️ 快捷键说明

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