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

📄 cli_cmd.c

📁 在freescale 的ne64上开发的源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
		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 + -