📄 mplsfunc.c
字号:
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 + -