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

📄 api_test.c

📁 技术文件名称:MPLSv1.0软件模块测试规程
💻 C
📖 第 1 页 / 共 4 页
字号:
        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, "entityindex: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "attemptedsessions: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "sessionrejectednohelloerrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "sessionrejectedadvertisementerrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "sessionrejectedmaxpduerrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "sessionrejectedlabelrangeerrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "badldpidentifiererrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "badpdulengtherrros: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "badmessagelengtherrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "badtlvlengtherrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "malformedtlvvalueErrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "KeepAliveTimerExpiredErrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ShutdownNotifReceived: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ShutdownNotifSent: %d \n", *(DWORD *)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);
        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, "IpAddr: %s \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
    }
}

void showMplsLdpSessionStatsDisplay(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)
    {
        /* mplsLdpSessionStatsTable_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, "unknownmessagetypeerrors: %d \n", *(DWORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "unknowntlverrors: %d \n", *(DWORD *)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);
        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);
    }
}

void showMplsLdpIntTransportAddrDisplay(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)
    {
        /* if_transport_table_t structure */
        sdp_printf(sty, "rowStatus: %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);
        sdp_printf(sty, "ifType: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ifIpAddr: %s \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ifNet: %s \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ifMask: %s \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ifBrdcstAddr: %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);
    }
}

void showMplsLdpAtmLabelGetDisplay(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)
    {
        /* MIB_MPLSCONFIG_ACK structure */
        sdp_printf(sty, "cardType: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "module: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "num: %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, "portData[%d].port: %d \n", i, *(BYTE *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "portData[%d].ifIndex: %d \n", i, *(WORD *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "portData[%d].speed: %d \n", i, *(DWORD *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "portData[%d].atmInterfaceMaxActiveVciBits: %d \n", i, *(BYTE *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "portData[%d].atmfAtmLayerMaxSvccVpi: %d \n", i, *(WORD *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "portData[%d].atmfAtmLayerMinSvccVci: %d \n", i, *(WORD *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        }
    }
}
void showIpTrafficEngConfFilterNoDisplay(struct sty *sty, mpls_comm_oam_t *out)
{}
#if 0
void showIpTrafficEngConfFilterNoDisplay(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)
    {
        /* QosMulitFieldFilter_t structure */
        sdp_printf(sty, "filterNo: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "bindedLspNum: %d \n", *(BYTE *)pData->Data);
        num = *(BYTE *)pData->Data;
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "ExistLspNum: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        for(i = 0; i < num; i++)
        {
            sdp_printf(sty, "lspNoEntry[%d]: %d \n", i, *(WORD *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        }
        sdp_printf(sty, "QosAddr.addrType: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosAddr.ScrAddr.IpAddr: %d \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosAddr.ScrAddr.mask.addrMask: %d \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosAddr.DstAddr.IpAddr: %d \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosAddr.DstAddr.mask.addrMask: %d \n", lntoa(*(DWORD *)pData->Data));
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPort.ScrPort.minPort: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPort.ScrPort.maxPort: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPort.DstPort.minPort: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPort.DstPort.maxPort: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosDscp: %d \n", *(WORD *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPhyPortNum: %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, "QosPhyPort[%d].module: %d \n", i, *(BYTE *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
            sdp_printf(sty, "QosPhyPort[%d].port: %d \n", i, *(BYTE *)pData->Data);
            pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        }
        sdp_printf(sty, "QosProtoType: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
        sdp_printf(sty, "QosPrio: %d \n", *(BYTE *)pData->Data);
        pData = (mpls_opr_data_t *)(pData->Data + pData->Len);
    }
}
#endif

int16 sh_mpls_api(struct sty *sty, SDP_PARAM_STRU *para_group, int16 is_no, int16 telnet_num)
{
    mpls_sh_data_t in;
    mpls_comm_oam_t *out;
    int mem_size;
    
    memset(&in, 0, sizeof(mpls_sh_data_t));
    
    /* cmd: show mpls ldp neighbor */
    out = (mpls_comm_oam_t *)GET_UB(MPLS_DATA_SIZE_MAX);
    if(!out)
    {
        sdp_printf(sty, "Memory allocate failed!");
        return SDP_CMD_SUCCESS;
    }
    memset(out, 0x0, sizeof(out));
    showMplsLdpNeighbor(&in, out);
    showMplsLdpNeighborDisplay(sty, out);
    RET_UB(out);
    
    /*cmd: show mpls ldp session */
    
    out = (mpls_comm_oam_t *)GET_UB(MPLS_DATA_SIZE_MAX);
    if(!out)
    {
        sdp_printf(sty, "Memory allocate failed!");
        return SDP_CMD_SUCCESS;
    }
    memset(out, 0x0, sizeof(out));
    showMplsLdpSession(&in, out);
    showMplsLdpSessionDisplay(sty, out);
    RET_UB(out);
    
    /* cmd: show mpls ldp peer */
    out = (mpls_comm_oam_t *)GET_UB(MPLS_DATA_SIZE_MAX);
    if(!out)
    {
        sdp_printf(sty, "Memory allocate failed!");
        return SDP_CMD_SUCCESS;
    }
    memset(out, 0x0, sizeof(out));
    showMplsLdpPeer(&in, out);
    showMplsLdpPeerDisplay(sty, out);
    RET_UB(out);
    
    /* cmd: show mpls ldp parameter */
    out = (mpls_comm_oam_t *)GET_UB(MPLS_DATA_SIZE_MAX);
    if(!out)
    {
        sdp_printf(sty, "Memory allocate failed!");
        return SDP_CMD_SUCCESS;
    }
    memset(out, 0x0, sizeof(out));

⌨️ 快捷键说明

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