CN109302354A - 一种udp封装gre报文的芯片实现方法及装置 - Google Patents
一种udp封装gre报文的芯片实现方法及装置 Download PDFInfo
- Publication number
- CN109302354A CN109302354A CN201811257097.9A CN201811257097A CN109302354A CN 109302354 A CN109302354 A CN 109302354A CN 201811257097 A CN201811257097 A CN 201811257097A CN 109302354 A CN109302354 A CN 109302354A
- Authority
- CN
- China
- Prior art keywords
- heading
- udp
- message
- value
- gre
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种UDP封装GRE报文的芯片实现方法及装置,方法包括在交换芯片内建立编辑行为配置表;接收报文并根据所述编辑行为配置表判断需要加封装的报文的内层报文头类型,若为UDP报文头和GRE报文头,则构造UDP报文头和GRE报文头各字段值并替换原报文头。本发明通过硬件实现UDP封装GRE报文,使得中间设备可以支持基于内层数据做负载分担,提高了网络转发效率。
Description
技术领域
本发明涉及计算机网路技术领域,尤其是涉及一种UDP封装GRE报文的芯片实现方法及装置。
背景技术
GRE-in-UDP封装是基于通用路由协议(GRE,Generic Routing Encapsulation)和用户数据报协议(UDP,User Datagram Protocol)封装报文,并使被封装的报文能够在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,Generic RoutingEncapsulation)和用户数据报协议(UDP)封装报文,并使被封装的数据报能够在IPv4或IPv6网络中传输。
以报文在IPv4网络传输为例,当交换芯片接收到报文时,其首先判断该报文是否需要加封装,对于无需加封装的报文,则直接进入后续处理程序,如直接转发或丢弃;而对于需要加封装的报文,则进一步判断该报文中内层报文头类型。
当内层报文头类型的类型为UDP报文头和GRE报文头时,则构造UDP报文头和GRE报文头中个字段的值,如构造根据UDP报文头中源端口(Source Port)的值,所述Source Port的值根据内层报文五元组确定,实施时,内层报文五元组的哈希值为Source Port的值,其中,五元组包括源IP地址,目标IP地址,UDP/TCP源端口,UDP/TCP目标端口和协议号。当构造的UDP报文头中源端口的值未能通过内层报文五元组计算时,所有构造的UDP报文头中源端口的值保持一致。又如构造GRE报文头时,GRE报文头中的源地址为交换芯片所在交换机的地址,目的地址为对端交换机的地址。
然而,对于报文在IPv6网络传输时,在构造UDP报文头时,Source Port的值与IPv6报文头中的流标签字段(Flow Lable)的值保持一致。
最后,使用构造后的报文头替换原报文头,使其可在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报文头中Source Port的值,所述Source Port的值根据内层报文五元组确定,实施时,内层报文五元组的哈希值为Source Port的值,其中,五元组包括源IP地址,目标IP地址,UDP/TCP源端口,UDP/TCP目标端口和协议号。当构造的UDP报文头中源端口的值未能通过所述内层报文五元组计算时,报文封装模使所有构造的UDP报文头中源端口的值保持一致。又如构造GRE报文头时,GRE报文头中的源地址为交换芯片所在交换机的地址,目的地址为对端交换机的地址。
然而,对于报文在IPv6网络传输时,在构造UDP报文头时,UDP报文头中SourcePort的值与IPv6报文头中的Flow Lable的值保持一致。最后,使用构造后的报文头替换原报文头,使其可在IPv4或IPv6网络中进行传输。
当内层报文头类型为其他类型时,如GRE报文头或者UDP头等,则构造报文头中各字段的值,并将构造后的报文头替换原报文头即可在在IPv4或IPv6网络中进行传输。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种UDP封装GRE报文的芯片实现方法,其特征在于,包括如下步骤:
在交换芯片内建立编辑行为配置表;
接收报文并根据所述编辑行为配置表判断需要加封装的报文的内层报文头类型,若为UDP报文头和GRE报文头,则构造UDP报文头和GRE报文头各字段值并替换原报文头。
2.根据权利要求1所述的方法,其特征在于,构造的所述UDP报文头中源端口的值为内层报文五元组的哈希值,所述五元组包括源IP地址、目标IP地址、源端口、目标端口和协议号。
3.根据权利要求2所述的方法,其特征在于,所述源端口的值在30s内保持不变。
4.根据权利要求2所述的方法,其特征在于,构造的所述UDP报文头中源端口的值未能通过所述内层报文五元组计算时,所有构造的UDP报文头中源端口的值保持一致。
5.根据权利要求1所述的方法,其特征在于,构造的所述UDP报文头中源端口的值与IPv6报文头中流标签字段的值保持一致。
6.一种UDP封装GRE报文的芯片实现装置,其特征在于,包括
配置表建立模块,用于在交换芯片内建立编辑行为配置表;
报文头判断模块,用于接收报文并根据所述编辑行为配置表判断需要加封装的报文的内层报文头类型;
封装模块,用于在判断模块判断内层报文头类型为UDP报文头和GRE报文头时,构造UDP报文头和GRE报文头各字段值并替换原报文头。
7.根据权利要求6所述的装置,其特征在于,所述封装模块构造的所述UDP报文头中源端口的值为内层报文五元组的哈希值,所述五元组包括源IP地址、目标IP地址、源端口、目标端口和协议号。
8.根据权利要求7所述的装置,其特征在于,所述源端口的值在30s内保持不变。
9.根据权利要求7所述的装置,其特征在于,所述封装模块构造的所述UDP报文头中源端口的值未能通过所述内层报文五元组计算时,所有构造的UDP报文头中源端口的值保持一致。
10.根据权利要求6所述的装置,其特征在于,所述封装模块构造的所述UDP报文头中源端口的值与IPv6报文头中流标签字段的值保持一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811257097.9A CN109302354A (zh) | 2018-10-26 | 2018-10-26 | 一种udp封装gre报文的芯片实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811257097.9A CN109302354A (zh) | 2018-10-26 | 2018-10-26 | 一种udp封装gre报文的芯片实现方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109302354A true CN109302354A (zh) | 2019-02-01 |
Family
ID=65158667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811257097.9A Withdrawn CN109302354A (zh) | 2018-10-26 | 2018-10-26 | 一种udp封装gre报文的芯片实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109302354A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808924A (zh) * | 2019-11-12 | 2020-02-18 | 迈普通信技术股份有限公司 | 芯片环回报文处理方法、装置及存储介质 |
CN110995766A (zh) * | 2019-12-31 | 2020-04-10 | 联想(北京)有限公司 | 一种网络通信方法及采用网络通信方法的客户端与中心站点 |
CN111212060A (zh) * | 2019-12-31 | 2020-05-29 | 盛科网络(苏州)有限公司 | 一种剥离可变长gre头部的方法及装置 |
CN112737967A (zh) * | 2020-12-25 | 2021-04-30 | 江苏省未来网络创新研究院 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
WO2022001287A1 (zh) * | 2020-07-03 | 2022-01-06 | 华为技术有限公司 | 一种报文处理的方法及设备 |
CN117376179A (zh) * | 2023-12-04 | 2024-01-09 | 成都北中网芯科技有限公司 | 一种gre协议报文的过滤方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209141A (zh) * | 2012-01-17 | 2013-07-17 | 中兴通讯股份有限公司 | 一种交换芯片处理数据报文的方法及交换芯片 |
CN105763557A (zh) * | 2016-04-07 | 2016-07-13 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与系统 |
CN106789178A (zh) * | 2016-12-01 | 2017-05-31 | 迈普通信技术股份有限公司 | 一种报文转发方法和网络设备 |
US20170279638A1 (en) * | 2014-10-30 | 2017-09-28 | Hewlett Packard Enterprise Development Lp | Tunnel encapsulation |
CN108600021A (zh) * | 2018-04-28 | 2018-09-28 | 盛科网络(苏州)有限公司 | 可灵活编程配置的隧道封装芯片实现方法和装置 |
-
2018
- 2018-10-26 CN CN201811257097.9A patent/CN109302354A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103209141A (zh) * | 2012-01-17 | 2013-07-17 | 中兴通讯股份有限公司 | 一种交换芯片处理数据报文的方法及交换芯片 |
US20170279638A1 (en) * | 2014-10-30 | 2017-09-28 | Hewlett Packard Enterprise Development Lp | Tunnel encapsulation |
CN105763557A (zh) * | 2016-04-07 | 2016-07-13 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与系统 |
CN106789178A (zh) * | 2016-12-01 | 2017-05-31 | 迈普通信技术股份有限公司 | 一种报文转发方法和网络设备 |
CN108600021A (zh) * | 2018-04-28 | 2018-09-28 | 盛科网络(苏州)有限公司 | 可灵活编程配置的隧道封装芯片实现方法和装置 |
Non-Patent Citations (1)
Title |
---|
L. YONG, E等: "GRE-in-UDP Encapsulation", 《IETF RFC8086》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110808924A (zh) * | 2019-11-12 | 2020-02-18 | 迈普通信技术股份有限公司 | 芯片环回报文处理方法、装置及存储介质 |
CN110808924B (zh) * | 2019-11-12 | 2021-05-18 | 迈普通信技术股份有限公司 | 芯片环回报文处理方法、装置及存储介质 |
CN110995766A (zh) * | 2019-12-31 | 2020-04-10 | 联想(北京)有限公司 | 一种网络通信方法及采用网络通信方法的客户端与中心站点 |
CN111212060A (zh) * | 2019-12-31 | 2020-05-29 | 盛科网络(苏州)有限公司 | 一种剥离可变长gre头部的方法及装置 |
WO2022001287A1 (zh) * | 2020-07-03 | 2022-01-06 | 华为技术有限公司 | 一种报文处理的方法及设备 |
CN112737967A (zh) * | 2020-12-25 | 2021-04-30 | 江苏省未来网络创新研究院 | 一种基于Flow Director实现IPv4 GRE报文负载均衡的方法 |
CN117376179A (zh) * | 2023-12-04 | 2024-01-09 | 成都北中网芯科技有限公司 | 一种gre协议报文的过滤方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302354A (zh) | 一种udp封装gre报文的芯片实现方法及装置 | |
CN104380667B (zh) | 一种数据报文的路由方法和设备 | |
CN106664261B (zh) | 一种配置流表项的方法、装置和系统 | |
CN104092595B (zh) | 基于802.1br的虚拟化系统中的报文处理方法及装置 | |
CN104322019B (zh) | 业务路由系统、设备和方法 | |
CN104283806B (zh) | 业务链处理方法和设备 | |
CN106488508B (zh) | 一种数据传输方法、装置及系统 | |
CN106254256A (zh) | 基于三层vxlan网关的数据报文转发方法和设备 | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN102377640B (zh) | 一种报文处理装置和报文处理方法、及预处理器 | |
CN104038507B (zh) | 基于内容为中心的协议转换无线网关及其通信方法 | |
CN104579998B (zh) | 一种负载均衡处理装置 | |
CN106921572A (zh) | 一种传播QoS策略的方法、装置及系统 | |
CN105992297A (zh) | 基于sdn的连接管理、转发控制方法及相关设备 | |
CN105099917A (zh) | 业务报文的转发方法和装置 | |
CN108234320A (zh) | 报文传输方法及交换机 | |
CN107231269A (zh) | 一种集群精确限速方法和装置 | |
CN105681196A (zh) | 一种业务处理的方法、转发器及分类器 | |
CN102299862B (zh) | 二层隧道快速转发设备和方法 | |
CN106686553A (zh) | 一种在核心网epc上进行组播的方法和装置 | |
CN104009918B (zh) | 一种业务报文处理方法、装置及系统 | |
CN103200068A (zh) | 一种基于用户业务多隧道传输装置 | |
CN105745874A (zh) | 一种确定服务功能路径的方法及装置 | |
CN105141538A (zh) | 一种跨网络堆叠系统及其对报文的处理方法 | |
CN102647347B (zh) | 实现基于连接的流量的处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190201 |
|
WW01 | Invention patent application withdrawn after publication |