一种基于FPGA的虚拟机网络数据包处理方法技术

技术编号:3847167 阅读:344 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于FPGA硬件的虚拟机网络数据包处理方法,使用FPGA硬件对数据包进行卸载过滤,将数据包从网卡的PHY传送给MAC和网络滤波引擎,MAC和网络滤波引擎对数据包进行过滤和分派,将同虚拟机编号的数据包存放到相应内存队列中,协议处理器对内存队列中的数据包进行卸载过滤,将同队列中数据包按端口号、IP地址、线程序号重新排列、整合成大数据包,并将大数据包存放到内存的大包队列中,当内存大包队列中的大数据包达到预定长度后,DMA控制器将大数据包通过PCIe传给虚拟机;本方法将数据包卸载过滤工作放到硬件中完成,完全解放了CPU,减少CPU资源占用,同时由于硬件处理速度远高于软件处理速度,大大提高了网络吞吐速度,缩短了数据处理的响应时间,减少丢包情况的出现。

【技术实现步骤摘要】

【技术保护点】
一种基于FPGA的虚拟机网络数据包处理方法,在网卡上设有FPGA,所述FPGA包括:MAC模块、网络滤波引擎、协议处理器、内存模块、描述器引擎、DMA控制器、PCIe模块、flash模块;特征在于,所述内存模块内创建一组原数据包队列和一组新数据包队列,所述原数据包队列给每个虚拟机划分一个接收区,所述新数据打包队列给每个虚拟机划分一个接收区,所述方法采用如下步骤: A、网卡将接收的数据包由网卡的物理层端口传给所述MAC模块和网络滤波引擎; B、所述MAC模块和网络滤 波引擎对接收到的数据包进行过滤和派分,所述MAC模块过滤出数据包的虚拟机编号,所述网络滤波引擎按照虚拟机编号对接收到的数据包进行分派,将同虚拟机编号的数据包存放到内存模块的原数据包队列的相应虚拟机接收区中; C、所述协议处理器对内存模 块的原数据包收队列中数据包进行卸载过滤,卸载过滤出所述数据包的端口号、IP地址、线程序号,将所述原数据包队列中同一虚拟机接收区内的数据包根据端口号、IP地址、线程序号信息重新排列整合,并将整合后的新数据包存放到所述内存模块的新数据包队列的相应虚拟机接收区中; D、当所述内存模块的新数据包队列中的新数据包数到达预定长度数目后,所述DMA控制器将所述新数据包通过PCIe模块上传给相应的虚拟机。...

【技术特征摘要】

【专利技术属性】
技术研发人员:曾宇方信我石旭郑臣明吴平
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:11[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1