📄 mplscmd.c
字号:
{
uchar maxhop;
unsigned short RetMsgNO;
maxhop = para_group[0].param_un.param_int32;
RetMsgNO = mplsHopCountLimit(maxhop,is_no);
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_loopdetection() */
/* DESCRIPTION: : config ldp protocol loopdetection */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : .. */
/************************************************************************/
int16 cmd_mpls_ldp_loopdetection(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short RetMsgNO;
RetMsgNO = mplsLdpLoopDetection(is_no);
if(is_no!=MPLS_OAM_CMD_FLAG)
RetMsgNO = MPLS_LOOP_DETECT_AGGREGATE;
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_loopdetection() */
/* DESCRIPTION: : config ldp protocol loopdetection */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : .. */
/************************************************************************/
int16 cmd_mpls_ldp_discovery_holdtime(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned long time;
unsigned short RetMsgNO;
time = para_group[0].param_un.param_int32;
RetMsgNO = mplsHelloHoldtimer(time,is_no);
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_holdtime() */
/* DESCRIPTION: : config ldp session holdtime */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : .. */
/************************************************************************/
int16 cmd_mpls_ldp_holdtime(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned long time;
unsigned short RetMsgNO;
time = para_group[0].param_un.param_int32;
RetMsgNO = mplsSessionHoldtimer(time,is_no);
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_holdtime() */
/* DESCRIPTION: : config ldp session holdtime */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : .. */
/************************************************************************/
int16 cmd_egress_targeted_proxy(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
/*unsigned long ipaddr;
unsigned long ipmask;
unsigned short RetMsgNO;
ipaddr = para_group[0].param_un.param_int32;
ipmask = para_group[1].param_un.param_int32;
RetMsgNO = mplsProxyEgress(ipaddr, ipmask, is_no);
return(mplsCommonErrorMsg(sty,MPLS_EGRESS_FOR_CONFIG)); /* change RetMsgNO to MPLS_EGRESS_FOR_CONFIG by lixia*/
unsigned long addr;
unsigned long mask;
unsigned long nexthop;
int16 ResMsgNo;
addr = para_group[0].param_un.param_int32;
mask = para_group[1].param_un.param_int32;
nexthop = 0x0;
if(is_no==SDP_CMD_FLAG)
ResMsgNo=mpls_insert_into_policy_tab(MPLS_POLICY_EGRESS,addr,mask,nexthop,MPLS_POLICY_DST_MSK);
else
ResMsgNo=mpls_delete_from_policy_tab(MPLS_POLICY_EGRESS,addr,mask,nexthop,MPLS_POLICY_DST_MSK);
return(mplsLspResMsgNo(sty,ResMsgNo));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_control_mode() */
/* DESCRIPTION: : config control mode */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : .. */
/************************************************************************/
int16 cmd_mpls_ldp_control_mode(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
uchar ctrMode;
unsigned short RetMsgNO;
ctrMode = para_group[0].param_un.param_int32;
ctrMode = changeMplsRealNum(ctrMode);
RetMsgNO = mplsLdpCtrMode(ctrMode,is_no);
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/************************************************************************/
/* FUNCTION NAME : cmd_mpls_ldp_control_mode() */
/* DESCRIPTION: : config control mode */
/* OUTPUT : success or fail message */
/* AUTHOR/DATE : sbp 2002-6-17 */
/* GLOBAL : NONE */
/* NOTE : ..
/* 2002.11.28 sbp transport address 配置与数据无关 */
/************************************************************************/
int16 cmd_mpls_ldp_discovery_trans_addr(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned long ipaddr;
uchar moduleNo;
uchar portNo;
unsigned short ifIndex;
unsigned short RetMsgNO;
moduleNo = globalModule[telnet_num];
portNo = globalPort[telnet_num];
ifIndex = globalIfIndex[telnet_num];
ipaddr = para_group[0].param_un.param_int32;
if ( is_no == SDP_CMD_FLAG )
{
if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)
{
if(mplsIfConf[moduleNo].port[portNo-1].TransPortAddr != 0)
return(mplsCommonErrorMsg(sty,MPLS_TRANSPORT_ADDR_FIRST_DELETE));
mplsIfConf[moduleNo].port[portNo-1].TransPortAddr = ipaddr;
mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen |= MPLS_TRANS_ADDR;
}
else
{
if(mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr != 0)
return(mplsCommonErrorMsg(sty,MPLS_TRANSPORT_ADDR_FIRST_DELETE));
mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr = ipaddr;
mplsIfConf[moduleNo-1].port[portNo-1].Ip_maskLen |= MPLS_TRANS_ADDR;
}
mplsIpReset();
return MPLS_OAM_CMD_SUCCESS;
}
else
{
if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000)
{
mplsIfConf[moduleNo].port[portNo-1].TransPortAddr = 0;
}
else
{
mplsIfConf[moduleNo-1].port[portNo-1].TransPortAddr = 0;
}
mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen &= NO_MPLS_TRANS_ADDR;
RetMsgNO = mplsLdpdisTransAddr(moduleNo,portNo,ifIndex,ipaddr,is_no);
}
return(mplsCommonErrorMsg(sty,RetMsgNO));
}
/*********************************************************************************
* 函 数 名: cmd_mpls_ip_default()
* 功 能: 启动LDP并设置默认参数。
* 输 入: sty: 用于显示的结构;
* para_group: 操作中对应的参数域结构;
* is_no: 是一般命令还是no命令的标识;
* telnet_num: 当前的TELNET的序号
* 输 出: 无
* 返 回: 无条件地返回SDP_CMD_SUCCESS
* 全局变量: mplsLsrAttrEntry
* 修改记录:
- 修改日期 版本 修 改 人 修改原因及内容
=========================================================
- 01-7-25 1.0 孙保平 创建
*********************************************************************************/
int16 cmd_mpls_ip_default(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
/* cmdfun.c */
int16 RetMsg;
RetMsg = mplsMibInitWholeDefaultSend(is_no);
return(mplsCommonErrorMsg(sty,RetMsg));
}
/*********************************************************************************
* 函 数 名: cmd_mpls_ip_if_default_3()
* 功 能: 启动单个端口的LDP并设置默认参数。
* 输 入: sty: 用于显示的结构;
* para_group: 操作中对应的参数域结构;
* is_no: 是一般命令还是no命令的标识;
* telnet_num: 当前的TELNET的序号
* 输 出: 无
* 返 回: 无条件地返回SDP_CMD_SUCCESS
* 全局变量: globalModule ,globalPort , globalIfIndex
* 修改记录:
- 修改日期 版本 修 改 人 修改原因及内容
=========================================================
- 01-7-25 1.0 孙保平 创建
* 2002.11.28 sbp MPLS IP 配置与数据无关
* sbp 2002-12-24 data online
*********************************************************************************/
int16 cmd_mpls_ip_if_default_3(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
uchar moduleNo;
uchar portNo;
unsigned short ifIndex;
int16 RetMsgNo;
moduleNo = globalModule[telnet_num];
portNo = globalPort[telnet_num];
ifIndex = globalIfIndex[telnet_num];
if (arrayLen[NOLSRATTR]<1)
{
return(mplsCommonErrorMsg(sty,MPLS_LSRID_NOT_CONFIG));
}
if(is_no==SDP_CMD_FLAG_NO)
{
/* wengqing 2003-7-8 */
if(mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M1000 || (mplsOamLocalPlatformType==MPLS_OAM_PLATFORM_M2000 && moduleNo == 0))
{
mplsIfConf[moduleNo].port[portNo-1].Ip_maskLen &=NO_MPLS_IP;
}
else
{
mplsIfConf[moduleNo-1].port[portNo-1].Ip_maskLen &=NO_MPLS_IP;
}
/* sbp 2002-12-24 data online */
mplsDataDel( moduleNo,portNo,ifIndex);
RetMsgNo = MPLS_OAM_CMD_SUCCESS;
}
else
RetMsgNo = mplsMibInitIfDefaultSend(moduleNo,portNo,ifIndex,is_no);
return(mplsCommonErrorMsg(sty,RetMsgNo));
}
/************************************************************************
* FUNCTION NAME : cmd_mpls_tunnel_destination()
* DESCRIPTION: : configure tunnel destination
* INPUT : ipaddr, ipmask, is_no
* OUTPUT : success or fail message
* AUTHOR/DATE : sbp 2002-7-1
* GLOBAL :
* NOTE : ..
/************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -