一种基于FPGA的以太网帧与SDN数据帧的适配方法转让专利

申请号 : CN202110334210.4

文献号 : CN113225376B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张向利王俊凯蒋浩云董国华

申请人 : 桂林电子科技大学

摘要 :

本发明公开了一种基于FPGA的以太网帧与SDN数据帧的适配方法,对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射;基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧;基于对应的端口信息将所述SDN数据帧进行转发和接收;采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0;若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机,在以太网帧转换SDN数据帧的过程中,进行了准确的适配过程,提高了帧转换效率和准确率,进而提高FPGA的整体处理效率。

权利要求 :

1.一种基于FPGA的以太网帧与SDN数据帧的适配方法,其特征在于,包括以下步骤:对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射;

基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧;

基于对应的端口信息将所述SDN数据帧进行转发和接收;

采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0,包括:采用轮询机制将接收到的多个所述SDN数据帧缓存至FIFO中,并基于所述流表更新缓存的所述SDN数据帧中的信息;

若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机;

对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射,包括:

通过广电转换模块将上位机中的以太网帧传输至FPGA中的以太网IP核,并且,接收到的以太网帧是以GMII协议标准接收,同时按其时序要求用FIFO对以太网帧进行缓存;用计数器对以太网数据长度计数,计数完的长度信息由FIFO缓存;FIFO的以太网数据存储到以太网RAM实现对数据的随机访问,记录以太帧的IP地址与对应的mac地址维护arp表;

基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧,包括:当接收到所述以太网帧后,FPGA根据以太网帧中的目标IP地址在路由表RAM中查找转发路径,若查找成功,则将所述以太网帧转换为SDN数据帧,转换的流程如下:1)判断表项地址是否超过RAM的最大地址,超过则匹配完成,没有则继续执行下面的操作;2)使用计数器对SDN数据帧定位,判断源IP地址域是否相同,若源IP地址域相同,则RAM地址加1,继续匹配下一表项;匹配成功,将流表中下一跳的转发路径链路状态信息插入SDN数据帧中;

将所述SDN数据帧转换成所述以太网帧,包括:将所述SDN数据帧中的所述转发信息删除后,转换成所述以太网帧。

2.如权利要求1所述的基于FPGA的以太网帧与SDN数据帧的适配方法,其特征在于,若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机,包括:若下一跳节点的目的IP地址为0,则将所述SDN数据帧中的所述转发信息删除后,转换为所述以太网数据帧;

查找arp表,完成IP地址与MAC地址的映射;

将所述以太网帧按照GMII协议标准发送给上位机。

3.如权利要求1所述的基于FPGA的以太网帧与SDN数据帧的适配方法,其特征在于,判断下一跳节点的目的IP地址是否为0之后,所述方法还包括:若不为0,则继续根据对应的端口信息进行SDN数据帧的转发,直至下一跳节点的目的IP地址为0。

说明书 :

一种基于FPGA的以太网帧与SDN数据帧的适配方法

技术领域

[0001] 本发明涉及数据适配技术领域,尤其涉及一种基于FPGA的以太网帧与SDN数据帧的适配方法。

背景技术

[0002] 随着信息技术与人工智能的快速发展,高速的数据传输与处理对信息高速发展的今天愈发重要。
[0003] FPGA芯片的并行处理优势在高速数据的传输和处理上能减少传输和处理的时间,SDN网络架构与传统网络相比更加智能、灵活、可扩展,是未来网络的一个发展方向。在FPGA中嵌入SDN网络协议是自定义网络高速数据传输的一种新型架构。传统网络采用分布式架构,设备都能控制与转发高度耦合;分布式网络在网络某个链路发生故障,网络故障会不断告知邻居网络设备,增加网络通信开销;SDN具有控制和转发分离,设备之间耦合度低。集中式网络控制,网络发生故障时,只需上报给控制层的控制器,控制器做出快速调整,较少网络的开销,而在SDN控制器下发控制命令(流表),但数据转发层不能快速匹配流表,实现数据的正确转发,导致FPGA的整体处理效率降低。

发明内容

[0004] 本发明的目的在于提供一种基于FPGA的以太网帧与SDN数据帧的适配方法,提高FPGA的整体处理效率。
[0005] 为实现上述目的,本发明提供了一种基于FPGA的以太网帧与SDN数据帧的适配方法,包括以下步骤:
[0006] 对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射;
[0007] 基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧;
[0008] 基于对应的端口信息将所述SDN数据帧进行转发和接收;
[0009] 采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0;
[0010] 若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机。
[0011] 其中,基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧,包括:
[0012] 判断设定的流表地址是否超过RAM的阈值地址;
[0013] 若设定的流表地址没有超过RAM的阈值地址,使用计数器对SDN数据帧定位,并判断源IP地址域是否相同;
[0014] 若源IP地址域相同,则RAM地址加1,并将下一跳的转发路径链路状态信息封装成SDN数据帧。
[0015] 其中,采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0,包括:
[0016] 采用轮询机制将接收到的多个所述SDN数据帧缓存至FIFO中,并基于所述流表更新缓存的所述SDN数据帧中的信息;
[0017] 判断下一跳节点的目的IP地址是否为0。
[0018] 其中,若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机,包括:
[0019] 若下一跳节点的目的IP地址为0,则将所述SDN数据帧中的所述转发信息删除后,转换为所述以太网数据帧;
[0020] 查找arp表,完成IP地址与MAC地址的映射;
[0021] 将所述以太网帧按照GMII协议标准发送给上位机。
[0022] 其中,判断下一跳节点的目的IP地址是否为0之后,所述方法还包括:
[0023] 若不为0,则继续根据对应的端口信息进行SDN数据帧的转发,直至下一跳节点的目的IP地址为0。
[0024] 本发明的一种基于FPGA的以太网帧与SDN数据帧的适配方法,对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射;基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧;基于对应的端口信息将所述SDN数据帧进行转发和接收;采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0;若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机,在以太网帧转换SDN数据帧的过程中,进行了准确的适配过程,提高了帧转换效率和准确率,进而提高FPGA的整体处理效率。

附图说明

[0025] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1是本发明提供的一种基于FPGA的以太网帧与SDN数据帧的适配方法的步骤示意图。
[0027] 图2是本发明提供的数据发送流程图。
[0028] 图3是本发明提高的数据接收流程图。
[0029] 图4是本发明提供的FPGA内部的主要功能模块示意图。

具体实施方式

[0030] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0031] 在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0032] 请参阅图1至图3,本发明提供一种基于FPGA的以太网帧与SDN数据帧的适配方法,包括以下步骤:
[0033] S101、对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射。
[0034] 具体的,通过光电转换模块将上位机中的以太网帧传输至FPGA中的以太网IP核,并且,接收到的以太网帧是以GMII协议标准接收,同时按其时序要求用FIFO对以太网帧进行缓存;以太网的帧长度是不定长最小长度是64字节,最大长度是1518字节。用计数器对以太网数据长度计数,计数完的长度信息由FIFO缓存。FIFO的以太网数据存储到以太网RAM实现对数据的随机访问,记录以太帧的IP地址与对应的mac地址维护arp表。
[0035] 取消了传统的PHY芯片用FPGA自身来实现PHY芯片的功能。
[0036] S102、基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧。
[0037] 具体的,在进行SDN数据帧的生成之前,需要判断是否查找到所述以太网帧的转发路径,具体为:当接收到所述以太网帧后,FPGA根据以太网帧中的目标IP地址在路由表RAM中查找转发路径,若查找成功,则将所述以太网帧转换为SDN数据帧,转换的流程如下:
[0038] 1、判断表项地址是否超过RAM的最大地址,超过则匹配完成。没有则继续执行下面的操作。
[0039] 2、使用计数器对SDN数据帧定位,因为SDN帧和流表时自定义的结构在匹配时直接判断源IP地址域是否相同,相同RAM地址加1,继续匹配下一表现。
[0040] 3、匹配成功,将流表中的转发信息(即是下一跳的转发路径链路状态信息)插入SDN数据帧中。
[0041] 根据上面的流程我们自定义的流表和SDN数据帧的结构在匹配过程中无需再对以太网帧数据经行操作,SDN数据帧对以太网帧关键信息进行了提取,匹配流表效率更快。SDN数据帧预留了转发的路径和端口域。方便流表匹配成功后续的转发操作。从而提高FPGA整体的处理效率,降低网络时延。应用在大型网络中在流量控制拥有大局观更加智能化。
[0042] 流表结构如表1所示:
[0043] 源节点IP地址域:记录源节点IP地址。
[0044] 消息类型,端口:如本地消息类型(不需要转发是本地回环消息),泛洪消息类型(从所有端口转发,告诉所有节点的消息类型),端口域从指定的物理端口转发。
[0045] 链路信息域:记录当前链路的状态比如带宽,时延,通断等信息。
[0046] 目的IP地址:用于标识IP包要到达的IP地址。
[0047] 下一跳的的目的IP地址域:是流表的核心所在,流表根据链路信息用路径选择协议(OSPF)
[0048] 在该网络拓扑中选择最佳的转发路径,其带宽时延最佳的路径转发。
[0049] 表1 流表格式
[0050]
[0051] SDN数据帧格式如表2所示:
[0052] SDN数据帧同步头域:帧数据同步作为帧头的标志信息。
[0053] 消息类型,端口:SDN数据帧有本地消息类型,泛洪消息类型等,端口域从指定的端口转发。
[0054] 链路信息域:记录当前链路的状态比如带宽,时延等信息。
[0055] 下一跳的节点的目的IP地址域:根据此信息转发给下一个节点。
[0056] 源节点域:记录源节点的IP地址域。
[0057] 有效数据:从以太网帧提取的有效通信数据。
[0058] 表2 SDN数据帧格式
[0059]
[0060] S103、基于对应的端口信息将所述SDN数据帧进行转发和接收。
[0061] 具体的,Aurora传输控制器根据端口信息对SDN通用帧转发和接收,并且Aurora传输控制器能接收多个所述端口信息转发的所述SDN数据帧。SDN数据帧传输给Aurora传输控制器,Aurora是一种轻量级的数据链路层的协议支持自定义的帧格式,能灵活配置双工模式,流量控制。根据SDN通用帧的端口信息给对应端口的Aurora控制器。Aurora传输控制器将数据放到AXI‑streamFIFO缓存。AXI‑stream是一种高速简单安全的通信协议标准,提高转发的通用性。
[0062] S104、采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0。
[0063] 具体的,Aurora传输控制器接收到其他节点的SDN通用帧,多个端口接收到SDN数据帧时采用轮询机制分别对其数据缓存到FIFO中。
[0064] 缓存到FIFO的SDN通用帧交给以太网帧和SDN通用帧适配模块,此时接收到的SDN数据帧后根据流表更新SDN数据帧的中的信息。并且需判断所述SDN数据帧中的下一跳节点的目的IP地址是否为0,通过判断下一跳节点的目的IP地址是否为0,能够直观的知道当前节点是否是最终节点,以此便于进行后续的数据转发工作。
[0065] S105、若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机。
[0066] 具体的,如果下一跳节点的目的IP地址为0,则表明到达目的节点,将SDN数据帧附加的信息删除转换成以太网数据发送,查找arp表根据IP地址找到mac地址,完成arp地址解析过程。发送以太网数据时按照GMII协议标准发送给上位机完成发送过程。不为零则继续转发不进行SDN数据帧的适配。
[0067] 如图4所示,FPGA内部的主要功能模块包括:
[0068] 流表RAM:存储流表,其中的表项可以增删改查;
[0069] 以太网帧RAM:存储的数据是以太网帧,数据按先后顺序存储,以字节为单位;
[0070] ARP接收与发送:ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址‑‑>MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。即记录对应IP地址的物理地址。
[0071] SDN数据帧适配:以太网数据帧和SDN数据帧之间相互适配。SDN数据帧的帧结构在与流表匹配信息时效率更高,在更新SDN数据帧中的数据时对固定好的区域更新,保证数据更新不会出错,
[0072] 故在FPGA实现的数据平面用SDN数据帧转发。节点上位机之间经过FPGA数据平面的转发实现了通信才是验证FPGA数据平面转发层最有效的手段,故在转发路径的最终节点需要将SDN数据帧转换成以太网帧与上位机交互来验证FPGA的功能。
[0073] (5)Aurora传输控制器:Aurora传输控制器将转换好的SDN数据帧根据流表的端口和转发;接收其他节点的SDN数据帧判断最后一跳是否为空,如果为空回传SDN帧适配模块适配成以太网帧发给上位机。否则继续根据流表的端口和转发。
[0074] 有益效果
[0075] 1、解决了在基于FPGA的SDN数据转发所使用的通信协议方式通用性不强、灵活性不足等缺点;
[0076] 2、在上位机和FPGA之间改用SFP接口放弃PHY芯片减少了FPGA芯片引脚的资源占用,提高了接口的可扩展性。
[0077] 本发明的一种基于FPGA的以太网帧与SDN数据帧的适配方法,对获取的以太网帧进行缓存和随机访问,并记录arp的地址映射;基于设定的流表对所述以太网帧进行过滤,并结合对应的转发信息封装得到SDN数据帧;基于对应的端口信息将所述SDN数据帧进行转发和接收;采用轮询机制对接收到的所述SDN数据帧进行缓存更新,并判断下一跳节点的目的IP地址是否为0;若下一跳节点的目的IP地址为0,则将所述SDN数据帧转换成所述以太网帧,并基于解析得到的arp地址发送至对应的上位机,在以太网帧转换SDN数据帧的过程中,进行了准确的适配过程,提高了帧转换效率和准确率,进而提高FPGA的整体处理效率。
[0078] 以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。