📄 mplscmd.c
字号:
FilterNo = (unsigned short)para_group[0].param_un.param_int32;
if(is_no == SDP_CMD_FLAG_NO )
RetMsgNo = mplsQosFilterDelete(FilterNo);
else
return SDP_CMD_PARAM_ERROR;
return(mplsCommonErrorMsg(sty,RetMsgNo));
}
/************************************************************************
* FUNCTION NAME : cmd_mpls_lsp_filter_tunnel()
* DESCRIPTION: : binding the filter to tunnel
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
/************************************************************************/
int16 cmd_mpls_lsp_filter_tunnel(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short FilterNo;
unsigned short lspNo;
short RetMsgNo;
FilterNo = (unsigned short)para_group[0].param_un.param_int32;
lspNo = (unsigned short)para_group[1].param_un.param_int32;
if ( is_no == SDP_CMD_FLAG )
RetMsgNo = mplsQosFilterLspBind(FilterNo,lspNo,MPLS_OAM_CMD_FLAG);
else if(is_no == SDP_CMD_FLAG_NO )
RetMsgNo = mplsQosFilterLspBind(FilterNo,lspNo,MPLS_OAM_CMD_FLAG_NO);
else
return SDP_CMD_PARAM_ERROR;
return(mplsCommonErrorMsg(sty,RetMsgNo));
}
/************************************************************************
* FUNCTION NAME : cmd_mpls_advertise_label_for()
* DESCRIPTION: : advertise label for FEC policy
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
/************************************************************************/
int16 cmd_mpls_advertise_label_for(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short prefixList;
short RetMsgNo;
prefixList = (unsigned short)para_group[0].param_un.param_int32;
if ( is_no == SDP_CMD_FLAG )
RetMsgNo = mplsAdvertiseLabelFor(prefixList,MPLS_OAM_CMD_FLAG);
else if(is_no == SDP_CMD_FLAG_NO )
RetMsgNo = mplsAdvertiseLabelFor(prefixList,MPLS_OAM_CMD_FLAG_NO);
else
return SDP_CMD_PARAM_ERROR;
return(mplsCommonErrorMsg(sty,RetMsgNo));
}
/* configuration command end */
/* showing command begin */
/*********************************************************************************
* 函 数 名: sdp_show_mpls_lsr_id()
* 功 能: 显示路由器标识符(LSRID),如果路由器ID没有配置,则显示提示信息以配置路由器ID。
* 输 入: sty: 用于显示的结构;
* para_group: 操作中对应的参数域结构;
* is_no: 是一般命令还是no命令的标识;
* telnet_num: 当前的TELNET的序号
* 输 出: 无
* 返 回: 无条件地返回SDP_CMD_SUCCESS
* 全局变量: mplsLsrAttrEntry
* 修改记录:
- 修改日期 版本 修 改 人 修改原因及内容
=========================================================
- 01-7-25 1.0 孙保平 创建
*********************************************************************************/
int16 sdp_sh_mpls_lsr_id(struct sty *sty,SDP_PARAM_STRU *para_group,
int16 is_no,int16 telnet_num)
{
unsigned long ullsrid;
unsigned short tableLen;
tableLen = 1;
if (arrayLen[NOLSRATTR]<tableLen)
{
sdp_printf(sty," LsrId has not been configured, please config it! ");
sdp_printf(sty, "\n");
}
else
{
ullsrid=mplsLsrAttrEntry.lsrId;
sdp_printf(sty," %s"," LsrId: ");
sdp_printf(sty," %s",inettoa(ullsrid));
sdp_printf(sty, "\n");
}
return SDP_CMD_SUCCESS;
}
/************************************************************************
* FUNCTION NAME : sdp_sh_forwarding_table_all()
* DESCRIPTION: : show content of forwarding table
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
* sbp 2002-4-17 release memory
/************************************************************************/
int16 sdp_sh_forwarding_table_all(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short num1;
unsigned short num2;
unsigned short len;
unsigned long prefix;
char *str;
char *showStr[4];
labelAtm_t tempLabel;
interface_name_t interface;
if(arrayLen[NOLFIB]>0)
{
sdp_printf(sty," InLabel OutLabel Prefix or TunnelId Bytes OutIF NextHop ");
sdp_printf(sty, "\n");
for(num1=0; num1<arrayLen[NOLFIB]; num1++)
{
tempLabel = mplsForwardingEntry[num1].localLabel;
showStr[0] = changeLabelIntoStr(tempLabel);
tempLabel = mplsForwardingEntry[num1].remoteBinds[0].remoteBinds;
showStr[1] = changeLabelIntoStr(tempLabel);
len = mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.mask.maskLen;
prefix = mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.netaddr;
showStr[2] = changePrefixIntoStr(prefix,len);
interface = mplsForwardingEntry[num1].remoteBinds[0].outIf;
showStr[3] = changeInterfaceIntoStr(interface);
sdp_printf(sty, " %-9s%-10s%21s%-9u%-8s%-s",
showStr[0],
showStr[1],
showStr[2],
mplsForwardingEntry[num1].remoteBinds[0].bytes,
showStr[3],
inettoa(mplsForwardingEntry[num1].remoteBinds[0].nextHop));
sdp_printf(sty, "\n");
MPLS_MEM_FREE(showStr[0], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
MPLS_MEM_FREE(showStr[1], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
MPLS_MEM_FREE(showStr[2], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
MPLS_MEM_FREE(showStr[3], MPLS_OAM_MEM[IUMEM_OAM_32byte]);
}
}
return SDP_CMD_SUCCESS;
}
/************************************************************************
* FUNCTION NAME : sdp_sh_forwarding_table_network()
* DESCRIPTION: : show content of forwarding table by net address
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
/************************************************************************/
int16 sdp_sh_forwarding_table_network(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short num1;
uchar numFnd;
unsigned short len;
unsigned long netAddr;
unsigned short maskLen;
netAddr = para_group[0].param_un.param_int32;
maskLen = para_group[1].param_un.param_int32;
if(arrayLen[NOLFIB]>0)
{
numFnd = 0;
for(num1=0; num1<arrayLen[NOLFIB]; num1++)
{
if(mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.netaddr==netAddr &&
mplsForwardingEntry[num1].remoteBinds[0].prefixLspId.prefixOrLspid.destAddr.mask.maskLen==maskLen)
{
numFnd = 1;
mplsForwardingPrint(sty,num1,numFnd);
break;
}
}
}
return SDP_CMD_SUCCESS;
}
/************************************************************************
* FUNCTION NAME : sdp_sh_forwarding_table_local_atm()
* DESCRIPTION: : show content of forwarding table by local atm vpi/vci
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
/************************************************************************/
int16 sdp_sh_forwarding_table_local_atm(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short num1;
uchar numFnd;
unsigned short len;
unsigned short vpi;
unsigned short vci;
vpi = para_group[0].param_un.param_int32;
vci = para_group[1].param_un.param_int32;
if(arrayLen[NOLFIB]>0)
{
numFnd = 0;
for(num1=0; num1<arrayLen[NOLFIB]; num1++)
{
if(mplsForwardingEntry[num1].localLabel.type==1)
{
if(mplsForwardingEntry[num1].localLabel.label.atm.vpi==vpi &&
mplsForwardingEntry[num1].localLabel.label.atm.vci==vci)
{
numFnd = 1;
mplsForwardingPrint(sty,num1,numFnd);
break;
}
}
}
}
return SDP_CMD_SUCCESS;
}
/************************************************************************
* FUNCTION NAME : sdp_sh_forwarding_next_hop()
* DESCRIPTION: : show content of forwarding table by next hop
* OUTPUT : success or fail message
* AUTHOR/DATE : Sun Baoping/ 01.12.12
* GLOBAL :
* NOTE : ..
/************************************************************************/
int16 sdp_sh_forwarding_next_hop(struct sty *sty,SDP_PARAM_STRU *para_group,int16 is_no,int16 telnet_num)
{
unsigned short num1;
uchar numFnd;
unsigned short len;
unsigned long nextHop;
nextHop = para_group[0].param_un.param_int32;
if(arrayLen[NOLFIB]>0)
{
numFnd = 0;
for(num1=0; num1<arrayLen[NOLFIB]; num1++)
{
if(mplsForwardingEntry[num1].remoteBinds[0].nextHop==nextHop)
{
numFnd = 1;
mplsForwardingPrint(sty,num1,numFnd);
break;
}
}
}
return SDP_CMD_SUCCESS;
}
/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -