📄 cmdfun.c
字号:
PID sendPid;
uchar operaType;
operaType = 1;
GET_PID("LDPPROCESS",&sendPid);
sendPid.module = module;
mplsDataIfConfAck(MPLS_LDP_OAM_MESSAGE,&sendPid,operaType);
}
/************************************************************************
* FUNCTION NAME : mplsEntityConfig()
* DESCRIPTION: : send LDP Entity data to the responding module.
* INPUT : module
* OUTPUT : none
* AUTHOR/DATE : Sun Baoping/ 2001-12-22
* GLOBAL : none
* NOTE : ..
/************************************************************************/
void mplsEntityConfig(uchar module)
{
PID sendPid;
GET_PID("LDPPROCESS",&sendPid);
sendPid.module = module;
mplsDataEntityAck(MPLS_LDP_OAM_MESSAGE,sendPid,0);
}
/*********************************************************************************
* 函 数 名: mplsMibInitWholedefault(short is_no)
* 功 能: 启动所有实体的LDP并设置默认值
初始化interface config 表
初始化traffic 表
初始化Entity 表
初始化 generic label, 未做
初始化 atm parameter table
初始化 atm label range table
初始化 transport address table
初始化 ENTITY stats table
初始化 session stats table
初始化 ldp entity parameter talbe, this table is added
区分LIC/ETHI/POS
* 输 入: 无
* 输 出: 无
* 返 回: 无
* 全局变量: 多个表,NI表、MPLS PORT表,和各个配置表
* 修改记录:
- 修改日期 版本 修 改 人 修改原因及内容
=========================================================
- 2001-8-14 1.0 孙保平 创建
区别对待端口的标签空间 sbp 2001-12-28
*********************************************************************************/
int16 mplsMibInitWholedefault(short is_no)
{
unsigned short num;
unsigned short num1;
unsigned short num2;
unsigned short num3;
unsigned short num4;
unsigned short module;
if(arrayLen[NOLSRATTR]==1)
{
num3 = 0;
num = 0;
/* 完全初始化:填从数据处要到的数据和初始化默认值 */
if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)
{
for(num=0; num< MplsPortDataTable1.num; num++)
{
/* change data to marco sbp 2001-12-28 */
#ifdef __INSTALL_V22
if(((MplsPortDataTable1.mplsModule[num].cardType >=MPLS_CARDTYPE_MPU)
&&(MplsPortDataTable1.mplsModule[num].cardType <=MPLS_MPU_END))||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_LANI ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETH ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETHIF||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_APCLIC_END)||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_GEI &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_GEICARD_END))
#else
if(MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_MPU ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_LANI ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETH ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETHIF||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_CARDTYPE_LIC10))
#endif
{
for(num1=0;num1<MplsPortDataTable1.mplsModule[num].num; num1++)
{
if((num==0 && MplsPortDataTable1.mplsModule[num].portData[num1].port<5)||num>0)
{ /* 初始化interface config 表 */
mplsInterfaceConfEntry[num3].ifIndex = MplsPortDataTable1.mplsModule[num].portData[num1].ifIndex;
if(MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_LANI &&
MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_ETH &&
MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_ETHIF)
mplsInterfaceConfEntry[num3].totalbandwidth = MplsPortDataTable1.mplsModule[num].portData[num1].speed;
#if 0
mplsInterfaceConfEntry[num3].availablebandwidth = MplsPortDataTable1.mplsModule[num].portData[num1].ifIndex;
#endif
/* 区别对待端口的标签空间 sbp 2001-12-28 */
if(MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_LANI ||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETH||
MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_ETHIF)
mplsInterfaceConfEntry[num3].labelparticipationtype = 0;
else
mplsInterfaceConfEntry[num3].labelparticipationtype = 1;
mplsInterfaceConfEntry[num3].storagetype = 1;
#if 0
mplsInterfaceConfEntry[num3].labelRange = ;
#endif
if(is_no==1)
mplsInterfaceConfEntry[num3].adminStatus = 1;
else
mplsInterfaceConfEntry[num3].adminStatus = 2;
mplsInterfaceConfEntry[num3].operStatus = 1;
mplsInterfaceConfEntry[num3].rowStatus = 1;
mplsInterfaceConfEntry[num3].ifName.module = MplsPortDataTable1.mplsModule[num].module;
mplsInterfaceConfEntry[num3].ifName.port = MplsPortDataTable1.mplsModule[num].portData[num1].port;
mplsInterfaceConfEntry[num3].ifName.lsrType = MplsPortDataTable1.mplsModule[num].cardType;
/* 初始化traffic 表 */
mplsTrafficParamEntry[num3].index = mplsInterfaceConfEntry[num3].ifIndex;
mplsTrafficParamEntry[num3].ifName = mplsInterfaceConfEntry[num3].ifName;
mplsTrafficParamEntry[num3].rowstatus = 3;
/* 初始化Entity 表 */
mplsLdpEntityEntry[num3].RowStatus = 1;
mplsLdpEntityEntry[num3].ldpId.lsrAddress = mplsLsrAttrEntry.lsrId;
mplsLdpEntityEntry[num3].ldpId.labelSpace = mplsInterfaceConfEntry[num3].ifIndex;
/********************************************************************/
/* wengqing modify
*/
/********************************************************************/
#ifdef __INSTALL_V22
if(((MplsPortDataTable1.mplsModule[num].cardType >=MPLS_CARDTYPE_MPU)
&&(MplsPortDataTable1.mplsModule[num].cardType <=MPLS_MPU_END)) ||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_APCLIC_END)||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_GEI &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_GEICARD_END))
#else
if(MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_MPU ||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_CARDTYPE_LIC10))
#endif
{
mplsLdpEntityEntry[num3].ldpId.labelSpace = mplsInterfaceConfEntry[num3].ifIndex;
}
else
{
mplsLdpEntityEntry[num3].ldpId.labelSpace = 0;
}
/********************************************************************/
/* wengqing modify end
*/
/********************************************************************/
mplsLdpEntityEntry[num3].index = MplsPortDataTable1.mplsModule[num].portData[num1].ifIndex;
mplsLdpEntityEntry[num3].ifIndex = MplsPortDataTable1.mplsModule[num].portData[num1].ifIndex;
mplsLdpEntityEntry[num3].protocolVersion = 1;
mplsLdpEntityEntry[num3].adminStatus = 1;
mplsLdpEntityEntry[num3].operStatus = 1;
mplsLdpEntityEntry[num3].wellKnownTcpDiscoveryPort = 646;
mplsLdpEntityEntry[num3].wellKnownUdpDiscoveryPort = 646;
mplsLdpEntityEntry[num3].maxPduLength = 4096;
mplsLdpEntityEntry[num3].keepAliveHoldTimer = 45;
mplsLdpEntityEntry[num3].helloHoldTimer = 15;
mplsLdpEntityEntry[num3].failedInitSessiontrapenable= 2;
mplsLdpEntityEntry[num3].failedInitSessionThreshold = 8;
mplsLdpEntityEntry[num3].labelDistributionMethod = 1;
mplsLdpEntityEntry[num3].labelretentionmode = 1;
/********************************************************************/
/* wengqing modify
*/
/********************************************************************/
#ifdef __INSTALL_V22
if(((MplsPortDataTable1.mplsModule[num].cardType >=MPLS_CARDTYPE_MPU)
&&(MplsPortDataTable1.mplsModule[num].cardType <=MPLS_MPU_END))||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_APCLIC_END)||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_GEI &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_GEICARD_END))
#else
if(MplsPortDataTable1.mplsModule[num].cardType==MPLS_CARDTYPE_MPU ||
(MplsPortDataTable1.mplsModule[num].cardType>=MPLS_CARDTYPE_LIC1 &&
MplsPortDataTable1.mplsModule[num].cardType<=MPLS_CARDTYPE_LIC10))
#endif
{
mplsLdpEntityEntry[num3].labelDistributionMethod = 1;
mplsLdpEntityEntry[num3].labelretentionmode = 1;
mplsLdpEntityEntry[num3].ldpId.labelSpace = mplsInterfaceConfEntry[num3].ifIndex;
}
else
{
mplsLdpEntityEntry[num3].labelDistributionMethod = 0;
mplsLdpEntityEntry[num3].labelretentionmode = 2;
mplsLdpEntityEntry[num3].ldpId.labelSpace = 0;
}
/********************************************************************/
/* wengqing modify end
*/
/********************************************************************/
mplsLdpEntityEntry[num3].pvLimitMismatchtrapenabled = 1;
mplsLdpEntityEntry[num3].pathvectorlimit = 0;
mplsLdpEntityEntry[num3].hopcountlimit = 0;
mplsLdpEntityEntry[num3].targetedpeer = 0;
mplsLdpEntityEntry[num3].targetedPeerAddrType = 1;
#if 0
mplsLdpEntityEntry[num3].targetedPeerAddr = 1;
#endif
if(MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_LANI &&
MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_ETH&&
MplsPortDataTable1.mplsModule[num].cardType!=MPLS_CARDTYPE_ETHIF)
mplsLdpEntityEntry[num3].optionalParameters = 2;
else
mplsLdpEntityEntry[num3].optionalParameters = 1;
#if 0
mplsLdpEntityEntry[num3].discontinuitytime = 1;
#endif
mplsLdpEntityEntry[num3].storagetype = 1;
/* */
if(mplsLdpParam.loopdetection == 5)
mplsLdpEntityEntry[num3].loopDetectionCapable = 5;
else if(mplsLdpParam.loopdetection == 1)
mplsLdpEntityEntry[num3].loopDetectionCapable = 1;
else
mplsLdpEntityEntry[num3].loopDetectionCapable = 1;
mplsLdpEntityEntry[num3].controlMode = 1;
mplsLdpEntityEntry[num3].ifName = mplsInterfaceConfEntry[num3].ifName;
/* added by sbp 1-11-22 */
mplsLdpEntityEntry[num3].backOff.min = 5;
mplsLdpEntityEntry[num3].backOff.max = 128;
mplsLdpEntityEntry[num3].backOff.delaying = 0;
mplsLdpEntityEntry[num3].backOff.waiting = 0;
mplsLdpEntityEntry[num3].mtu = 1500;
mplsLdpEntityEntry[num3].ifIndex = mplsInterfaceConfEntry[num3].ifIndex;
/* 初始化 generic label, 做 */
mplsLdpEntityConfGenericLabelRangeEntry[num3].ifName = mplsInterfaceConfEntry[num3].ifName;
mplsLdpEntityConfGenericLabelRangeEntry[num3].ifIndex = mplsInterfaceConfEntry[num3].ifIndex;
/* 初始化 atm parameter table */
mplsLdpEntityAtmParamsEntry[num3].RowStatus = 1;
mplsLdpEntityAtmParamsEntry[num3].entityLdpId = mplsLdpEntityEntry[num3].ldpId;
mplsLdpEntityAtmParamsEntry[num3].entityindex = mplsLdpEntityEntry[num3].index;
mplsLdpEntityAtmParamsEntry[num3].ifindexorzero = mplsLdpEntityEntry[num3].index;
mplsLdpEntityAtmParamsEntry[num3].mergecap = 2;
mplsLdpEntityAtmParamsEntry[num3].labelrangecomponents = 1;
mplsLdpEntityAtmParamsEntry[num3].vcdirectionality = 1;
mplsLdpEntityAtmParamsEntry[num3].lsrconnectivity = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -