📄 api_test.c
字号:
/**************************************************************************************/
/* Product Name: MPLS */
/* File Name : api_test.c */
/* Author : gao.xiaoqing */
/* Create Date : 2002.6.27 */
/* Description : Only for testing the command API. Set the parameter in as 0, that is */
/* to say, always testing all is OK. */
/* Update : */
/* 20021022 xgxu add "show mpls forwarding "command for telnet */
/*2002.11.25 xuxiaogang 在多层标签时候,对第二个打印没有对齐 在显示的地方加入一个判断*/
/*2002.12.25 xuxiaogang 修改show mpls forwarding 的显示信息 */
/**************************************************************************************/
#include "string.h"
#include "stdlib.h"
#include "stdio.h"
#include "memory.h"
#include "malloc.h"
#include "protocol/h/exec_cmd.h"
#include "protocol/h/tnagt.h"
#include "mplsshow.h"
#include "mplsldp.h"
#include "mplsfun.h"
#include "mpls.h"
#include "mplsni.h"
#include "ldpstr.h"
#include "oamport.h"
void showMplsLdpNeighborDisplay(struct sty *sty, mpls_comm_oam_t *out)
{
BYTE *end_of_data;
mpls_opr_data_t *pData = out->Data;
end_of_data = (BYTE *)pData + out->DataLen;
while((BYTE *)pData < end_of_data)
{
/* mplsLdpHelloAdjacencyTable_t structure */
sdp_printf(sty, "entityLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "entityLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "entityindex: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "adjacencyindex: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "adjacencyholdtimeremaining: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "adjacencytype: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.module: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.port: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.lsrType: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifIndex: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
}
void showMplsLdpSessionDisplay(struct sty *sty, mpls_comm_oam_t *out)
{
int i, num;
BYTE *end_of_data;
mpls_opr_data_t *pData = out->Data;
end_of_data = (BYTE *)pData + out->DataLen;
while((BYTE *)pData < end_of_data)
{
/* MplsLdpSessionTable_t structure */
sdp_printf(sty, "entityLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "entityLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "index: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "state: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "protocolversion: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "keepaliveholdtimeremaining: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "maxpdulength: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "discontinuitytime: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "role: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "vcNumeberdType: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "lblRngNum: %d \n", *(BYTE *)pData->Data);
num = *(BYTE *)pData->Data;
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
for(i = 0; i < num; i++)
{
sdp_printf(sty, "lblRngList[%d].minvpi: %d \n", i, *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "lblRngList[%d].minvci: %d \n", i, *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "lblRngList[%d].maxvpi: %d \n", i, *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "lblRngList[%d].maxvci: %d \n", i, *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
sdp_printf(sty, "helloArrayNum: %d \n", *(DWORD *)pData->Data);
num = *(DWORD *)pData->Data;
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
for(i = 0; i < num; i++)
{
sdp_printf(sty, "helloArray[%d]: %d \n", i, *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
sdp_printf(sty, "tcpConRetry: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "tmidCon: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.module: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.port: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.lsrType: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifIndex: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
}
void showMplsLdpPeerDisplay(struct sty *sty, mpls_comm_oam_t *out)
{
int i, num;
BYTE *end_of_data;
mpls_opr_data_t *pData = out->Data;
end_of_data = (BYTE *)pData + out->DataLen;
while((BYTE *)pData < end_of_data)
{
/* mplsLdpPeerTable_t structure */
sdp_printf(sty, "entityLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "entityLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "entityindex: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.lsrAddress: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerLdpId.labelSpace: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerlabeldistributionmethod: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerloopdetectionforpv: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "peerpathvectorlimit: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "downstream: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "PIEsSent: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "PIEsRcvd: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerPort: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.localAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "connect.peerAddr: %s \n", lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "state: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "oldtime: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "addrSrcNum: %d \n", *(BYTE *)pData->Data);
num = *(BYTE *)pData->Data;
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
for(i = 0; i < num; i++)
{
sdp_printf(sty, "AddressSources[%d].sources: %d \n", i, *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "AddressSources[%d].address: %d \n", i, lntoa(*(DWORD *)pData->Data));
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
sdp_printf(sty, "ldpIdentNum: %d \n", *(BYTE *)pData->Data);
num = *(BYTE *)pData->Data;
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
for(i = 0; i < num; i++)
{
sdp_printf(sty, "LdpIdent[%d]: %d \n", i, *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
sdp_printf(sty, "ifName.module: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.port: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifName.lsrType: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "ifIndex: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
}
void showMplsLdpParamDisplay(struct sty *sty, mpls_comm_oam_t *out)
{
mpls_opr_data_t *pData = out->Data;
/* mplsLdpParam_t structure */
sdp_printf(sty, "mplsEnable: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "protocolversion: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "minLabel: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "maxLabel: %d \n", *(WORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "s_hold: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "s_interval: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "h_hold: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "h_interval: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "t_h_hold: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "t_h_interval: %d \n", *(DWORD *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "loopdetection: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "maxhopcount: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "pvlimit: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "controlmode: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
sdp_printf(sty, "aggregate: %d \n", *(BYTE *)pData->Data);
pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
}
void showMplsLdpEntityStatsDisplay(struct sty *sty, mpls_comm_oam_t *out)
{
BYTE *end_of_data;
mpls_opr_data_t *pData = out->Data;
end_of_data = (BYTE *)pData + out->DataLen;
while((BYTE *)pData < end_of_data)
{
/* mplsLdpPeerTable_t structure */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -