📄 cli_cmd.c
字号:
else
printf("UP ");
u8Val=0;
hwGetPortLink(port,&u8Val);
if(u8Val==1)
{
printf("UP ");
u8Val=0;
u16Val=0;
hwGetPortDplxSpd(port, &u8Val, &u16Val);
if(u8Val==1)
printf("Full/");
else
printf("Half/");
if(u16Val==1000)
printf("1000 ");
else if(u16Val==100)
printf("100 ");
else
printf("10 ");
}
else
{
printf("Down ");
printf("---/--- ");
}
if(locAutoCfg[port-1]==AN_MODE_EN)
printf("En. /");
else
printf("Dis./");
if(locDuplexCfg[port-1]==DPLX_MODE_FULL)
printf("Full/");
else
printf("Half/");
if(locSpeedCfg[port-1]==SPD_MODE_1000)
printf("1000 ");
else if(locSpeedCfg[port-1]==SPD_MODE_100)
printf("100 ");
else
printf("10 ");
u8Val=0;
hwGetPortFlowCtrl(port, &u8Val);
if(u8Val==1)
printf("En. ");
else
printf("Dis. ");
u16Val=0;
hwGetPortRate(port, 1, &u16Val);
if(u16Val==0)
printf("--");
else
printf("%d*64K",u16Val);
printf("\n\r");
}
}
void show_run_cmd(void)
{
UINT8 line=0;
UINT8 key=0;
UINT8 port,u8Val,i;
UINT16 u16Val;
char ip_str[16];
unsigned char addr[4] ;
printf("!system running configuration\n\r");
line++;
printf(" hostname %s\n\r",hostname);
line++;
printf(" password %s\n\r",password);
line++;
printf(" device description %s\n\r",device_descr);
line++;
#if 1
/*show ip address*/
if(localmachine.localip != 0)
{
memcpy(addr,&(localmachine.localip),4);
printf(" ip-address %d.%d.%d.%d",addr[0],addr[1],addr[2],addr[3]);
memcpy(addr,&(localmachine.netmask),4);
printf(" %d.%d.%d.%d\n\r",addr[0],addr[1],addr[2],addr[3]);
}
if(localmachine.defgw != 0)
{
memcpy(addr,&(localmachine.defgw),4);
printf(" gateway %d.%d.%d.%d\n\r",addr[0],addr[1],addr[2],addr[3]);
}
for(i=0;i<5;i++)
{
if(gTrapServer[i].addr!=0)
{
sprintf(ip_str,"%lu.%lu.%lu.%lu",(gTrapServer[i].addr>>24)&0x00ff,
(gTrapServer[i].addr>>16)&0x00ff,(gTrapServer[i].addr>>8)&0x00ff,
(gTrapServer[i].addr)&0x00ff);
printf(" snmp trap-server %d %s %u\n\r",i+1,ip_str,gTrapServer[i].port);
}
}
for(i=0;i<5;i++)
{
if(gCommunity[i].name[0]!=0)
{
if(gCommunity[i].ability==0)
printf(" snmp community %d %s ro\n\r",i+1,gCommunity[i].name);
else
printf(" snmp community %d %s rw\n\r",i+1,gCommunity[i].name);
}
}
#endif
printf(" management vlan %d %d\n\r",manager_first_vid,manager_second_vid);
hwGetLfp(&u8Val);
if(u8Val==1)
printf(" lfp enable\n\r");
else
printf(" lfp disable\n\r");
line++;
hwGetFef(&u8Val);
if(u8Val==1)
printf(" fef enable\n\r");
else
printf(" fef disable\n\r");
line++;
#if 0
byte=*addr++;
if(byte==1)
printf("cos enable\n\r");
else
printf("cos disable\n\r");
#endif
#if 1
dot3ah_enable_get(&u8Val);
if(u8Val==1)
printf(" dot3ah enable\n\r");
else
printf(" dot3ah disable\n\r");
line++;
#endif
dot3ah_port_get(&u8Val);
if(u8Val==1)
printf(" dot3ah port 1\n\r");
else
printf(" dot3ah port 2\n\r");
line++;
printf("!interface configuration\n\r");
line++;
for(port=1;port<=MAX_PORT;port++)
{
hwGetPortStat(port, &u8Val);
printf(" port %d ",port);
if(u8Val==1)
printf("no-shutdown\n\r");
else
printf("shutdown\n\r");
line++;
printf(" port %d ",port);
if(locDuplexCfg[port-1]==DPLX_MODE_FULL)
printf("full ");
else
printf("half ");
if(locAutoCfg[port-1]==AN_MODE_EN)
printf("enable\n\r");
else
printf("disable\n\r");
line++;
printf(" port %d speed %d\n\r",port,locSpeedCfg[port-1]);
line++;
hwGetPortFlowCtrl(port, &u8Val);
printf(" port %d ",port);
if(u8Val==1)
printf("flowcontrol enable\n\r");
else
printf("flowcontrol disable\n\r");
line++;
hwGetPortRate(port, 1, &u16Val);
printf(" port %d rate-tx %u\n\r",port,u16Val);
line++;
hwGetPortStorm(port, &u8Val, &u16Val);
if(u8Val==0)
{
printf(" port %d rate-bcast %u\n\r",port,u16Val);
printf(" port %d rate-m-bcast 0\n\r",port);
}
else if(u8Val==1)
{
printf(" port %d rate-bcast 0\n\r",port);
printf(" port %d rate-m-bcast %u\n\r",port,u16Val);
}
else
{
printf(" port %d rate-bcast 0\n\r",port);
printf(" port %d rate-m-bcast 0\n\r",port);
}
line+=2;
printf("\n\r");
line++;
#if 0
if(line>=16)
{
printf("--More--");
waitInput=1;
key= TERM_Read();
init_timer(cli_timer, CLI_TIMEOUT_TIME*TIMERTIC);
printf("\b\b\b\b\b\b\b\b");
printf(" ");
printf("\b\b\b\b\b\b\b\b");
line=0;
if(cli_reset==1 || key=='q' || key==CTRL_C)
{
return;
}
}
#endif
}
}
void show_if_statis_cmd()
{
UINT8 port,i;
UINT32 valHigh,valLow;
UINT8 line;
INT8 str[25];
printf("Port1: ");
if(localDTEType==OL100CR_X4X_V5)
printf("TX, ");
else
printf("FX1, ");
printf("Port2: ");
if(localDTEType==OL100CR_X4X_V5)
printf("FX\n\r");
else
printf("FX2\n\r");
printf("\n\r");
line=0;
for(port=1;port<=2;port++)
{
for(i=0;i<=30;i++)
{
hwGetPortCntStr(i,str);
if(hwGetPortCnt(port,i,&valHigh,&valLow) == ERROR)
continue;
if(valHigh==0)
printf("port%d %s : %lu\n\r",port,str,valLow);
else
printf("port%d %s : %lu:%010lu\n\r",port,str,valHigh,valLow);
line++;
#if 0
if(line>=20)
{
printf("--More--");
waitInput=1;
key= TERM_Read();
init_timer(cli_timer, CLI_TIMEOUT_TIME*TIMERTIC);
printf("\b\b\b\b\b\b\b\b");
printf(" ");
printf("\b\b\b\b\b\b\b\b");
line=0;
if(cli_reset==1 || key=='q' || key==CTRL_C)
{
return;
}
}
#endif
}
}
}
void port_full_enable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortCfg(i,1,1,locSpeedCfg[i-1])==ERROR)
{
//printf(" %%Failed to config port %d full duplex and auto enable\n\r",i);
continue;
}
}
}
}
void port_full_disable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortCfg(i,0,1,locSpeedCfg[i-1])==ERROR)
{
//printf(" %%Failed to config port %d full duplex and auto disable\n\r",i);
continue;
}
}
}
}
void port_half_enable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortCfg(i,1,0,locSpeedCfg[i-1])==ERROR)
{
//printf(" %%Failed to config port %d half duplex and auto enable\n\r",i);
continue;
}
}
}
}
void port_half_disable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortCfg(i,0,0,locSpeedCfg[i-1])==ERROR)
{
//printf(" %%Failed to config port %d half duplex and auto disable\n\r",i);
continue;
}
}
}
}
void port_speed_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
UINT16 spd;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
if(valid_input_number(cmd[3],10,1000,&spd)==0)
return;
if((spd!=10) && (spd!=100) && (spd!=1000))
{
printf(" %%Invalid input:%s\n\r",cmd[3]);
return;
}
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortCfg(i,locAutoCfg[i-1],locDuplexCfg[i-1],spd)==ERROR)
{
//printf(" %%Failed to config port %d speed\n\r",i);
continue;
}
}
}
}
void port_rate_tx_cmd(void)
{
UINT16 rate=0;
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtRateCfgFlag)
{
printf(" %%Failed because managed by local device\n\r");
return;
}
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
if(valid_input_number(cmd[3],0,3907,&rate)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortRate(i,1,rate)==ERROR)
{
//printf(" %%Failed to config port %d Tx Rate\n\r",i);
;
}
}
}
}
void port_rate_bcast_cmd(void)
{
UINT16 rate=0;
UINT8 ports[MAX_PORT/2];
UINT8 i,type;
UINT16 rateTmp;
if(rmtRateCfgFlag)
{
printf(" %%Failed because managed by local device\n\r");
return;
}
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
if(valid_input_number(cmd[3],0,3907,&rate)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
hwGetPortStorm(i, &type, &rateTmp);
if(type != STORM_TYPE_BCAST)
{
if(rateTmp != 0)
{
//printf(" %%Failed to config port %d broadcast storm control\n\r",i);
continue;
}
}
if(hwSetPortStorm(i, STORM_TYPE_BCAST, rate)==ERROR)
{
//printf(" %%Failed to config port %d broadcast storm control\n\r",i);
;
}
}
}
}
void port_rate_mbcast_cmd(void)
{
UINT16 rate=0;
UINT8 ports[MAX_PORT/2];
UINT8 i,type;
UINT16 rateTmp;
if(rmtRateCfgFlag)
{
printf(" %%Failed because managed by local device\n\r");
return;
}
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
if(valid_input_number(cmd[3],0,3907,&rate)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
hwGetPortStorm(i, &type, &rateTmp);
if(type!=STORM_TYPE_MBCAST)
{
if(rateTmp != 0)
{
//printf(" %%Failed to config port %d multi-broadcast storm control\n\r",i);
continue;
}
}
if(hwSetPortStorm(i, STORM_TYPE_MBCAST, rate)==ERROR)
{
//printf(" %%Failed to config port %d multi-broadcast storm control\n\r",i);
;
}
}
}
}
void port_flow_enable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortFlowCtrl(i, 1)==ERROR)
{
//printf(" %%Failed to config port %d flow control enable\n\r",i);
;
}
}
}
}
void port_flow_disable_cmd(void)
{
UINT8 ports[MAX_PORT/2];
UINT8 i;
if(rmtManageChk()==TRUE)
return;
for(i=0;i<MAX_PORT/2;i++)
ports[i]=0;
if(valid_port_list(cmd[1],ports)==0)
return;
for(i=1;i<=MAX_PORT;i++)
{
if(bitListTst(ports,i-1)==1)
{
if(hwSetPortFlowCtrl(i, 0)==ERROR)
{
//printf(" %%Failed to config port %d flow control disable\n\r",i);
;
}
}
}
}
void lfp_enable_cmd(void)
{
if(rmtManageChk()==TRUE)
return;
if(hwSetLfp(1)==ERROR)
//printf(" %%Failed to config LFP enable\n\r");
;
}
void lfp_disable_cmd(void)
{
if(rmtManageChk()==TRUE)
return;
if(hwSetLfp(0)==ERROR)
//printf(" %%Failed to config LFP disable\n\r");
;
}
void fef_enable_cmd(void)
{
if(rmtManageChk()==TRUE)
return;
if(hwSetFef(1)==ERROR)
//printf(" %%Failed to config FEF enable\n\r");
;
}
void fef_disable_cmd(void)
{
if(rmtManageChk()==TRUE)
return;
if(hwSetFef(0)==ERROR)
//printf(" %%Failed to config FEF diable\n\r");
;
}
void device_descr_cmd(void)
{
if(strlen(cmd[1]) > 15)
{
printf(" %%descrption must be less than 16 characters\n\r");
return;
}
strcpy(device_descr,cmd[1]);
}
void dot3ah_port_cmd(void)
{
UINT16 port;
if(valid_input_number(cmd[2],1,2,&port)==0)
return;
if(dot3ah_port_set((UINT8)port)==ERROR)
//printf(" %%Failed to config dot3ah port\n\r");
;
}
void dot3ah_enable_cmd(void)
{
if(dot3ah_enable_set(1)==ERROR)
//printf(" %%Failed to config dot3ah enable\n\r");
;
}
void dot3ah_disable_cmd(void)
{
if(dot3ah_enable_set(0)==ERROR)
{
//printf(" %%Failed to config dot3ah disable\n\r");
return;
}
rmtCfgFlag = 0;
rmtRateCfgFlag = 0;
}
void dot3ah_active_cmd(void)
{
if(dot3ah_mode_set(1)==ERROR)
//printf(" %%Failed to config dot3ah active\n\r");
;
}
void dot3ah_passive_cmd(void)
{
if(dot3ah_mode_set(0)==ERROR)
//printf(" %%Failed to config dot3ah passive\n\r");
;
}
void show_dot3ah_cmd(void)
{
dot3ah_info_show();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -