




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA防火墙系统设计V20目录FPGA防火墙系统设计V201目录21系统介绍411系统功能412性能指标413应用环境514开发环境6141软件环境6142所需硬件平台615开发进度72系统结构图83片上系统设计1031设计说明1032设计截图1133设计综合结果124系统软件设计1341系统初始化1342与用户进行交互1443软件匹配、流量管理145FPGA逻辑模块详细设计1551预处理模块(PRE_PRCS_TOP)15511功能说明15512模块框图16513模块接口信号定义1752流量统计模块FLOW_STS18521功能说明18522模块框图18523模块接口信号定义1853关键字产生模块(KEY_GEN)19531功能说明19532模块框图20533模块接口信号定义2054CAM接口模块(CAM_IF)21541功能说明21542模块框图22543模块接口信号定义2255CAM模块(CAM)23551功能说明23552模块框图24553模块接口信号定义2456包处理模块(DROP)25561功能说明25562模块框图25563模块接口信号定义2557处理器配置模块(CONF_IF)27571功能说明27572模块框图27573模块接口说明2758系统寄存器定义286仿真测试347板上调试378工作总结399系统应用4010展望4111参考文献421系统介绍本系统由服务器软件控制平台和FPGA硬件处理系统组成,其中FPGA硬件处理系统是整个系统的核心部分。系统管理员通过服务器的软件控制平台可以对FPGA硬件处理系统进行即时的配置,FPGA硬件处理系统按照系统管理员的配置进行工作,并会在检测到异常情况或者检测到用户敏感的流量或者数据包的时候通知服务器,服务器会向管理员发送通知。管理员可以在服务器软件平台上做进一步的分析处理。11系统功能本系统可以实现对10M/100M/1000M网络中流经该系统的各种类型的数据包进行流量统计、匹配过滤、捕获截取以及发送数据包等功能,具体如下。流量统计本系统能够对网络中的各类型数据包流量、各主机通信流量、通信流量与时间段的关系以及用户所关心的特定数据包类型进行流量统计。匹配过滤本系统能够根据管理员定义的过滤规则来对流经的数据包进行转发、捕获或者直接丢弃等处理。流量控制本系统能够针对流量统计模块提供的流量信息,决定相应的流量控制策略,对特定的主机进行流量控制。捕获分析本系统能够捕获网络中特定的数据包,进行分析,并可以发送给服务器由上层软件做进一步分析,并报告给系统管理员。设备测试本系统能够配置为设备测试,可以在网络中发送用户需要的数据包类型,并根据返回的数据包来测试网络中其他设备的性能。以上是系统的基本功能,在实现以上功能的基础上还可以实现更多的扩展功能,例如修改和伪造数据包,监听可疑用户,控制网络流量,屏蔽特定的服务器等。12性能指标网络流量10M/100M/1000M自适应丢包率小于005支持网络类型以太网说明以上为系统最终完成后预计的目标,系统最终的性能也与系统的硬件平台有关,经过大量完备的测试后才能确定。13应用环境现阶段设计的系统主要用在局域网入口,用来检测并过滤来自外部的恶意攻击,保护局域网内的用户,统计分析网络的流量情况,控制调整局域网的流量,过滤敏感的内容,监听可疑用户,并可以作为测试设备来测试局域网内其他网络设备的性能。防火墙系统统计分析互联网内部网络分析服务器图11系统应用环境如果最后实现的硬件平台支持,系统可以应用在主干网上,对主干网的数据包进行转发、过滤和捕获等处理,并可以对主干网的流量进行流量统计。14开发环境141软件环境开放过程中主要使用了以下软件环境UTRAEDIT1310XILINXISE82IXILINXEDK82IMODELSIMSE61BMICROSOFTOFFICEVISIO2003WIDPACKETSOMNIPEEK142所需硬件平台由于系统中需要处理器来对FPGA进行初始化配置,并与服务器控制台进行通信向服务器发送数据和对FPGA进行即时的配置,所以我们的需要有内部嵌入POWERPC内核的FPGA。同时在处理的过程中需要把一些捕获的数据包缓存在SDRAM或者DDRSDRAM,所以需要容量较大SDRAM。另外还需要硬件平台有两个网口(一个采用开发板上的网口,另外一个需要制作具有一个以上网络接口的扩展板)。所以我们需要在VIRTEXIIPRO开发平台上来实现我们设计的系统。2系统结构图PHY芯片CONF_IFPPC控制端主机RS232SERIALPORTFPGA132TRI_MODE_ETH_MACTRI_MODE_ETH_MAC_LOCALLINKPHY芯片DDRSDRAMCAM_IFDDR_IFCAMKEY_GENDROP876HD_RMVLEN_CALFCPREPROCESS43RXCLIENTFIFOTXCLIENTFIFOTRI_MODE_ETH_MACRXCLIENTFIFOTXCLIENTFIFOTRI_MODE_ETH_MAC_LOCALLINKFLOW_STS459CONFIGUREFLOWDATAFLOW图2系统结构图系统各模块说明1POWERPC处理器模块,对FPGA进行初始化配置,通过串口和主机通信,接收主机发送的命令并向主机发送数据。2CONFIGUREINTERFACE,FPGA逻辑与处理器的接口模块。3TRI_MODE_ETH_MAC_LOCALLINK,是XILINX使用IP核TRI_MODE_ETH_MAC做的一个参考设计,把从物理芯片MII信号转换成系统所需的数据信号。4PREPROCESS,预处理模块,对数据包进行预处理。其包含三个子模块。HD_RMV子模块把包头为ISL、VLAN和MPLS的数据包的包头去掉。LEN_CAL子模块计算数据包的字节长度。FC子模块1024X36的FIFO,缓存数据包并丢弃错误包。5FLOWSTATISTIC,流量统计模块,对局域网内的数据包流量进行统计。6KEYGENERATOR,从数据包中提取匹配关键字,并转发包至DROP模块。7CAMINTERFACE,CAM接口模块,把KEY_GEN模块生成的关键字在CAM中进行匹配,并根据匹配结果标记对数据包的处理方式。8CAM模块,32X256的CAM,存储匹配规则进行关键字匹配。9DROP,包过滤模块,根据CAM_IF标记的对数据包的处理方式来对数据包进行处理。我们目前设计的系统可以支持32种处理方式,在V20中我们可以使用了过滤和转发两种方式,对一个流的数据包有三种处理方式直接通过、直接丢弃、部分丢弃。这样就可以对某个主机或者某个主机的某个端口的数据实施阻止,实现对局域网流量的控制。3片上系统设计31设计说明系统主要由两大部分组成,分别是以处理器POWERPC405内核为核心的嵌入式系统,包括PPC405硬核、PLB总线、OPB总线、PLB2OPBBRIDGE、RS232_UART、PLB内存控制器以及GPIO等IP核以及自己开发的IP核。另一部分是进行流量统计和控制、过滤丢包等功能的FPGA硬件逻辑模块,由VERILOGHDL语言开发,用到了XILINX公司开发的MACCORE、CAMCORE等模块。然后在XILINXISE开发环境中建立了一个顶层模块,将两者连接起来,然后在POWERPC405处理器平台上进行软件开发。系统通过RJ45网口连入网络,通过板上的PS2接口连接键盘,作为片上系统的输入设备,然后通过串口连接到服务器上,向服务器输出系统的工作状态等信息。POWERPC通过PLB总线和内存控制器连接,并通过PLB2OPB桥接器、OPB总线与PS2、RS232_UART以及自己开发的IP核等低速设备连接。系统的软件可以在片内的RAM中运行。32设计截图33设计综合结果4系统软件设计根据系统设计的需要,我们需要使用FPGA内置的处理器POWERPC在系统启动时对硬件逻辑进行初始化配置,并在系统运行的过程中通过串口和控制端主机通信,接收主机发送的命令,对硬件逻辑进行即时的配置,并且能够向主机发送系统的工作状态、网络流量的统计数据和捕获到的特定的数据包数据等数据信息。系统的软件的任务主要可分为1对系统初始化配置;2与用户或者服务器控制台交互;3可以进行软件匹配、流量统计和流量控制。41系统初始化系统在上电工作时或者复位后由软件对系统进行初始化配置。包括对MACCORE的配置、数据包长度阈值的配置、CAM的配置、处理方式的配置和对流量统计和管理的配置等。上电或者复位后运行在处理器上的软件对硬件逻辑里的寄存器进行初始化配置。在硬件上将自己开发的挂接在OPB总线上的IP核MYFIREWALL的与硬件逻辑的CONF_IF模块的相应端口相连,PPC通过总线对MYFIREWALL中的寄存器直接进行读写,并通过这些总线直接访问的寄存器给给FPGA逻辑设计发送地址信号,数据信号,使能信号,清零信号和读写控制信号。信号时序图如下CPU_CE_N_CCXXXDATA0CPU_ADDR_CCCPU_RE_N_CCCPU_WDAT_CCCPU_WE_N_CCXXXCC_RDAT_CPUFPGA_CLKADDR0XXXADDR1DATA1ADDR3XXXADDR4XXXXXXDATA3DATA4具体的寄存器地址、位数以及意义等信息在58小节。42与用户进行交互系统在运行的过程中可以和用户进行交互,用户可以在服务器上上读取寄存器的配置信息,也可以修改寄存器的值,即时地改变系统的工作方式。软件通过串口连接到服务器来对用户显示系统的工作状态,并通过读取键盘等输入设备的输入或者通过串口接收服务器发送的命令来对与用户进行交互。在与用户交互过程中,通过在XPS提供的PS2的驱动上进一步开发,可以使得用户可以通过连在开发板上的键盘直接输入命令、地址和数据等信息。同时可以通过串口实时的向服务器发送工作状态等信息,并可以从串口接收数据。用户可以在服务器服务器上输入要匹配的信息,这些信息会被发送给系统的处理器POWERPC,并由处理器对FPGA进行配置,使系统在工作时从每个流经的数据包里提取相应的信息组成匹配关键字,并送到CAM中去匹配。然后根据匹配结果进行处理,处理方式在对系统配置时配置。43软件匹配、流量管理系统工作时是通过提取接收到的数据包总的关键字来进行匹配,根据匹配的结果和软件配置的处理方式来决定对数据包的处理方式。软件可以灵活地配置匹配关键字、处理方式等内容。在流量管理中,软件通过对硬件逻辑进行配置使硬件逻辑可以按照软件的配置根据SIP、DIP、SPORT、DPORT或者某种协议对各用户的流量进行统计,并将统计结果记录在相应的寄存器中。软件通过读取硬件逻辑寄存器中的统计信息和时间信息计算流量,如果某个用户流量超过一定阈值,就可以决定对其进行丢包处理或者部分丢包处理,从而可以管理整个局域网中的网络流量,并可以有效地阻止外来的恶意攻击或者网络内部的攻击。5FPGA逻辑模块详细设计51预处理模块(PRE_PRCS_TOP)PRE_PRCS_TOP模块由三个子模块组成HD_RMV,LEN_CAL和FC。511功能说明HD_RMV模块A把输入的八位数据转换为32位数据;B检测包头为ISL,VLAN和MPLS的数据包,并将其包头去除。LEN_CAL模块A计算数据包的长度B根据用户的配置来判断过长和过短的数据包,并做标记。FC模块A丢弃过长、过短和错误的数据包;B缓存数据包。512模块框图TRI_MODE_ETH_MAC_LOCALLINKPRE_PRCS_TOPRD_DATA_OUT70RD_SOF_NRD_EOF_NRD_SRC_RDY_NRD_DST_RDY_NCONF_IFCONF_WR_CALCONF_RD_CALCONF_CLR_CALCONF_ADDR_CAL30CONF_WDAT_CAL150CAL_RDAT_CONF150FLOW_STSPRE_SOP_STPRE_EOP_STPRE_DVLD_STPRE_MOD_ST10PRE_DAT_ST310ST_PB_PRESYS_CLKSYS_RST_NRX_FIFO_STATUS4B0PRE_PRCS_TOP模块由三个子模块HD_RMV,LEN_CAL和FC组成,其内部框图如下HD_RMVRD_DATA_OUT70RD_SOF_NRD_EOF_NRD_SRC_RDY_NRD_DST_RDY_NCAL_AFULL_RMVRX_FIFO_STATUS30SYS_CLKSYS_RST_NLEN_CALRMV_SOP_CALRMV_ERR_CALRMV_DAT_CAL310RMV_EOP_CALRMV_VLD_CALRMV_MOD_CAL10CONF_WR_CALCONF_RD_CALCONF_CLR_CALCONF_ADDR_CAL30CONF_WDAT_CAL150CAL_RDAT_CONF150FCCAL_SOP_FCCAL_MOD_FC10CAL_VLD_FCCAL_EOP_FCCAL_DAT_FC310CAL_SPKT_FCCAL_LPKT_FCCAL_EPKT_FCFC_AFULL_CALPRE_SOP_FSPRE_EOP_FSPRE_DVLD_FSPRE_MOD_FS10PRE_DAT_FS310FS_PB_PREPRE_PRCS_TOP513模块接口信号定义接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25MSYS_RST_NINPUT系统复位信号,低电平有效与TRI_MODE_ETH_MAC_LOCALLINK模块的接口信号RD_DATA_OUT70INPUTMACCORE输出的数据包数据RD_SOF_NINPUT标记数据包开始,低电平有效RD_EOF_NINPUT标记数据包结束,低电平有效RD_SRC_RDY_NINPUT数据源数据有效信号,低电平有效RD_DST_RDY_NOUTPUT可以接收信号,低电平有效RX_FIFO_STATUS30OUTPUT前端FIFO状态与FLOW_STS模块的接口信号PRE_SOP_STOUTPUT数据包头PRE_EOP_STOUTPUT数据包尾PRE_DVLD_STOUTPUT数据有效PRE_DAT_ST310OUTPUT数据PRE_MOD_ST10OUTPUT模式选择,EOP时候的数据有效的BYTE数004位有效01高三位有效10高两位有效11高一位有效ST_PB_PREINPUTPUSHBACK,表示不能继续收包与CONF_IF模块的接口信号CONF_WR_CALINPUTPPC写使能信号CONF_RD_CALINPUTPPC读使能信号CONF_CLR_CALINPUTPPC清零信号CONF_ADDR30INPUTPPC读写地址信号CONF_WDAT150INPUTPPC读数据CAL_RDAT_CONF150OUTPUTPPC写数据52流量统计模块FLOW_STS521功能说明统计数据包的各种SIP或者DIP或者SP或者DP的流量信息提供POWERPC读取接口用以读取流量信息522模块框图FLOW_STSPRE_PRCS_TOPDROPFS_SOP_KEYFS_EOP_KEYFS_DAT_KEY310FS_MOD_KEY10FS_DVLD_KEYKEY_PB_FSPRE_SOP_FSPRE_EOP_FSPRE_DVLD_FSPRE_MOD_FS10PRE_DAT_FS310FS_PB_PRESYS_CLKSYS_RST_NCONF_IFCONF_WR_FSCONF_RD_FSCONF_CLR_FSCONF_WDAT150CONF_ADDR70FS_RDAT_CONF150523模块接口信号定义说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25MSYS_RST_NINPUT系统复位信号,低电平有效接口信号方向功能描述与PRE_PRCS_TOP模块的接口信号PRE_SOP_STINPUTPRE_EOP_STINPUTPRE_DAT_ST310INPUTPRE_MOD_ST10INPUTPRE_DVLD_STINPUTST_PB_PREOUTPUT与KEY模块的接口信号ST_SOP_KEYOUTPUTST_EOP_KEYOUTPUTST_DAT_KEY310OUTPUTST_MOD_KEY10OUTPUTST_DVLD_KEYOUTPUTKEY_PB_STINPUT与CONF_IF模块的接口信号CONF_WR_FSINPUTCONF_RD_FSINPUTCONF_CLR_FSINPUTCONF_WDAT150INPUTCONF_ADDR70INPUTFS_RDAT_CONF150OUTPUT53关键字产生模块(KEY_GEN)531功能说明转发数据包至FLOW_STS模块从数据包中提取关键字KEY,并发送到CAM_IF模块用于匹配。532模块框图KEY_GENFOW_STSCAM_IFKEY_SOK_CIKEY_EOK_CIKEY_KEY_CI310KEY_KVLD_CIDROPKEY_SOP_DROPKEY_EOP_DROPKEY_DAT_DROP310KEY_MOD_DROP10KEY_DVLD_DROPDROP_PB_KEYST_SOP_KEYST_EOP_KEYST_DVLD_KEYST_MOD_KEY10ST_DAT_KEY310KEY_PB_STSYS_CLKSYS_RST_N533模块接口信号定义说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25MSYS_RST_NINPUT系统复位信号,低电平有效与FLOW_STS模块的接口信号ST_SOP_KEYINPUTST_EOP_KEYINPUTST_DAT_KEY310INPUTST_MOD_KEY10INPUTST_DVLD_KEYINPUTKEY_PB_STOUTPUT与DROP模块的接口信号接口信号方向功能描述KEY_SOP_DROPOUTPUTKEY_EOP_DROPOUTPUTKEY_DAT_DROP310OUTPUTKEY_MOD_DROP10OUTPUTKEY_DVLD_DROPOUTPUTDROP_PB_KEYINPUT与CAM_IF模块的接口信号KEY_SOK_CIOUTPUTKEY头(STATOFKEY)KEY_EOK_CILOUTPUTKEY尾(ENDOFKEY)KEY_KEY_CI310OUTPUTKEY内容KEY_KVLD_CIOUTPUTKEY有效54CAM接口模块(CAM_IF)541功能说明接收配置信息,确定匹配规则接收KEY_GEN产生的KEY,组成144位的查找关键字将查找关键字送入CAM中进行匹配根据查找结果决定处理方式将匹配结果返回到DROP模块542模块框图CAM_IFCAMCI_CMP_DMSK_CAM310CI_CMP_DIN_CAM310CI_EN_CAMCI_WE_CAMDROPSYS_CLKSYS_RST_NKEY_GENKEY_SOK_CIKEY_EOK_CIKEY_KEY_CI310KEY_KVLD_CICONFCONF_WR_CICONF_RD_CICONF_CLR_CICONF_ADDR_CI30CONF_WDAT_CI150CAL_RDAT_CI150CAM_MATCH_ADDR_CI70CAM_MATCH_CICAM_BUSY_CICI_WR_ADDR_CAM70CI_DAT_DROP30CI_ADDR_DROP70CI_VLD_DROPCI_DRP_DROPCI_DIN_CAM310543模块接口信号定义说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25MSYS_RST_NINPUT系统复位信号,低电平有效与KEY_GEN模块的接口信号KEY_SOK_CIINPUTKEY_EOK_CIINPUTKEY_KEY_CI310INPUTKEY_KVLD_CIINPUT与CAM模块的接口信号CI_DIN_CAM310OUTPUTDATAIN,写入CAM的数据CI_CMP_DIN_CAM310OUTPUTCOMPAREDATAIN需要匹配的数据接口信号方向功能描述CI_CMP_DMSK_CAM310OUTPUTCOMPAREDATAMASK,用来屏蔽CI_CMP_DIN_CAM310上某些不关心的位CI_EN_CAMOUTPUT片使能CI_WE_CAMOUTPUT写使能CI_WR_ADDR_CAM70OUTPUT要写入数据的地址CAM_BUSY_CIINPUTCAM忙,表示正在往CAM写数据CAM_MATCH_CIINPUT匹配命中CAM_MATCH_ADDR_CI70INPUT匹配命中地址与DROP模块的接口信号CI_VLD_DROPOUTPUT查找结果有效,每个数据包对应一个周期CI_DRP_DROPOUTPUT丢包CI_ADDR_DROP70OUTPUT匹配到的CAM地址CI_DAT_DROP30OUTPUT处理方式,留做扩展功能用55CAM模块(CAM)551功能说明宽度为32位,深度为256,可以对32位的匹配关键字进行匹配,并返回给CAM_IF模块匹配的结果和匹配地址。552模块框图CAM_IFCAMCI_DIN_CAM310CI_CMP_DIN_CAM310CI_EN_CAMCI_WE_CAMSYS_CLKCAM_MATCH_ADDR_CI70CAM_MATCH_CICAM_BUSY_CICI_WR_ADDR_CAM70CI_CMP_DMSK_CAM310553模块接口信号定义说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25M与CAM_IF模块的接口信号CI_CMP_DIN_CAM310INPUTCI_DIN_CAM310INPUTCI_EN_CAMINPUTCI_WE_CAMINPUTCI_WR_ADDR_CAM70INPUTCAM_BUSY_CIOUTPUTCAM_MATCH_CIOUTPUT接口信号方向功能描述CAM_MATCH_ADDR_CI70OUTPUT56包处理模块(DROP)561功能说明根据CAM_IF返回的匹配结果对数据包进行处理将转发的数据包数据包数据由32位转换为8位发送给TRIMODEETHERNETMACLOGICORE562模块框图CAM_IFDROPSYS_CLKSYS_RST_NKEY_GENKEY_SOP_DROPKEY_EOP_DROPKEY_DAT_DROP310KEY_MOD_DROP10KEY_DVLD_DROPDROP_PB_KEYCI_DAT_DROP30CI_ADDR_DROP70CI_DRP_DROPCI_VLD_DROPWR_DATA70WR_SRC_RDY_NWR_DST_RDY_NWR_SOF_NWR_EOF_NTRI_MODE_ETH_MAC_LOCALLINK563模块接口信号定义说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25M接口信号方向功能描述SYS_RST_NINPUT系统复位信号,低电平有效与KEY_GEN模块的接口信号KEY_SOP_DROPINPUTKEY_EOP_DROPINPUTKEY_DAT_DROP310INPUTKEY_MOD_DROP10INPUTKEY_DVLD_DROPINPUTDROP_PB_KEYOUTPUT与CAM_IF模块接口信号CI_VLD_DROPINPUTCI_DRP_DROPINPUTCI_ADDR_DROP70INPUTCI_DAT_DROP30INPUT与CONF_IF模块的接口信号CONF_WR_DROPINPUTCONF_RD_DROPINPUTCONF_CLR_DROPINPUTCONF_ADDR30INPUTCONF_WDAT150INPUTDROP_RDAT_CONF150OUTPUT与TRI_MODE_ETH_MAC_LOCALLINK模块的接口信号WR_DATA70OUTPUTWR_SOF_NOUTPUTWR_EOF_NOUTPUTWR_SRC_RDY_NOUTPUTWR_DST_RDY_NINPUT57处理器配置模块(CONF_IF)571功能说明从PPC单元接收配置信息,对FPGA内部逻辑进行配置。包括配置LEN_CAL、CAM_IF、DROP模块。572模块框图CONF_IFCONF_WR_CALCONF_RD_CALCONF_CLR_CALCONF_ADDR30CONF_WDAT150CAL_RDAT_CONF150SYS_CLKSYS_RST_NPPC_CE_N_CONFPPC_WE_N_CONFPPC_RE_N_CONFPPC_CLR_N_CONFPPC_ADDR_CONF70PPC_WDAT_CONF150CONF_RDAT_PPC150UCIICONF_WR_CICONF_RD_CICONF_CLR_CICI_RDAT_CONF150CONF_WR_DROPCONF_RD_DROPCONF_CLR_DROPDROP_RDAT_CONF150LEN_CALCAM_IFDROP573模块接口说明说明功能描述为空的信号表示已经在前面模块中描述过接口信号方向功能描述全局信号SYS_CLKINPUT系统时钟,25MSYS_RST_NINPUT系统复位信号,低电平有效与UCII模块的接口信号PPC_CE_N_CONFINPUTPPC_WE_N_CONFINPUTPPC_RE_N_CONFINPUT接口信号方向功能描述PPC_CLR_N_CONFINPUTPPC_ADDR_CONF70INPUTPPC_WDAT_CONF150INPUTCONF_RDAT_PPC150OUTPUT与LEN_CAL模块的接口信号CONF_WR_CALOUTPUTCONF_RD_CALOUTPUTCONF_CLR_CALOUTPUTCONF_ADDR30OUTPUTCONF_WDAT150OUTPUTCAL_RDAT_CONF150INPUT与CAM_IF模块的接口信号CONF_WR_CIOUTPUTCONF_RD_CIOUTPUTCONF_CLR_CIOUTPUTCONF_ADDR30OUTPUTCONF_WDAT150OUTPUTCI_RDAT_CONF150INPUT与DROP模块的接口信号CONF_WR_DROPOUTPUTCONF_RD_DROPOUTPUTCONF_CLR_DROPOUTPUTCONF_ADDR30OUTPUTCONF_WDAT150OUTPUTDROP_RDAT_CONF150INPUT58系统寄存器定义LEN_CAL模块0X00RESERVEDBITSNAMETYPEDEFAULTVALUEDESCRIPTION150RESERVEDR0X0RESERVED0X01SHORTPACKETSIZEBITSNAMETYPEDEFAULTVALUEDESCRIPTION150SHORT_PKT_SIZERW16D48SHORTPACKETSIZE0X02LONGPACKETSIZEBITSNAMETYPEDEFAULTVALUEDESCRIPTION150LONG_PKT_SIZERW160D1536LONGPACKETSIZE0X03SHORTPACKETNUMBERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150SHORT_PKT_CNTR0X0SHORTPACKETNUMBER0X04LONGPACKETNUMBERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150LONG_PKT_CNTR0X0LONGPACKETNUMBERCAM_IF模块0X10CAMWRITEADDRESSBITSNAMETYPEDEFAULTVALUEDESCRIPTION158RESERVEDR0X0RESERVED70CI_WR_ADDR_CAMRW0X0THEADDRESSOFTHEDATATOBEWRITETOCAMMUSTBEWRITENAFTER0X110X120X11THEDATATOBEWRITETOCAMBITSNAMETYPEDEFAULTVALUEDESCRIPTION150CI_DIN_CAM3116RW0X0THEDATATOBEWRITETOCAMSIP3116/DIP3116/SP0X12THEDATATOBEWRITETOCAMBITSNAMETYPEDEFAULTVALUEDESCRIPTION150CI_DIN_CAM150RW0X0THEDATATOBEWRITETOCAMSIP150/DIP150/DP0X1ARESULTTABLECONTROLBITSNAMETYPEDEFAULTVALUEDESCRIPTION15RST_WEARW0X0REDANDWRITECONTOL1WRITE0READ1413RESERVEDR0X0RESERVED12DROPRW0X0PACKETDROPCONTROL0PASS1DROP11SAMPLEENABLERW0X0SAMPLEENABLECONTROL0NOTENABLE1ENABLE108RESERVEDR0X070RST_ADDRARW0X0THEADDRESSOFTHEDATA0X1BMACMASKCONTROLBITSNAMETYPEDEFAULTVALUEDESCRIPTION154RESERVEDR0X0RESERVED3SIP_MTCH_ENRW0X1SIPMATCHENABLESIGNAL2DIP_MTCH_ENRW0X1DIPMATCHENABLESIGNAL1SP_MTCH_ENRW0X1SPMATCHENABLESIGNAL0DP_MTCH_ENRW0X1DPMATCHENABLESIGNALONEORMOREOFTHEFOURBITSCANBE10X1CTHESAMPLEDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150SAMPLEDATARW0X0SAMPLEENABLEDATAIFTHECORRESPONDINGBITIS1,ANDTHESAMPLEISENABLEDBIT11OFREGISTER1AIS1,THEPACKETWILLBEDROPEDTHEBITISDETERMINEDBYSP1512SP118SP74SP30DP1512DP118DP74DP30FLOW_STS模块0X30SD_SLECTREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION154RESERVEDR0X0RESERVED30SD_SLECTWR0X0SELECTWHATTOBESTATISTIC0001SELECTSIP,0010SELECTDIP,0100SELECTSP,1000SELECTDPONLYONEOFTHEFOURREGISTERSHOULDBE1IFMOREOFTHEMIS1,THENTHEHIGHERBITHAVEAHIGHERPRIORITYIFALLOFTHEMARE0,THENSIPISSELECTED0X31INIT_STARTREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION151RESERVEDR0X0RESERVED0INIT_STARTW0X0INITIALTHESTATISTICMEMORYMUSTBEWRITEAFTERSYSTEMSTARTEDWRITE1OR0BOTHMEANSTART0X32PPC_READ_ADDRREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION15PPC_RD_STARTW0X0PPCSTARTTOREADSTATISTICREGISTERPPCMUSTWRITETHISREGISTERFIRSTBEFOREREADSTATISTICWRITE1OR0BOTHMEANSTART148RESERVEDR0X0RESERVED70PPC_ADDRW0X0PPCREADADDRESSREGISTER0X33STARTTIMEREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIME3116RW0X0STARTTIMEOFTHESTREAM0X34STARTTIMEREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIME150RW0X0STARTTIMEOFTHESTREAMTHETIMEUNITIS42MS0X35BYTECOUNTREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150BYTE_CNT2611RW0X0BYTECOUNTOFTHESTREAM0X36BYTECOUNTANDPACKETCOUNTREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION155BYTE_CNT100RW0X0BYTECOUNTOFTHESTREAM40PKT_CNT2016RW0X0PACKETCOUNTOFTHESTREAM0X37PACKETCOUNTREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150BYTE_CNT150RW0X0PACKETCOUNTOFTHESTREAM0X38CURRENTTIMEREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150CURT_TIME3116RW0X0CURRENTTIMEOFTHESTREAM0X39CURRENTTIMEREGISTERBITSNAMETYPEDEFAULTVALUEDESCRIPTION150CURT_TIME150RW0X0CURRENTTIMEOFTHESTREAMTHETIMEUNITIS42MSMAC_IF模块0X40MACCORECONFIGUREDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIEEMACCONFIGVEC150RW0X0MACCORECONFIGUREDATAFORMOREDETAIL,PLEASEREFERTOPAGE93OFXILINXDOCUMENTTRI_MODE_ETH_MAC_UG138PDF0X41MACCORECONFIGUREDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIEEMACCONFIGVEC3116RW0X0MACCORECONFIGUREDATAFORMOREDETAIL,PLEASEREFERTOPAGE93OFXILINXDOCUMENTTRI_MODE_ETH_MAC_UG138PDF0X42MACCORECONFIGUREDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIEEMACCONFIGVEC4732RW0X0MACCORECONFIGUREDATAFORMOREDETAIL,PLEASEREFERTOPAGE93OFXILINXDOCUMENTTRI_MODE_ETH_MAC_UG138PDF0X43MACCORECONFIGUREDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIEEMACCONFIGVEC6348RW0X0MACCORECONFIGUREDATAFORMOREDETAIL,PLEASEREFERTOPAGE93OFXILINXDOCUMENTTRI_MODE_ETH_MAC_UG138PDF0X44MACCORECONFIGUREDATABITSNAMETYPEDEFAULTVALUEDESCRIPTION150TIEEMACCONFIGVEC6664RW0X0MACCORECONFIGUREDATAFORMOREDETAIL,PLEASEREFERTOPAGE93OFXILINXDOCUMENTTRI_MODE_ETH_MAC_UG138PDF6仿真测试现阶段系统框架已基本搭建完毕,系统功能还需要进一步扩充。现在可以完成对客户配置的源IP地址、目的IP地址、源端口、目的端口、特定长度的数据包进行过滤。对匹配用户制定的IP或端口的数据包予以丢弃,对长度不在规定范围内的包也予以丢弃,其他的数据包将被转发。下一阶段将添入更多自定义匹配规则的功能,成为真正意义上的防火墙。现在就目前实现的部分功能进行了一些测试,这些功能全部顺利完成。我们在测试文档里配置了敏感源IP地址为19216802,端口为32,敏感目的IP地址为19216803,端口为64。同时还定义了最小包长度为46,最大包长为1536。在测试中我们模拟了9个数据包如下(为观测方便每个数据包的最后一个数据值为该报的序列)包序号源地址源端口目的地址目的端口长度119216807801921680440852192168028019216803168931921680168019216806324541921680880192168073210651921680163219216801440102619216805801921680156410071921680232192168036412181921680780192168034085919216807801921680840123配置寄存器波形如下(1)当我们配置寄存器使得当所有地址匹配时才滤出数据包,通过观察我们定义的数据,可知包3与包7将会被丢弃。从MODELSIM仿真结果,可以看到包3与包7确实已经被丢弃了,其他包被转发。(2)当我们配置寄存器使得当源、目的IP地址匹配时才滤出数据包,通过观察我们定义的数据,可知包2、包3与包7将会被丢弃。从MODELSIM仿真结果,可以看到包2、包3与包7确实已经被丢弃了,其他包被转发。(3)当我们配置寄存器使得当目的IP地址匹配时才滤出数据包,通过观察我们定义的数据,可知包2、包3、包7与包8将会被丢弃。从MODELSIM仿真结果,可以看到包2、包3、包7与包8确实已经被丢弃了,其他包被转发。7板上调试调试方案在设计上本系统有RX和TX两套,RX负责监控进入局域网的数据,TX负责监控从局域网出去的数据。这就需要两个PHY片两个MAC核,但是限与开发板的限制(只有一个PHY片一个RJ45网口)我们只做了一套。因此在调试的时候就只能调试进或者出一路,但是这样对功能验证已经足够,因为RX和TX两套逻辑是一模一样的。我们调试用到了如下工具装有WINDOWS系统的PC机、双绞线(五类交叉线)、WIDPACKETSOMNIPEEK发包抓包软件。如下图所示PPOWERSUPPLYUSBCONFIGUREPORTSERIOUSPORTRJ45NETWORTPORTPS2INTERFACEOWERSUPPLY为电源。USBCONFIGUREPORT为烧写FPGA代码的接口。RJ45NETWORKPORT为100M网口,用交叉线连接到普通的PC机上,在PC机上用抓包和发包软件来与开发板通信。PS2INTERFACE用来接键盘,向系统输入数据,配置寄存器。SERIOUSPORT为串口,用来调试系统,显示FPGA运行情况。调试步骤第一步烧写基本的硬件代码,系统将收到的数据包按原样返回。结果已经成功第二步烧写基本的串口调试代码和PS2口代码,测试串口的可用性。结果已经成功。第三步烧写硬件代码软件代码串口代码PS2代码。结果能够读写内部寄存器、系统能够收到数据包、并按照配置规则进行过滤后通过网口发送回PC机8工作总结现阶段是系统的第二版,在第二版中我们完成了对整个系统的设计,实现了软硬件代码的编写和仿真工作,并在WIDOWS操作系统的PC机上应用串口通信软件实现用户交互平台。在XUPVIRTEXIIPRODEVELOPMENTSYSTEM硬件平台上进行了调试,基本实现了我们的设计,实现了流量统计、匹配过滤、流量控制等功能,由于没有时间涉及DDRSDRAM接口,捕获分析以及测试设备等功能没有完全实现,待在以后的版本中添加。我们首先对设计进行了比较充分的仿真测试,在MODELSIM中模拟真实数据环境对系统功能进行了测试,表明完全达到了设计初期提出的目标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢结构焊接设备管理方案
- 2025年套饰套装行业研究报告及未来行业发展趋势预测
- 湿地生物资源保护与可持续利用
- 公路建设项目资金预算管理方案
- 2025年纺织面料鞋制造行业研究报告及未来行业发展趋势预测
- 2025年榻榻米床垫行业研究报告及未来行业发展趋势预测
- 2025年单据收据行业研究报告及未来行业发展趋势预测
- 2025年墙贴行业研究报告及未来行业发展趋势预测
- 2026届吉林省榆树一中五校化学高一第一学期期中达标测试试题含解析
- 医院感染暴发应急试卷(附答案)
- 车床操作基本知识
- 第2课《开学的准备》(课件)心理健康二年级上册北师大版
- 《建筑水电安装精讲班讲义》课件
- 食堂从业人员开学前集中培训讲稿
- 公司入股投资合同范例
- 2025年秋新人教版数学一年级上册全册课件
- 电影鉴赏《头脑特工队》
- 《全新观光车操作与安全培训课件》
- 进出口贸易合规管理制度
- 介入手术交接流程
- 公共政策分析 课件 第0章 导论;第1章绪论:政策科学的“研究纲领”
评论
0/150
提交评论