一种基于P4的可编程数据平面交换原型的设计与实现制造技术

技术编号:19352238 阅读:267 留言:0更新日期:2018-11-07 17:32
本发明专利技术属于可编程数据平面交换机领域,公开了一种基于P4的可编程数据平面交换原型系统,数据平面采用AXI4‑Stream总线实现流水线结构,对进入数据通路的数据进行分阶处理,流水线上的每一阶是一个独立的IP core;使用Verilog硬件描述语言开发输入仲裁模块用于对4个GE以太网口以及DMA通道数据进行仲裁;用P4‑SDNet编译器将用户开发的P4应用编译为HDL模块用于实现数据包的处理与转发;使用Verilog硬件描述语言开发输出缓存队列模块用于将数据包输出至外部网口。用户只需将编写好的P4程序编译并加载至本系统,便可实现其用P4描述的网络功能。利用几块本开发板便可部署小型P4网络测试系统,对于P4的教学演示和科研用途具有一定的实用价值。

【技术实现步骤摘要】
一种基于P4的可编程数据平面交换原型的设计与实现
本专利技术属于可编程数据平面交换机领域,尤其涉及一种基于P4的可编程数据平面交换原型系统。
技术介绍
目前,业内常用的现有技术是这样的:软件定义网络SDN因其使网络拥有者和运营商能够对网络行为进行编程而取得了巨大的成功。然而,其可编程性目前仅局限于网络控制平面,其转发平面在很大程度上受制于功能固定的包处理硬件。P4(可编程协议无关包处理器)旨在完全摆脱网络数据平面的束缚,让网络研究者可以自上而下地定义数据包的完整处理流程。自2014年在SIGCOMMCCR上首次发表的P4论文“P4:ProgrammingProtocol-IndependentPacketProcessors”以来,P4研究就引起了工业界和学术界的极大关注。业内专家和主要学术团队在P4方面的论文主要集中在网络流量可视化INT、带状态转发、自定义协议无关转发等应用。而以上文献中P4应用功能的验证工作均借由P4语言联盟(www.P4.org)发布的开源P4开发测试框架完成,即利用P4编译器将编译得到的JSON格式文件配置到bmv2软件交换机中,并使用mininet工具进行相关功能的仿真验证,而非在真实网络场景下部署测试。另外,2017年5月在P4DeveloperDay中演示的P4-NetFPGA可将其开发的最新NetFPGASUME板卡作为P4目标交换机来测试验证P4功能的正确性。但SUME板必须插在带有PCIE接口的主机上方可实现对应处理器上应用软件的运行,给构建含多个P4交换机的网络系统带来不便。综上所述,现有技术存在的问题是:现有P4应用的测试方式均借由bmv2软件交换机和mininet工具仿真完成,未能真实的部署至物理环境中,导致对开发的P4应用功能的验证结果缺乏一定的准确性和可信性。而各大厂商推出的P4开发平台的处理器系统和可编程交换芯片相互独立,由不同的器件实现,再加上外围电路,使得交换机体积大,功耗高,这在教学演示和科研中非常不便。解决上述技术问题的难度和意义:本专利技术提出利用具有高集成度,高性能和低功耗特点的SOC实现P4开发原型系统以满足教学和科研需求。它将全可编程SOC作为目标交换机来加载P4应用,实现了P4应用在可编程逻辑芯片FPGA上的配置运行。P4研究人员可利用本原型系统在真实物理环境下运行其开发的P4应用,并完成相关功能的测试。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种基于P4的可编程数据平面交换原型系统。本专利技术是这样实现的,一种基于P4的可编程数据平面交换原型系统,所述基于P4的可编程数据平面交换方法数据层面采用AXI4-Stream总线实现流水线结构,对进入数据通路的数据进行分阶处理,流水线上的每一阶是一个独立的IPcore;使用Verilog硬件描述语言开发输入仲裁模块用于对4个GE以太网口以及DMA通道数据进行仲裁;用P4-SDNet编译器将用户开发的P4应用编译为HDL模块用于实现数据包的处理与转发;使用Verilog硬件描述语言开发输出缓存队列模块用于将数据包输出至外部网口。进一步,所述基于P4的可编程数据平面交换系统数据包传输通路具体如下:接收来自千兆电口的以太网数据包;利用输入仲裁模块将来自4个ETH通道和DMA通道的5个并行数据通路转换为串行数据通路;利用P4语言编写的应用所生成的IP核完成用户自定义协议的网络数据包的处理及转发工作;缓存待输出的数据报文,包含5个队列,根据TUSER通道中的DST_PORT,将输出至eth口的报文存储到对应的4个队列中,输出到DMA虚拟4个TX的报文全部存储到一个队列中;发送对应输出队列中的数据至千兆电口。进一步,所述基于P4的可编程数据平面交换系统设计方法进一步包括:步骤一,使用P4-SDNet编译器将用户开发的P4应用编译为HDL源码模块,用于网络系统主数据通路中数据包转发端口查找;步骤二,使用Verilog硬件描述语言开发输入仲裁模块,用于对4个GE以太网口数据以及DMA通道数据进行仲裁;步骤三,使用Verilog硬件描述语言开发输出队列模块,用于缓存数据包并将数据包输出至外部网口;步骤四,利用Vivado工具将上述三个子模块封装为交换机主数据通路user_datapathIP核;步骤五,在Vivado中新建工程,配置系统运行所需的其它IP核,完成系统模块间的连接,添加引脚约束以及时序约束,最后综合、实现以及生成FPGA配置比特流文件。本专利技术的另一目的在于提供一种所述基于P4基于P4的可编程数据平面交换系统,所述基于P4的可编程数据平面交换系统包括:TMAC模块,以太网控制器完成了数据链路层功能,用于接收来自千兆电口的以太网数据包或将本平台处理过的数据包发送至千兆网口;输入仲裁模块,用于将5个并行数据通路转换为串行数据通路,并将包含有输入端口的信息以“独热码”编码方式存入AXI-Stream总线的TUSER信号通道中;输出端口查找模块,即利用P4语言编写的应用所生成的IP核,其完成了用户自定义的网络数据包处理及转发工作;输出缓冲队列模块,用于缓存待输出的数据报文,包含5个队列,根据TUSER通道中的DST_PORT,将输出至eth口的报文存储到对应的4个队列中,输出到DMA虚拟4个TX的报文全部存储到一个队列中,并发至下一模块。所述基于P4的可编程数据平面交换原型系统进一步包括:数据通道千兆网络接口,包含四个10/100/1000Mb/s三速自适应RJ45电口,由物理层芯片PHY经通信专用总线SGMII接入可编程逻辑单元,提供网络通信路径;物理层芯片PHY提供多种附加网络功能;三速以太网模块,构建MDIO接口用来连接PHY以管理其上的寄存器,用于配置PHY功能、查看状态、处理中断;user_datapath模块,利用可编程逻辑资源实现的用于实现网络数据包处理转发的主数据通路模块。所述user_datapath模块进一步包括:input_arbiter模块、output_lookup模块以及ouput_queue模块。本专利技术的另一目的在于提供一种应用所述基于P4的可编程数据平面交换方法的交换机。本专利技术的另一目的在于提供一种应用所述基于P4的可编程数据平面交换方法的计算机程序。综上所述,本专利技术的优点及积极效果为:本专利技术基于zynq-7000全可编程SOC硬件芯片上完成网络系统设计,将P4编写的协议无关转发包处理器作为一个采用标准AXI4总线协议的HDL模块配置于本硬件系统中,构建了基于P4的可编程数据平面交换机系统,实现了软件定义网络中交换机数据平面可编程性。系统设计所使用的FPGA硬件平台为叠锶公司基于Xilinxzynq-7000系列芯片开发的ONetSwitch30产品,它以可编程逻辑单元与处理器为核心,配备高速率网络接口,通过板上丰富的可编程逻辑单元便可实现数据通道处理的全可编程性。本专利技术设计了基于P4的可编程数据平面交换机,相较于传统的交换机而言,实现了数据平面的可编程性协议无关转发功能。通过编写P4程序并配置加载到本专利技术中便可灵活、快速地开发新的网络功能,比如新的自定义功能或标准的数据包头规范和转发行为。本专利技术中开发的输入仲裁模块、输出队列模块以及调用配置的其它IP核的输入输出本文档来自技高网
...

【技术保护点】
1.一种基于P4的可编程数据平面交换方法,其特征在于,所述基于P4的可编程数据平面交换方法数据层面采用AXI4‑Stream总线实现流水线结构,对流入的数据进行分阶处理,流水线上的每一阶是一个独立的IP core;使用Verilog硬件描述语言开发输入仲裁模块用于对4个GE以太网口以及DMA通道数据进行仲裁;用P4‑SDNet编译器将用户开发的P4应用编译为HDL模块用于实现数据包的处理与转发;使用Verilog硬件描述语言开发输出缓存队列模块用于将数据包输出至外部网口。

【技术特征摘要】
1.一种基于P4的可编程数据平面交换方法,其特征在于,所述基于P4的可编程数据平面交换方法数据层面采用AXI4-Stream总线实现流水线结构,对流入的数据进行分阶处理,流水线上的每一阶是一个独立的IPcore;使用Verilog硬件描述语言开发输入仲裁模块用于对4个GE以太网口以及DMA通道数据进行仲裁;用P4-SDNet编译器将用户开发的P4应用编译为HDL模块用于实现数据包的处理与转发;使用Verilog硬件描述语言开发输出缓存队列模块用于将数据包输出至外部网口。2.如权利要求1所述的基于P4的可编程数据平面交换原型系统,其特征在于,所述基于P4的可编程数据平面数据包流水线处理通路具体如下:接收来自千兆电口的以太网数据包;利用输入仲裁模块将来自4个ETH通道和DMA通道的5个并行数据通路转换为串行数据通路;利用P4语言编写的应用所生成的IP核完成用户自定义协议数据包的处理及转发工作;缓存待输出的数据报文,包含5个队列,根据TUSER通道中的DST_PORT,将输出至eth口的报文存储到对应的4个队列中,输出到DMA虚拟4个TX的报文全部存储到一个队列中;发送对应输出队列中的数据至千兆电口。3.如权利要求1所述的基于P4的可编程数据平面交换方法,其特征在于,所述基于P4的可编程数据平面交换系统设计流程进一步包括:步骤一,使用P4-SDNet编译器将用户开发的P4应用编译为HDL源码模块,用于网络系统主数据通路中数据包转发端口的查找;步骤二,使用Verilog硬件描述语言开发输入仲裁模块,用于对4个GE以太网口以及DMA通道数据进行仲裁;步骤三,使用Verilog硬件描述语言开发输出队列模块,用于缓存数据包并将数据包输出至外部网口;步骤四,利用Vivado工具将上述三个子模块封装为交换机主数据通路user_datapathIP核;步骤五,在Vivado中新建工程,配...

【专利技术属性】
技术研发人员:陈果赵国强吴高寒
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1