一种UDP封装GRE报文的芯片实现方法及装置与流程

文档序号:16774825发布日期:2019-02-01 18:38阅读:1526来源:国知局
一种UDP封装GRE报文的芯片实现方法及装置与流程

本发明涉及计算机网路技术领域,尤其是涉及一种udp封装gre报文的芯片实现方法及装置。



背景技术:

gre-in-udp封装是基于通用路由协议(gre,genericroutingencapsulation)和用户数据报协议(udp,userdatagramprotocol)封装报文,并使被封装的报文能够在ipv4或ipv6网络中传输。传统gre报文不支持封装在udp里面,无法基于内层数据做负载分担,使得封装在同一个gre头部内的报文传输性能下降。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种udp封装gre报文的芯片实现方法及装置。

为实现上述目的,本发明提出如下技术方案:一种udp封装gre报文的芯片实现方法,包括如下步骤:

在交换芯片内建立编辑行为配置表;

接收报文并根据所述编辑行为配置表判断需要加封装的报文的内层报文头类型,若为udp报文头和gre报文头,则构造udp报文头和gre报文头各字段值并替换原报文头。

优选地,构造的所述udp报文头中源端口的值为内层报文五元组的哈希值,所述五元组包括源ip地址、目标ip地址、源端口、目标端口和协议号。

优选地,所述源端口的值在30s内保持不变。

优选地,构造的所述udp报文头中源端口的值未能通过所述内层报文五元组计算时,所有构造的udp报文头中源端口的值保持一致。

优选地,构造的所述udp报文头中源端口的值与ipv6报文头中流标签字段的值保持一致。

本发明还揭示了一种udp封装gre报文的芯片实现装置,包括

配置表建立模块,用于在交换芯片内建立编辑行为配置表;

报文头判断模块,用于接收报文并根据所述编辑行为配置表判断需要加封装的报文的内层报文头类型;

封装模块,用于在判断模块判断内层报文头类型为udp报文头和gre报文头时,构造udp报文头和gre报文头各字段值并替换原报文头。

优选地,所述封装模块构造的所述udp报文头中源端口的值为内层报文五元组的哈希值,所述五元组包括源ip地址、目标ip地址、源端口、目标端口和协议号。

优选地,所述源端口的值在30s内保持不变。

优选地,所述封装模块构造的所述udp报文头中源端口的值未能通过所述内层报文五元组计算时,所有构造的udp报文头中源端口的值保持一致。

优选地,所述封装模块构造的所述udp报文头中源端口的值与ipv6报文头中流标签字段的值保持一致。

本发明的有益效果是:。

本发明所揭示的一种udp封装gre报文的芯片实现方法及实现装置,通过交换芯片实现udp封装gre报文,使得中间设备可以支持基于内层数据做负载分担,提高了网络转发效率。

附图说明

图1是本发明的方法流程图示意图;

图2是本发明的原理图示意图;

图3是本发明的装置结构框图示意图。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

本发明所揭示的一种udp封装gre报文的芯片实现方法及实现装置,通过交换芯片实现udp封装gre报文,提高了报文封装效率,减轻了cpu负担。

结合图1和图2所示,一种udp封装gre报文的芯片实现方法,包括如下步骤:

s100,在交换芯片内建立编辑行为配置表;

具体的,报文是网络中交换与传输的数据单元,报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。报文在传输过程中不断的封装成分组、包、帧来传输,对于每个需要转发的报文,交换芯片会依据cpu下发的配置信息,对报文执行一些编辑行为,如对报文添加二层报文头或三层报文头或三层加封装等等。实施时,可根据报文的编辑行为在交换芯片内建立若干个编辑行为配置表,如二层编辑行为配置表(dsl2edit表),三层编辑行为配置表(dsl3edit表)、三层加封装行为配置表(dsl3edittunnel)等等。当交换芯片接收到报文时可根据编辑行为配置表对报文执行相应的编辑行为。

每个编辑行为配置表中配置了多个字段,如三层加封装行为配置表中配置有用于标识内层报文头类型的字段dsl3edittunnelv4.innerheadertype,同时支持多种报文头类型。其中,当dsl3edittunnelv4.innerheadertype的值为00时,表示内层报文头的类型为gre报文头;当dsl3edittunnelv4.innerheadertype的值为01时,表示内层报文头的类型为udp报文头;当dsl3edittunnelv4.innerheadertype的值为10时,表示内层报文头的类型为udp头和vxlan报文头;当dsl3edittunnelv4.innerheadertype的值为11时,表示内层报文头的类型为udp头和gre报文头。

s200,接收报文并对需要加封装的报文根据所述编辑行为配置表判断所述报文的内层报文头类型是否为udp报文头和gre报文头,若是,则构造报文头头中各字段值并替换原报文头。

具体地,udp封装gre报文是基于通用路由协议(gre,genericroutingencapsulation)和用户数据报协议(udp)封装报文,并使被封装的数据报能够在ipv4或ipv6网络中传输。

以报文在ipv4网络传输为例,当交换芯片接收到报文时,其首先判断该报文是否需要加封装,对于无需加封装的报文,则直接进入后续处理程序,如直接转发或丢弃;而对于需要加封装的报文,则进一步判断该报文中内层报文头类型。

当内层报文头类型的类型为udp报文头和gre报文头时,则构造udp报文头和gre报文头中个字段的值,如构造根据udp报文头中源端口(sourceport)的值,所述sourceport的值根据内层报文五元组确定,实施时,内层报文五元组的哈希值为sourceport的值,其中,五元组包括源ip地址,目标ip地址,udp/tcp源端口,udp/tcp目标端口和协议号。当构造的udp报文头中源端口的值未能通过内层报文五元组计算时,所有构造的udp报文头中源端口的值保持一致。又如构造gre报文头时,gre报文头中的源地址为交换芯片所在交换机的地址,目的地址为对端交换机的地址。

然而,对于报文在ipv6网络传输时,在构造udp报文头时,sourceport的值与ipv6报文头中的流标签字段(flowlable)的值保持一致。

最后,使用构造后的报文头替换原报文头,使其可在ipv4或ipv6网络中进行传输。

当内层报文头类型为其他类型时,如gre报文头或者udp头等,则构造报文头中各字段的值,并将构造后的报文头替换原报文头即可在在ipv4或ipv6网络中进行传输。

如图3所示,本发明还揭示了一种udp封装gre报文的芯片实现装置,包括

配置表建立模块,用于在交换芯片内建立编辑行为配置表;

报文头类型判断模块,用于接收报文并根据编辑行为配置表判断需要加封装的报文的内层报文头类型;

报文封装模块,用于在报文头类型判断模块判断报文的内层报文头类型为udp报文头和gre报文头时,构造udp报文头和gre报文头各字段值并替换原报文头。

具体地,配置表建立模块可根据报文的编辑行为在交换芯片内建立若干个编辑行为配置表,如二层编辑行为配置表(dsl2edit配置表),三层编辑行为配置表(dsl3edit配置表)、三层加封装行为配置表(dsl3edittunnel配置表)等等。对于接收到的报文可根据编辑行为配置表对报文执行相应的编辑行为。

进一步地,报文头类型判断模块还用于判断接收到的报文是否需要加封装,若需要加封装,则进一步根据编辑行为配置表判断需要加封装的报文的内层报文头类型。每个编辑行为配置表中配置了多个字段,如三层加封装行为配置表中配置有用于标识内层报文头类型的字段dsl3edittunnelv4.innerheadertype。其中,当dsl3edittunnelv4.innerheadertype的值为00时,表示内层报文头的类型为gre报文头;当dsl3edittunnelv4.innerheadertype的值为01时,表示内层报文头的类型为udp报文头;当dsl3edittunnelv4.innerheadertype的值为10时,表示内层报文头的类型为udp报文头和vxlan报文头;当dsl3edittunnelv4.innerheadertype的值为11时,表示内层报文头的类型为udp报文头和gre报文头。

进一步地,以报文在ipv4网络传输为例,当内层报文头类型为udp报文头和gre报文头时,报文封装模块构造udp报文头和gre报文头中个字段的值,如构造根据udp报文头中sourceport的值,所述sourceport的值根据内层报文五元组确定,实施时,内层报文五元组的哈希值为sourceport的值,其中,五元组包括源ip地址,目标ip地址,udp/tcp源端口,udp/tcp目标端口和协议号。当构造的udp报文头中源端口的值未能通过所述内层报文五元组计算时,报文封装模使所有构造的udp报文头中源端口的值保持一致。又如构造gre报文头时,gre报文头中的源地址为交换芯片所在交换机的地址,目的地址为对端交换机的地址。

然而,对于报文在ipv6网络传输时,在构造udp报文头时,udp报文头中sourceport的值与ipv6报文头中的flowlable的值保持一致。最后,使用构造后的报文头替换原报文头,使其可在ipv4或ipv6网络中进行传输。

当内层报文头类型为其他类型时,如gre报文头或者udp头等,则构造报文头中各字段的值,并将构造后的报文头替换原报文头即可在在ipv4或ipv6网络中进行传输。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1