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

📄 mplsfunc.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
📖 第 1 页 / 共 5 页
字号:
        sdp_printf(sty, " %s:%u ",inettoa(pSesT->entityLdpId.lsrAddress),
                                  pSesT->entityLdpId.labelSpace);
        sdp_printf(sty,"\n");
                                    
        /*sdp_printf(sty,"   State     Protocol MaxPduLen Holdtime Role    Odd/Even Uptime    ");*/
        sdp_printf(sty,"   State         Protocol MaxPduLen Role    Odd/Even Uptime    ");/* 空格 */
        sdp_printf(sty,"\n");
        
        sdp_mpls_session_state(pSesT,sty);
        sdp_printf(sty, "%-9u", pSesT->protocolversion);
        sdp_printf(sty, "%-10u", pSesT->maxpdulength); 
        /*sdp_printf(sty, "%-9u", pSesT->keepaliveholdtimeremaining);*/
        
        /* change the showing order   sbp 2002-1-3 */
        if(pSesT->role==1)
            sdp_printf(sty, "%-8s","Active");
        else if(pSesT->role==2)
            sdp_printf(sty, "%-8s","Passive");
        else 
            sdp_printf(sty, "%-8s"," -  ");
            
        if(pSesT->vcNumeberdType==1)
            sdp_printf(sty, "%-8s","Odd");
        else if(pSesT->vcNumeberdType==2)
            sdp_printf(sty, "%-8s","Even");  
        else  
            sdp_printf(sty, "%-8s"," -  "); 
              
        sdp_up_get_time(pSesT->discontinuitytime,sty);
        sdp_printf(sty, "\n"); 
}
/************************************************************************
 * FUNCTION NAME  : mplsLdpSessionStatePrint()	                            
 * DESCRIPTION:   : print session state table 			    
 *  INPUT         :  pSesT           				
 *  OUTPUT        : 		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
void mplsLdpSessionStatePrint(mplsLdpSessionStatsTable_t  *pSeSt,struct sty *sty)
{
       sdp_printf(sty, "  Adjacency LDP ID:");
       sdp_printf(sty, " %s:%u;", inettoa(pSeSt->peerLdpId.lsrAddress),
                                 pSeSt->peerLdpId.labelSpace);
       sdp_printf(sty, "  Local LDP ID:");
       sdp_printf(sty, " %s:%u", inettoa(pSeSt->entityLdpId.lsrAddress),
                                    pSeSt->entityLdpId.labelSpace);
       sdp_printf(sty,"\n");  
                                  
       sdp_printf(sty, "    connection: ");
       sdp_printf(sty, "%-15s -", inettoa(pSeSt->connect.peerAddr));  
       sdp_printf(sty, "%-15s", inettoa(pSeSt->connect.localAddr)); 
       sdp_printf(sty, "\n");
       
       sdp_printf(sty, "    unKnownMessageTypeErrors: %-5u unKnownTlvErrors: %-u  ",
                             pSeSt->unknownmessagetypeerrors, pSeSt->unknowntlverrors);
       sdp_printf(sty, "\n"); 
}
/************************************************************************
 * FUNCTION NAME  : mplsLdpPeerPrint()	                            
 * DESCRIPTION:   : print peer table 			    
 *  INPUT         : pPeer           				
 *  OUTPUT        : 		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
void mplsLdpPeerPrint(mplsLdpPeerTable_t  *pPeer,struct sty *sty)
{
        sdp_printf(sty,"  Peer LDP ID: ");
        sdp_printf(sty,"%s:%u;", inettoa(pPeer->peerLdpId.lsrAddress),
                                 pPeer->peerLdpId.labelSpace); 
        sdp_printf(sty,"  Local LDP ID: ");
        sdp_printf(sty,"%s:%u", inettoa(pPeer->entityLdpId.lsrAddress),
                                   pPeer->entityLdpId.labelSpace);
        sdp_printf(sty,"\n");
        
        /*sdp_printf(sty,"    TCP Connection: ");
        sdp_printf(sty, " %s.%u",inettoa((*pPeer).connect.peerAddr),
                                  (*pPeer).connect.peerPort);
        sdp_printf(sty, "—%s.%u", inettoa((*pPeer).connect.localAddr),
                                         (*pPeer).connect.localPort);
        sdp_printf(sty,"\n");*/
                                  
        sdp_printf(sty,"    State: ");
        if(pPeer->state)
        {
           	sdp_printf(sty,"Operational; ");
        }
        else
        {
           	sdp_printf(sty,"Transient; ");
        }  
    /*    sdp_printf(sty,"; PIEs Sent/Rcvd: ");                                              
        sdp_printf(sty,"%u/%u  ", pPeer->PIEsSent,pPeer->PIEsRcvd);  */
        if(pPeer->peerlabeldistributionmethod==1)
        {
           	sdp_printf(sty,"Distribute Mode: DownStreamOnDemand");
        }
        else if(pPeer->peerlabeldistributionmethod==0)
        {
          	sdp_printf(sty,"Distribute Mode: DownStreamUnsolicited");
        }
        sdp_printf(sty,"\n");
                
        sdp_printf(sty,"    LoopDetectionForPV:"); 
        if(pPeer->peerloopdetectionforpv==1)
        {
           	sdp_printf(sty," Disabled");
        }
        else
        {
           	sdp_printf(sty," Enabled");
        } 
        sdp_printf(sty,"; PathVectorLimit: %u; Uptime: ",pPeer->peerpathvectorlimit); 
        sdp_up_get_time(pPeer->oldtime,sty);
        sdp_printf(sty,"\n"); 
                
        /*sources and addresses 的显示项以后在这个位置加上*/  
}
/************************************************************************
 * FUNCTION NAME  : mplsLdpAdjacencyPrint()	                            
 * DESCRIPTION:   : print adjacency table 			    
 *  INPUT         : pAdjT           				
 *  OUTPUT        : 		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
void mplsLdpAdjacencyPrint(mplsLdpHelloAdjacencyTable_t *pAdjT,struct sty *sty)
{
        sdp_printf(sty,"  Peer LDP ID: ");
        sdp_printf(sty, "%s:%u;", inettoa((*pAdjT).peerLdpId.lsrAddress),
                                     (*pAdjT).peerLdpId.labelSpace);
        sdp_printf(sty,"  Local LDP ID: ");
        sdp_printf(sty, " %s:%u", inettoa((*pAdjT).entityLdpId.lsrAddress),
                                     (*pAdjT).entityLdpId.labelSpace);
                                   
        sdp_printf(sty,"\n");
                                     
        sdp_printf(sty,"    TCP Connection:");
        sdp_printf(sty, " %s.%u", inettoa((*pAdjT).connect.peerAddr),
                                    (*pAdjT).connect.peerPort);
        sdp_printf(sty, "  - %s.%u", inettoa((*pAdjT).connect.localAddr),
                                          (*pAdjT).connect.localPort);
        
        /*sdp_printf(sty,"\n    Up time: %-d, Adjacencytype: ",
                          (*pAdjT).adjacencyholdtimeremaining);*/
        sdp_printf(sty,"\n    Adjacency Type: ");
        if((*pAdjT).adjacencytype==1)
            sdp_printf(sty, "Link   ");
        else
            sdp_printf(sty, "Targeted");
        sdp_printf(sty,"\n");

}

/************************************************************************
 * FUNCTION NAME  : moduelPort2ifIndexModulePort()	                            
 * DESCRIPTION:   : get ifindex\module\port from module\port  			    
 *  INPUT         :            				
 *  OUTPUT        : 		                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
void moduelPort2ifIndexModulePort(int8 *ModulePort,short telnet_num)
{
	ushort      num;
    ushort      num1;
    ushort      num2;
    ushort      ifIndex=0;
    uchar       module;
    uchar       port;
    int16       count_num=0,count_num1=0;
    int8       * p_temp;
    int8        f_temp[3];
    int8        n_temp[3];
    u_int32     temp_f,temp_n;
	
	memset(f_temp,0,sizeof(int8)*3);
    memset(n_temp,0,sizeof(int8)*3);
    
     p_temp=ModulePort;
        while ((*p_temp >= '0') && (*p_temp <= '9'))
        {
    	     f_temp[count_num]=*p_temp;
           p_temp++;
           count_num++;
        }
        
        p_temp++;
        count_num++;
        
      
       while ((*p_temp >= '0') && (*p_temp <= '9'))
       {
        	n_temp[count_num1]=*p_temp;
            p_temp++;
            count_num++;
            count_num1++;
       } 
          
           module = (uchar)(attache_atoi( f_temp ));
           port   = (uchar)(attache_atoi( n_temp ));
    
    	/*计算IFINDEX号*/
       if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)   
       { 	
    	for(num1=0; num1<MplsPortDataTable1.num; num1++)
           {
               if(MplsPortDataTable1.mplsModule[num1].module==module)
               {
                    for(num=0; num<MplsPortDataTable1.mplsModule[num1].num; num++)
                    {
                    	if((module==0 && port<5) ||module>0)
                       {
                            if(MplsPortDataTable1.mplsModule[num1].portData[num].port==port)
                         {
                             ifIndex = MplsPortDataTable1.mplsModule[num1].portData[num].ifIndex;
                             break;
                         }
                    }
                    else
                    {
                        break;
                    }
                 }
             	
                 break;
            }
        }
      }
      else if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M2000 && module == 0)
      {
      	/* wengqing 2003-7-8 14:10 for m2000 */
      	    num1 = 0;      	
            if(MplsPortDataTable1.mplsModule[num1].module==module)
            {
                 for(num=0; num<MplsPortDataTable1.mplsModule[num1].num; num++)
                 {
                    if(MplsPortDataTable1.mplsModule[num1].portData[num].port==port)
                    {
                        ifIndex = MplsPortDataTable1.mplsModule[num1].portData[num].ifIndex;
                        break;
                    }
                 }
            }
      }
      else
      {
       for(num1=1; num1<MplsPortDataTable1.num; num1++)
        {
            if(MplsPortDataTable1.mplsModule[num1].module==module)
            {
                 for(num=0; num<MplsPortDataTable1.mplsModule[num1].num; num++)
                 {
                    if(MplsPortDataTable1.mplsModule[num1].portData[num].port==port)
                    {
                        ifIndex = MplsPortDataTable1.mplsModule[num1].portData[num].ifIndex;
                        break;
                    }
                 }
             	
                 break;
            }
        }
       }
         
       globalModule[telnet_num] = module;  /* 全局变量,在端口状态用于记录模块号、端口号、虚端口号 ,非端口状态则为0*/
       globalPort[telnet_num]   = port;
       globalIfIndex[telnet_num]= ifIndex;
}
/************************************************************************
 * FUNCTION NAME  : mplsEntityDataTupleDel()	                            
 * DESCRIPTION:   : delete mpls ldp entity data  			    
 *  INPUT         : array,ArrayNo  module port ifIndex               				
 *  OUTPUT        : 	                           				
 *  AUTHOR/DATE   : Sun Baoping/ 01.12.12                               
 *  GLOBAL        : 								
 *  NOTE          :  ..                                                 
/************************************************************************/
void mplsEntityDataTupleDel(MplsLdpEntityTable_t *array,ushort ArrayNo,uchar module,uchar port,ushort ifIndex)
{
	ushort    num,num1;
	
	for(num=0; num<arrayLen[ArrayNo]; num++)
	{
		if(array[num].ifIndex==ifIndex && array[num].ifName.module==module)
		{
			for(num1=num; num1<arrayLen[ArrayNo]-1; num1++)
			{
			    array[num1]=array[num1+1];
			}
			memset(&array[num1],0,sizeof(MplsLdpEntityTable_t));  /* 150 估计 略大 */
	        arrayLen[ArrayNo]--;
	        break;
		}
	}
}



/************************************************************************
 * FUNCTION NAME  : mplsParamDataTupleDel	                            
 * DESCRIPTION:   : delete mpls ldp trans port address  			    
 *  AUTHOR/DATE   : sbp 2002-12-24                                
/************************************************************************/
void mplsParamDataTupleDel(mplsldpparamtable_t *array,ushort ArrayNo,uchar module,uchar port,ushort ifIndex)
{
    ushort    num,num1;
	
	for(num=0; num<arrayLen[ArrayNo]; num++)
	{
		if(array[num].ifIndex==ifIndex && array[num].ifName.module==module)
		{
			for(num1=num; num1<arrayLen[ArrayNo]-1; num1++)
			{
			    array[num1]=array[num1+1];
			}
			memset(&array[num1],0,sizeof(mplsLdpEntityStatsTable_t));  /* 150 估计 略大 */
	        arrayLen[ArrayNo]--;
	        break;
		}
	}
}


⌨️ 快捷键说明

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