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

📄 api_test.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
📖 第 1 页 / 共 4 页
字号:
/**************************************************************************************/
/* 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 + -