7.4 二层交换机代码结构
为了方便移植,我们的交换机程序采取模块化编写(包处理、交换部分的实现与硬件无关),为了不给系统增加额外的开销,本交换机没有移植操作系统。
|
模块 |
相关函数 |
描述 |
|
硬件模块 |
void hw_write_regUx(); void hw_write_entry(); void hw_read_regUx (); void hw_read_entry(); |
read_reg (),write_reg()读写寄存器,根据情况写8-bit、16-bit、32-bit位数; read_entry(),write_entry()读写SRAM中的Entry,根据情况写8-bit、16-bit、32-bit位数 |
|
系统模块 |
void sys_init_switch(); void sys_reset_switch(); void sys_poweroff_switch(); void sys_reboot_switch(); void sys_AutoPollOn(); void sys_ AutoPollOff(); void sys_ Init_boad(); |
设置交换机硬件初始化配置; 系统复位; 关闭系统; 重启系统; Auto-Polling使能; Auto-Polling禁能; 系统初始化; |
|
端口模块 |
int GetLinkSTS(char portId) int GetPortEn (char portId) int port_set_PortEn(char portId,bool porten) int port_get_SpdDpx(char portId) int port_set_SpdDpx(char portId,bool auto,char dpx) |
得到链路状态; 得到端口的enable或disabled状态; 设置端口的enable或disabled 得到端口的速率,全双工状态 设置端口的速率,全双工状态 |


