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

📄 mplscmd.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
📖 第 1 页 / 共 5 页
字号:
    FilterNo  = (unsigned short)para_group[0].param_un.param_int32;
    
    if(is_no == SDP_CMD_FLAG_NO )
        RetMsgNo = mplsQosFilterDelete(FilterNo);
    else 
        return SDP_CMD_PARAM_ERROR;
    
    return(mplsCommonErrorMsg(sty,RetMsgNo)); 
}

/************************************************************************
 * FUNCTION NAME  : cmd_mpls_lsp_filter_tunnel()	                            
 * DESCRIPTION:   : binding the filter to tunnel			    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
int16 cmd_mpls_lsp_filter_tunnel(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short    FilterNo;
    unsigned short    lspNo;
    short     RetMsgNo;
    
    FilterNo  = (unsigned short)para_group[0].param_un.param_int32;
    lspNo     = (unsigned short)para_group[1].param_un.param_int32;
           
    if ( is_no == SDP_CMD_FLAG )
        RetMsgNo = mplsQosFilterLspBind(FilterNo,lspNo,MPLS_OAM_CMD_FLAG);
    else if(is_no == SDP_CMD_FLAG_NO )
        RetMsgNo = mplsQosFilterLspBind(FilterNo,lspNo,MPLS_OAM_CMD_FLAG_NO);
    else 
        return SDP_CMD_PARAM_ERROR;
    
    return(mplsCommonErrorMsg(sty,RetMsgNo)); 
}
/************************************************************************
 * FUNCTION NAME  : cmd_mpls_advertise_label_for()	                            
 * DESCRIPTION:   : advertise label for FEC policy			    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
int16 cmd_mpls_advertise_label_for(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short    prefixList;
    short     RetMsgNo;
    
    prefixList  = (unsigned short)para_group[0].param_un.param_int32;
    if ( is_no == SDP_CMD_FLAG )
        RetMsgNo = mplsAdvertiseLabelFor(prefixList,MPLS_OAM_CMD_FLAG);
    else if(is_no == SDP_CMD_FLAG_NO )
        RetMsgNo = mplsAdvertiseLabelFor(prefixList,MPLS_OAM_CMD_FLAG_NO);
    else 
        return SDP_CMD_PARAM_ERROR;
    
    return(mplsCommonErrorMsg(sty,RetMsgNo));
}
/* configuration command end */


/* showing command  begin */
/*********************************************************************************
 * 函 数 名: sdp_show_mpls_lsr_id() 
 * 功    能: 显示路由器标识符(LSRID),如果路由器ID没有配置,则显示提示信息以配置路由器ID。                                                
 * 输    入: sty:         用于显示的结构;
 *           para_group:   操作中对应的参数域结构;                       
 *           is_no:        是一般命令还是no命令的标识;
 *           telnet_num:   当前的TELNET的序号                
 * 输    出: 无
 * 返    回: 无条件地返回SDP_CMD_SUCCESS                
 * 全局变量:  mplsLsrAttrEntry    
 * 修改记录:
   -  修改日期       版本      修 改 人       修改原因及内容
 =========================================================
   -  01-7-25        1.0     孙保平            创建                                                      
 *********************************************************************************/
int16 sdp_sh_mpls_lsr_id(struct sty *sty,SDP_PARAM_STRU *para_group,
                           int16 is_no,int16 telnet_num)
{
	unsigned long    ullsrid;
	unsigned short   tableLen;
	
	tableLen  = 1;
	if (arrayLen[NOLSRATTR]<tableLen)
	{
		sdp_printf(sty," LsrId has not been configured, please config it! ");
		sdp_printf(sty, "\n");
	}
	else
	{
	    ullsrid=mplsLsrAttrEntry.lsrId;
	
	    sdp_printf(sty,"  %s","  LsrId:  ");
	    sdp_printf(sty,"  %s",inettoa(ullsrid));
	    sdp_printf(sty, "\n");
    }
    
    return SDP_CMD_SUCCESS;
}

/************************************************************************
 * FUNCTION NAME  : sdp_sh_forwarding_table_all()	                            
 * DESCRIPTION:   : show content of forwarding table		    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
 *    sbp  2002-4-17  release memory                                                     
/************************************************************************/
int16 sdp_sh_forwarding_table_all(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short        num1;
    unsigned short        num2;
    unsigned short        len;
    unsigned long         prefix;
    char          *str;
    char          *showStr[4];
    labelAtm_t    tempLabel;
    interface_name_t  interface;
    
    if(arrayLen[NOLFIB]>0)
    {   
    	sdp_printf(sty,"  InLabel  OutLabel  Prefix or TunnelId   Bytes    OutIF   NextHop       ");
	    sdp_printf(sty, "\n");
	    
    	for(num1=0; num1<arrayLen[NOLFIB]; num1++)
    	{
    		tempLabel  = mplsForwardingEntry[num1].localLabel;
    	    showStr[0] = changeLabelIntoStr(tempLabel);
    	    
    	    tempLabel  = mplsForwardingEntry[num1].remoteBinds[0].remoteBinds;
    	    showStr[1] = changeLabelIntoStr(tempLabel);
    	    
    	    len        = mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.mask.maskLen;
    	    prefix     = mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.netaddr;
    	    showStr[2] = changePrefixIntoStr(prefix,len);
    	    
    	    interface  = mplsForwardingEntry[num1].remoteBinds[0].outIf;
    	    showStr[3] = changeInterfaceIntoStr(interface);
    	    
    	    sdp_printf(sty, "  %-9s%-10s%21s%-9u%-8s%-s",
    	                   showStr[0],
    	                   showStr[1],
    	                   showStr[2],
    	                   mplsForwardingEntry[num1].remoteBinds[0].bytes,
    	                   showStr[3],
    	                   inettoa(mplsForwardingEntry[num1].remoteBinds[0].nextHop));
    	    sdp_printf(sty, "\n");
    	    MPLS_MEM_FREE(showStr[0], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
    	    MPLS_MEM_FREE(showStr[1], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
    	    MPLS_MEM_FREE(showStr[2], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
    	    MPLS_MEM_FREE(showStr[3], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
    	}
    }
    
    return SDP_CMD_SUCCESS;
}
/************************************************************************
 * FUNCTION NAME  : sdp_sh_forwarding_table_network()	                            
 * DESCRIPTION:   : show content of forwarding table by net address		    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
int16 sdp_sh_forwarding_table_network(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short        num1;
    uchar         numFnd;
    unsigned short        len;
    unsigned long         netAddr;
    unsigned short        maskLen;
    
    netAddr = para_group[0].param_un.param_int32;
    maskLen = para_group[1].param_un.param_int32;
    
    if(arrayLen[NOLFIB]>0)
    {   
    	numFnd = 0;
    	for(num1=0; num1<arrayLen[NOLFIB]; num1++)
    	{
    	  if(mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.netaddr==netAddr && 
    	    mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.mask.maskLen==maskLen)
    	  {
    	  	numFnd = 1;
    	  	mplsForwardingPrint(sty,num1,numFnd);
    	    break;
    	  }
    	}
    }
    
    return SDP_CMD_SUCCESS;
}
/************************************************************************
 * FUNCTION NAME  : sdp_sh_forwarding_table_local_atm()	                            
 * DESCRIPTION:   : show content of forwarding table by local atm vpi/vci		    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
int16 sdp_sh_forwarding_table_local_atm(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short        num1;
    uchar         numFnd;
    unsigned short        len;
    unsigned short        vpi;
    unsigned short        vci;
    
    vpi = para_group[0].param_un.param_int32;
    vci = para_group[1].param_un.param_int32;
    
    if(arrayLen[NOLFIB]>0)
    {   
    	numFnd = 0;
    	for(num1=0; num1<arrayLen[NOLFIB]; num1++)
    	{
    	   if(mplsForwardingEntry[num1].localLabel.type==1)
    	   {
    	        if(mplsForwardingEntry[num1].localLabel.label.atm.vpi==vpi && 
    	           mplsForwardingEntry[num1].localLabel.label.atm.vci==vci)
    	        {
    	  	         numFnd = 1;
    	  	         mplsForwardingPrint(sty,num1,numFnd);
    	             break;
    	        }
    	     }
    	}
    }
       
    return SDP_CMD_SUCCESS;
}
/************************************************************************
 * FUNCTION NAME  : sdp_sh_forwarding_next_hop()	                            
 * DESCRIPTION:   : show content of forwarding table by next hop		    
 *  OUTPUT        : success or fail message		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
int16 sdp_sh_forwarding_next_hop(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
    unsigned short        num1;
    uchar         numFnd;
    unsigned short        len;
    unsigned long         nextHop;
    
    nextHop = para_group[0].param_un.param_int32;
        
    if(arrayLen[NOLFIB]>0)
    {   
    	numFnd = 0;
    	for(num1=0; num1<arrayLen[NOLFIB]; num1++)
    	{
    	   if(mplsForwardingEntry[num1].remoteBinds[0].nextHop==nextHop)
    	   {
    	        numFnd = 1;
    	        mplsForwardingPrint(sty,num1,numFnd);
    	        break;
    	   }
    	}
    }
       
    return SDP_CMD_SUCCESS;
}
/

⌨️ 快捷键说明

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