CN110166382B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN110166382B CN110166382B CN201910468828.2A CN201910468828A CN110166382B CN 110166382 B CN110166382 B CN 110166382B CN 201910468828 A CN201910468828 A CN 201910468828A CN 110166382 B CN110166382 B CN 110166382B
- Authority
- CN
- China
- Prior art keywords
- inlk
- port
- client
- message
- fpga
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种报文转发方法及装置,该方法包括:所述FPGA创建Flex组,将被设置为FlexE端口的所述物理端口添加到所述FlexE组;所述FPGA在所述FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;所述交换芯片为所述第一Client创建第一INLK通道口,根据所配置的带宽为所述第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;FPGA以及交换芯片基于Client与INLK通道口的对应关系对FlexE端口的报文进行转发。应用本发明实施例可以实现交换芯片对FlexE协议的支持,扩展FlexE协议的适用场景。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
灵活以太网(Flex Ethernet,简称FelxE)技术是承载网实现业务隔离承载和网络分片的一种接口技术,因其具有带宽灵活可调、数据隔离、完美契合5G业务等特点,受到全球主流运营商、供应商的认可。
FlexE技术通过对以太网轻量级增强,在以太网MAC(Media Access Control,媒体访问控制层)/PHY(物理层)之间的中间层增加FlexE Shim(分片)层,Flex Shim层基于时分复用分发机制,将多个Client(客户端)(业务接口)的数据按照时隙方式调度并分发至多个不同的子通道。
以100GE管道为例,通过FlexE Shim可以划分为20个5G速率的子通道(每个子通道对应一个时隙),每个Client可指定使用某一个或多个子通道,实现业务隔离。
然而实践发现,目前的交换芯片不支持FlexE协议,导致FlexE协议无法在交换机中应用,限制了FlexE协议的应用场景。
发明内容
本发明提供一种报文转发方法及装置,以解决现有交换设备不支持FlexE的问题。
根据本发明实施例的第一方面,提供一种报文转发方法,应用于交换设备,所述交换设备包括交换芯片以及与所述交换芯片的INLK口连接的现场可编程门阵列FPGA,所述FPGA下接至少一个物理端口,所述方法包括:
所述FPGA创建Flex组,将被设置为FlexE端口的所述物理端口添加到所述FlexE组;
所述FPGA在所述FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙;以及,
所述交换芯片为所述第一Client创建第一INLK通道口,根据所配置的带宽为所述第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;
对于通过所述第一Client发送的报文,所述交换芯片通过所述第一INLK通道口将该报文发送给所述FPGA,由所述FPGA通过为所述第一Client分配的时隙发送该报文;
对于接收到的所述第一Client的报文,所述FPGA通过所述第一INLK通道口将该报文发送给所述交换芯片,由所述交换芯片根据所述第一INLK通道口对应的所述第一端口号对该报文进行转发。
根据本发明实施例的第一方面,提供一种报文转发装置,应用于交换设备,其特征在于,所述装置包括:交换芯片以及与所述交换芯片的INLK口连接的现场可编程门阵列FPGA,所述FPGA下接至少一个物理端口;其中:
所述FPGA,用于创建Flex组,将被设置为FlexE端口的所述物理端口添加到所述FlexE组;
所述FPGA,还用于在所述FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙;
所述交换芯片,用于为所述第一Client创建第一INLK通道口,根据所配置的带宽为所述第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;
所述交换芯片,还用于对于通过所述第一Client发送的报文,通过所述第一INLK通道口将该报文发送给所述FPGA,由所述FPGA通过为所述第一Client分配的时隙发送该报文;
所述FPGA,还用于对于接收到的所述第一Client的报文,通过所述第一INLK通道口将该报文发送给所述交换芯片,由所述交换芯片根据所述第一INLK通道口对应的所述第一端口号对该报文进行转发。
应用本发明公开的技术方案,通过将FPGA与交换芯片的INLK口连接,并通过FPGA下接至少一个物理端口,FPGA创建Flex组,将被设置为FlexE端口的物理端口添加到FlexE组;FPGA在FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;交换芯片为第一Client创建第一INLK通道口,根据所配置的带宽为第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;对于通过第一Client发送的报文,交换芯片通过第一INLK通道口将该报文发送给FPGA,由FPGA通过为第一Client分配的时隙发送该报文;对于接收到的第一Client的报文,FPGA通过第一INLK通道口将该报文发送给交换芯片,由交换芯片根据第一INLK通道口对应的第一端口号对该报文进行转发,实现了交换芯片对FlexE协议的支持,扩展了FlexE协议的适用场景。
附图说明
图1是本发明实施例提供的一种报文转发方法的流程示意图;
图2是本发明实施例提供的一种具体应用场景的架构示意图;
图3A是本发明实施例提供的一种报文转发流程示意图;
图3B是本发明实施例提供的另一种报文转发流程示意图;
图4是本发明实施例提供的一种报文转发装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种报文转发方法的流程示意图,其中,该报文转发方法可以应用于交换设备,该交换设备包括交换芯片以及与所述交换芯片的INLK口连接的FPGA(Field-Programmable Gate Array,现场可编程门阵列),该FPGA下接至少一个物理端口,如图1所示,该报文转发方法可以包括以下步骤:
步骤101、FPGA创建Flex组,将被设置为FlexE端口的物理端口添加到FlexE组。
本发明实施例中,当需要将FPGA下接的物理端口设置为FlexE端口时,可以向交换芯片以及FPGA下发FlexE端口配置指令。
相应地,当FPGA下接的任一物理端口(本文中称为第一端口)被设置为FlexE端口时,FPGA将该第一端口加入到配置指令中指定的FlexE组(本文中称为第一FlexE组)。
示例性的,若该第一FlexE组为不存在的FlexE组,则FPGA先创建第一FlexE组,然后将该第一端口加入到该第一FlexE组;若该第一FlexE组为已经存在的FlexE组,则FPGA不需要创建FlexE组。
在一个示例中,当第一FlexE组为已经存在的FlexE组时,FPGA将第一端口加入到该第一FlexE组时,需要先删除该第一FlexE组中的Client(若存在),然后再将第一端口加入到该第一FlexE组,其具体实现可以参见现有FlexE协议中的相关实现,本发明实施例在此不做赘述。
步骤102、FPGA在FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙。
步骤103、交换芯片为第一Client创建第一INLK通道口,根据所配置的带宽为第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号。
本发明实施例中,当需要在Flex组中创建Client时,可以向交换芯片以及FPGA下发在FlexE组中创建Client的配置指令。
相应地,当FPGA接收到在第一FlexE组中创建Client(本文中称为第一Client)的配置指令时,FPGA可以在第一FlexE组中创建第一Client。
FPGA创建第一Client之后,可以根据配置指令中配置的第一Client的带宽为第一Client分配时隙。
其中,一个FlexE端口对应预设数量的(通常为20个)时隙,一个时隙对应的带宽与该FlexE端口支持的速率相关。
例如,假设FlexE端口支持的速率为100G,则一个时隙对应的带宽为5G(以一个FlexE端口对应20个时隙(各时隙编号不同)为例)。
当Client的带宽为20G时,则FPGA可以为该Client分配4个时隙,并记录该Client与所分配的时隙的对应关系,如,记录Client ID(标识)与时隙编号的对应关系。
本发明实施例中,交换芯片接收到在第一FlexE组中创建第一Client的配置指令时,可以为第一Client创建对应的INLK通道口(本文中称为第一INLK通道口),根据所配置的第一Client的带宽为第一INLK通道口设置带宽(第一Client的带宽与第一INLK通道口的带宽一致),并为第一INLK通道口分配对应的端口号(本文中称为第一端口号)。
步骤104、对于通过第一Client发送的报文,交换芯片通过第一INLK通道口将该报文发送给FPGA,由FPGA通过为第一Client分配的时隙发送该报文。
步骤105、对于接收到的第一Client的报文,FPGA通过第一INLK通道口将该报文发送给交换芯片,由交换芯片根据第一INLK通道口对应的第一端口号对该报文进行转发。
本发明实施例中,基于上述Client与INLK通道口的对应关系,对于FlexE组中的任一Client,交换芯片维护与该Client对应的、带宽一致的INLK通道口,并通过该INLK通道口对该Client的报文进行转发。
在本发明其中一个实施例中,上述FPGA通过第一INLK通道口将该报文发送给交换芯片,由交换芯片根据第一INLK通道口对应的第一端口号对该报文进行转发,可以包括:
当接收到带有FlexE头的报文,且确定该FlexE头对应的Client为第一Client时,根据第一Client,查询Client与INLK通道口的对应关系,确定与第一Client对应的第一INLK通道口;
FPGA根据第一INLK通道口为剥除FlexE头的报文封装INLK头,并将带有INLK头的报文通过与交换芯片连接的INLK口发送给交换芯片;
交换芯片根据第一INLK通道口对应的第一端口号对剥除INLK头的报文进行转发。
在该实施例中,当FPGA从FlexE端口接收到带有FlexE头(本文中称为第一FlexE)的报文(本文中称为第一报文)时,FPGA对该第一FlexE头进行解析,以确定该第一报文对应的Client(以第一Client为例)。
FPGA确定了第一Client之后,根据该第一Client,查询Client与INLK通道口的对应关系,确定与第一Client对应的INLK通道口(即上述第一INLK通道口)。
例如,FPGA可以根据第一Client的Client ID,查询Client ID与INLK通道口的ID(Channel ID)的对应关系,确定与第一Client ID对应的第一INLK通道口的Channel ID。
FPGA确定了第一Client对应的第一INLK通道口之后,可以根据该第一INLK通道口为剥除第一FlexE头的第一报文封装INLK头(本文中称为第一INLK头),并将带有第一INLK头的第一报文通过与交换芯片连接的INLK口发送给交换芯片。
其中,FPGA为报文封装INLK头的具体实现可以参见现有INLK协议中的相关描述,本发明实施例对此不做赘述。
在该实施例中,交换芯片接收到FPGA发送的带有第一INLK头的第一报文时,可以解析该第一INLK头,以确定对应的INLK通道口(即上述第一INLK通道口),并确定第一INLK通道口对应的端口号(本文中称为第一端口号),进而,交换芯片可以根据第一端口号对剥除第一INLK头的第一报文进行转发。
在本发明另一个实施例中,上述交换芯片通过第一INLK通道口将该报文发送给FPGA,由FPGA通过为第一Client分配的时隙发送该报文,可以包括:
当交换芯片确定报文的出端口的端口号为第一INLK通道口对应的第一端口号时,根据第一INLK通道口为该报文封装INLK头,并将带有INLK头的报文通过与FPGA连接的INLK口发送给FPGA;
FPGA根据第一INLK通道口,查询Client与INLK通道口的对应关系,确定与第一INLK通道口对应的第一Client;
FPGA根据第一Client为剥除INLK头的报文封装FlexE头,并通过为第一Client分配的时隙发送该带有FlexE头的报文。
在该实施例中,当交换芯片确定报文(本文中称为第二报文)的出端口的端口号为与INLK通道口(以第一INLK通道口为例)对应的端口号(即上述第一端口号)时,交换芯片可以根据第一INLK通道口为第二报文封装INLK头(本文中称为第二INLK头),并将带有第二INLK头的第二报文通过与FPGA连接的INLK口发送给FPGA。
其中,交换芯片为报文封装INLK头的具体实现可以参见现有INLK协议中的相关描述,本发明实施例对此不做赘述。
在该实施例中,当FPGA接收到交换芯片发送的带有第二INLK头的第二报文时,可以解析第二INLK头,确定对应的INLK通道口(即上述第一INLK通道口),并根据第一INLK通道口,查询Client与INLK通道口的对应关系,确定与第一INLK通道口对应的Client(本文中称为第一Client)。
例如,FPGA可以根据第一INLK通道口的Channel ID,查询Client ID与Channel ID的对应关系,确定与第一INLK通道口的Channel ID对应的第一Client的Client ID。
在该实施例中,FPGA确定了第一Client之后,根据第一Client为剥除了第二INLK头的第二报文封装FlexE头(本文中称为第二FlexE头),并将带有第二FlexE头的第二报文通过FlexE端口转发。
其中,FPGA为报文封装FlexE头的具体实现可以参见现有FlexE协议中的相关描述,本发明实施例在此不做赘述。
需要说明的是,在本发明实施例中,FPGA通过FlexE端口发送带有FlexE头的报文时,可以根据该报文对应的Client,查询为各Client分配的时隙,并通过与该Client分配的时隙发送该带有FlexE头的报文,其具体实现在此不做赘述。
可选地,在本发明实施例中,对于FlexE组中的Client的端口配置,可以通过针对Client对应的INLK通道口下发端口配置实现。
例如,交换芯片根据针对第一INLK通道口的端口配置,对于第一INLK通道口对应的Client(即上述第一Client)的报文进行转发控制。
示例性的,针对INLK通道口的端口配置可以包括入方向配置(针对FPGA发送给交换芯片方向的报文)或出方向配置(针对交换芯片发送给FPGA方向的报文),其包括但不限于各种协议配置、ACL(Access Control List,访问控制列表)配置、流控配置或/和带宽配置等。
可选地,在本发明其中一个实施例中,当FPGA连接的至少一个物理端口中的任一物理端口(本文中称为第二端口)被设置为普通以太端口时,交换芯片可以为第二端口创建对应的INKL通道口,并根据第二端口支持的速率为该INLK通道口设置带宽。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。
请参见图2,为本发明实施例提供的一种具体应用场景的结构示意图,如图2所示,在该应用场景中,交换芯片210通过INLK口211与FPGA220连接,FPGA220下接3个物理端口231~233,物理端口231~233具有PHY芯片,支持速率为100G。
在该实施例中,物理端口231~233缺省工作在以太模式下,每个端口对应INLK链路的一个INLK通道口。
具体地,缺省情况下,物理端口231~233工作在以太模式下,即物理端口231~233为普通以太端口。交换芯片210根据各物理端口支持的速率,在交换芯片210上与FPGA220相连的INLK口211上分别创建一个INLK通道口与之对应,并为该INLK通道口配置对应的带宽(在该实施例中为100G)。
其中,由于INLK口运行INLK协议,因此,交换芯片210发送给FPGA220的报文中会携带INLK通道口对应的Channel ID;FPGA220通过记录Channel ID与物理端口的端口号(PortID)的对应关系,将其转化为普通的以太报文从对应物理端口发送出去。
对于从FPGA220下挂物理端口收到的报文,通过将Port ID映射到Channel ID,转换为INLK格式送给交换芯片210,交换芯片210根据Channel ID确定从哪个INLK通道口接收到该报文。
在该实施例中,当物理端口231~233中一个或多个被切换为FlexE端口时,FPGA可以将被切换为FlexE端口的物理端口加入到FlexE组;当在该FlexE组中创建Client时,交换芯片为所创建的Client创建对应的INLK通道口。
具体地,以物理端口231~233均切换为FlexE端口,且均加入同一FlexE组为例,FPGA220创建FlexE组1,将物理端口231~233加入Flex组1,一个FlexE端口对应20个时隙。
假设物理端口231对应时隙1~20,物理端口232对应时隙21~40,物理端口233对应时隙41~60。
当在FlexE组1中创建Client(假设创建Client1,Client ID为Client ID1)时,FPGA220根据Client1配置的带宽为Client1分配时隙。
FPGA模拟FlexE Shim层的功能,将所创建的Client根据所配置的带宽映射到FlexE组的时隙上,对应该FlexE组的时隙集合的一个子集。
假设Client1配置的带宽为20G,FPGA220可以为Client1分配4个时隙(以分配时隙1~4为例)。
交换芯片210为Client1创建对应的INLK通道口(假设为INLK通道口1),为INLK通道口1配置对应的带宽(即20G),并为INLK通道口1分配一个端口号(假设为Port ID1)。
需要说明的是,Client与INLK通道口的对应关系可以由INLK协议自动分配或用户指定,本发明实施例对此不做限定。
此外,FlexE端口链路两侧的配置一致,从FlexE端口发送或接收的报文带有FlexE头,该FlexE头携带FlexE Group Number(FlexE组编号,用于标识FlexE组)、PHY number(物理层编号,用于标识FlexE端口)、Client Number(客户端编号,用于标识Client)、CalendarNumber(时隙编号,用于标识时隙)等信息,从而,FPGA220从FlexE端口接收到报文时,可以解析出对应的Client ID等信息,从而实现互通。
在该实施例中,对于从FlexE端口进入FPGA220的报文(本文中称为上行报文),FGPA220可以根据报文的FlexE头确定对应的Client ID,并确定与该Client ID对应的Channel ID,并根据该Channel ID对剥除FlexE头的报文进行INLK封装,并将带有INLK头的报文发送给交换芯片210。
例如,请参见图3A,假设FPGA220从物理端口231接收到报文311,FPGA220根据接收到的报文311的FlexE头确定Client ID为Client ID1,则FPGA220根据Client ID与ChannelID的对应关系,可以确定Client ID1对应的Channel ID为Channel ID1,FPGA220可以根据Channel ID1对剥除FlexE头的报文进行INLK封装,得到带有INLK头的报文312,并将带有INLK头的报文312通过INLK口发送给交换芯片210。
交换芯片210接收到带有INLK头的报文时,根据INLK头中携带的Channel ID确定对应的Port ID,并根据所确定的Port ID对剥除INLK头的报文进行转发。
对于向FPGA发送的报文(本文中称为下行报文),交换芯片210确定报文的出端口为INLK通道口时,对报文进行INLK封装,并将带有INLK头的报文通过INLK口发送给FPGA220。
FPGA220接收到带有INLK头的报文时,解析INLK头以确定Channel ID,并根据该Channel ID确定对应的Client ID,根据该Client ID对剥除INLK头的报文进行FlexE封装,并将通过该Client ID对应的时隙将带有FlexE头的报文从FlexE端口发送。
例如,请参见图3B,假设交换芯片210确定报文的出端口为INLK通道口时,对报文进行INLK封装,得到带有INLK头的报文321,并将带有INLK头的报文321通过INLK口发送给FPGA220;FPGA220接收到带有INLK头的报文321,解析INLK头以确定Channel ID,并根据该Channel ID确定对应的Client ID,根据该Client ID对剥除INLK头的报文进行FlexE封装,得到带有FlexE头的报文322,并根据Client ID选择发送报文322的时隙。
假设FPGA220确定的Client ID为Client ID1,则FPGA220可以从时隙1~4中选择时隙发送报文(通过物理端口231)。
在该实施例中,交换芯片可以将INLK通道口作为普通物理口,并通过针对INLK通道口进行端口配置,如协议/ACL/流控/带宽配置,实现对Client的端口配置,并基于所进行的配置对Client的报文进行转发控制。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过将FPGA与交换芯片的INLK口连接,并通过FPGA下接至少一个物理端口,FPGA创建Flex组,将被设置为FlexE端口的物理端口添加到FlexE组;FPGA在FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;交换芯片为第一Client创建第一INLK通道口,根据所配置的带宽为第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;对于通过第一Client发送的报文,交换芯片通过第一INLK通道口将该报文发送给FPGA,由FPGA通过为第一Client分配的时隙发送该报文;对于接收到的第一Client的报文,FPGA通过第一INLK通道口将该报文发送给交换芯片,由交换芯片根据第一INLK通道口对应的第一端口号对该报文进行转发,实现了交换芯片对FlexE协议的支持,扩展了FlexE协议的适用场景。
请参见图4,为本发明实施例提供的一种报文转发装置的结构示意图,如图4所示,该报文转发装置可以包括:交换芯片410以及与交换芯片410的INLK口连接的FPGA420,FPGA420下接至少一个物理端口;其中:
FPGA420,用于创建Flex组,将被设置为FlexE端口的物理端口添加到该FlexE组;
FPGA420,还用于在该FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙;
交换芯片410,用于为第一Client创建第一INLK通道口,根据所配置的带宽为第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;
交换芯片410,还用于对于通过第一Client发送的报文,通过第一INLK通道口将该报文发送给FPGA420,由FPGA420通过为第一Client分配的时隙发送该报文;
FPGA420,还用于对于接收到的第一Client的报文,通过第一INLK通道口将该报文发送给交换芯片410,由交换芯片410根据第一INLK通道口对应的第一端口号对该报文进行转发。
在可选实施例中,交换芯片410,具体用于当确定报文的出端口的端口号为第一INLK通道口对应的第一端口号时,根据第一INLK通道口为该报文封装INLK头,并将带有INLK头的报文通过与FPGA连接的INLK口发送给FPGA420;
FPGA420,具体用于根据第一INLK通道口,查询Client与INLK通道口的对应关系,确定与第一INLK通道口对应的第一Client;
FPGA420,还具体用于根据第一Client为剥除INLK头的报文封装FlexE头,并通过为第一Client分配的时隙发送该带有FlexE头的报文。
在可选实施例中,FPGA420,具体用于当接收到带有FlexE头的报文,且确定该FlexE头对应的Client为第一Client时,根据第一Client,查询Client与INLK通道口的对应关系,确定与第一Client对应的第一INLK通道口;
FPGA420,还具体用于根据第一INLK通道口为剥除FlexE头的报文封装INLK头,并将带有INLK头的报文通过与交换芯片连接的INLK口发送给交换芯片410;
交换芯片410,具体用于根据第一INLK通道口对应的第一端口号对剥除INLK头的报文进行转发。
在可选实施例中,交换芯片410,还用于根据针对第一INLK通道口的端口配置,对与第一INLK通道口对应的第一Client的报文进行转发控制。
在可选实施例中,交换芯片410,还用于为被设置为普通以太端口的物理端口创建对应的INLK通道口,并根据被设置为普通以太口的物理端口支持的速率为所该INLK通道口设置带宽。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过将FPGA与交换芯片的INLK口连接,并通过FPGA下接至少一个物理端口,FPGA创建Flex组,将被设置为FlexE端口的物理端口添加到FlexE组;FPGA在FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;交换芯片为第一Client创建第一INLK通道口,根据所配置的带宽为第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;对于通过第一Client发送的报文,交换芯片通过第一INLK通道口将该报文发送给FPGA,由FPGA通过为第一Client分配的时隙发送该报文;对于接收到的第一Client的报文,FPGA通过第一INLK通道口将该报文发送给交换芯片,由交换芯片根据第一INLK通道口对应的第一端口号对该报文进行转发,实现了交换芯片对FlexE协议的支持,扩展了FlexE协议的适用场景。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种报文转发方法,应用于交换设备,其特征在于,所述交换设备包括交换芯片以及与所述交换芯片的INLK口连接的现场可编程门阵列FPGA,所述FPGA下接至少一个物理端口,所述方法包括:
所述FPGA创建FlexE组,将被设置为FlexE端口的所述物理端口添加到所述FlexE组;
所述FPGA在所述FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙;以及,
所述交换芯片为所述第一Client创建第一INLK通道口,根据所配置的带宽为所述第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;
对于通过所述第一Client发送的报文,所述交换芯片通过所述第一INLK通道口将该报文发送给所述FPGA,由所述FPGA通过为所述第一Client分配的时隙发送该报文;
对于接收到的所述第一Client的报文,所述FPGA通过所述第一INLK通道口将该报文发送给所述交换芯片,由所述交换芯片根据所述第一INLK通道口对应的所述第一端口号对该报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述交换芯片通过所述第一INLK通道口将该报文发送给所述FPGA,由所述FPGA通过为所述第一Client分配的时隙发送该报文,包括:
当所述交换芯片确定报文的出端口的端口号为所述第一INLK通道口对应的第一端口号时,根据所述第一INLK通道口为该报文封装INLK头,并将带有INLK头的报文通过与所述FPGA连接的INLK口发送给所述FPGA;
所述FPGA根据所述第一INLK通道口,查询Client与INLK通道口的对应关系,确定与所述第一INLK通道口对应的所述第一Client;
所述FPGA根据所述第一Client为剥除INLK头的报文封装FlexE头,并通过为所述第一Client分配的时隙发送该带有FlexE头的报文。
3.根据权利要求1所述的方法,其特征在于,所述FPGA通过所述第一INLK通道口将该报文发送给所述交换芯片,由所述交换芯片根据所述第一INLK通道口对应的所述第一端口号对该报文进行转发,包括:
当所述FPGA接收到带有FlexE头的报文,且确定该FlexE头对应的Client为所述第一Client时,根据所述第一Client,查询Client与INLK通道口的对应关系,确定与所述第一Client对应的所述第一INLK通道口;
所述FPGA根据所述第一INLK通道口为剥除FlexE头的报文封装INLK头,并将带有INLK头的报文通过与所述交换芯片连接的INLK口发送给所述交换芯片;
所述交换芯片根据所述第一INLK通道口对应的第一端口号对剥除INLK头的报文进行转发。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述交换芯片根据针对第一INLK通道口的端口配置,对与第一INLK通道口对应的第一Client的报文进行转发控制。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述交换芯片为被设置为普通以太端口的所述物理端口创建对应的INLK通道口,并根据被设置为普通以太口的所述物理端口支持的速率为所该INLK通道口设置带宽。
6.一种报文转发装置,应用于交换设备,其特征在于,所述装置包括:交换芯片以及与所述交换芯片的INLK口连接的现场可编程门阵列FPGA,所述FPGA下接至少一个物理端口;其中:
所述FPGA,用于创建FlexE组,将被设置为FlexE端口的所述物理端口添加到所述FlexE组;
所述FPGA,还用于在所述FlexE组中创建第一Client,并根据所配置的带宽为第一Client分配时隙;其中,一个FlexE端口对应预设数量的时隙;
所述交换芯片,用于为所述第一Client创建第一INLK通道口,根据所配置的带宽为所述第一INLK通道口设置带宽,并为第一INLK通道口分配第一端口号;
所述交换芯片,还用于对于通过所述第一Client发送的报文,通过所述第一INLK通道口将该报文发送给所述FPGA,由所述FPGA通过为所述第一Client分配的时隙发送该报文;
所述FPGA,还用于对于接收到的所述第一Client的报文,通过所述第一INLK通道口将该报文发送给所述交换芯片,由所述交换芯片根据所述第一INLK通道口对应的所述第一端口号对该报文进行转发。
7.根据权利要求6所述的装置,其特征在于,
所述交换芯片,具体用于当确定报文的出端口的端口号为所述第一INLK通道口对应的第一端口号时,根据所述第一INLK通道口为该报文封装INLK头,并将带有INLK头的报文通过与所述FPGA连接的INLK口发送给所述FPGA;
所述FPGA,具体用于根据所述第一INLK通道口,查询Client与INLK通道口的对应关系,确定与所述第一INLK通道口对应的所述第一Client;
所述FPGA,还具体用于根据所述第一Client为剥除INLK头的报文封装FlexE头,并通过为所述第一Client分配的时隙发送该带有FlexE头的报文。
8.根据权利要求6所述的装置,其特征在于,
所述FPGA,具体用于当接收到带有FlexE头的报文,且确定该FlexE头对应的Client为所述第一Client时,根据所述第一Client,查询Client与INLK通道口的对应关系,确定与所述第一Client对应的所述第一INLK通道口;
所述FPGA,还具体用于根据所述第一INLK通道口为剥除FlexE头的报文封装INLK头,并将带有INLK头的报文通过与所述交换芯片连接的INLK口发送给所述交换芯片;
所述交换芯片,具体用于根据所述第一INLK通道口对应的第一端口号对剥除INLK头的报文进行转发。
9.根据权利要求6所述的装置,其特征在于,
所述交换芯片,还用于根据针对第一INLK通道口的端口配置,对与第一INLK通道口对应的第一Client的报文进行转发控制。
10.根据权利要求6所述的装置,其特征在于,
所述交换芯片,还用于为被设置为普通以太端口的所述物理端口创建对应的INLK通道口,并根据被设置为普通以太口的所述物理端口支持的速率为所该INLK通道口设置带宽。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910468828.2A CN110166382B (zh) | 2019-05-31 | 2019-05-31 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910468828.2A CN110166382B (zh) | 2019-05-31 | 2019-05-31 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166382A CN110166382A (zh) | 2019-08-23 |
CN110166382B true CN110166382B (zh) | 2021-04-27 |
Family
ID=67630829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910468828.2A Active CN110166382B (zh) | 2019-05-31 | 2019-05-31 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166382B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113452623B (zh) * | 2020-03-26 | 2023-11-14 | 华为技术有限公司 | 基于FlexE传输业务流的方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850465A (zh) * | 2016-12-27 | 2017-06-13 | 深圳市海思半导体有限公司 | 一种Flex E数据交换方法及交换设备 |
WO2018111612A1 (en) * | 2016-12-13 | 2018-06-21 | Ciena Corporation | Flexible ethernet enhanced forward error correction |
CN109150361A (zh) * | 2017-06-16 | 2019-01-04 | 中国移动通信有限公司研究院 | 一种传输网络系统、数据交换和传输方法、装置及设备 |
CN109417533A (zh) * | 2016-07-06 | 2019-03-01 | 华为技术有限公司 | 发送数据的方法和转发设备 |
CN109479006A (zh) * | 2016-07-06 | 2019-03-15 | 华为技术有限公司 | 生成转发表的方法和转发设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10505655B2 (en) * | 2016-07-07 | 2019-12-10 | Infinera Corp. | FlexE GMPLS signaling extensions |
CN109698728B (zh) * | 2017-10-20 | 2021-04-06 | 深圳市中兴微电子技术有限公司 | Interlaken接口与FlexE IMP的对接方法、对接设备及存储介质 |
-
2019
- 2019-05-31 CN CN201910468828.2A patent/CN110166382B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417533A (zh) * | 2016-07-06 | 2019-03-01 | 华为技术有限公司 | 发送数据的方法和转发设备 |
CN109479006A (zh) * | 2016-07-06 | 2019-03-15 | 华为技术有限公司 | 生成转发表的方法和转发设备 |
WO2018111612A1 (en) * | 2016-12-13 | 2018-06-21 | Ciena Corporation | Flexible ethernet enhanced forward error correction |
CN106850465A (zh) * | 2016-12-27 | 2017-06-13 | 深圳市海思半导体有限公司 | 一种Flex E数据交换方法及交换设备 |
CN109150361A (zh) * | 2017-06-16 | 2019-01-04 | 中国移动通信有限公司研究院 | 一种传输网络系统、数据交换和传输方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
"基于FlexE的承载网络分片隔离技术研究和应用";欧阳春波等;《电信技术》;20181225;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110166382A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2687043B1 (en) | Joint management of radio and transport resources | |
US7720088B2 (en) | Method for time division multiplexing data transport | |
US20210306272A1 (en) | Network slice control method and apparatus, and computer readable storage medium | |
US12021560B1 (en) | Apparatus and method for joint profile-based slicing of mobile access and optical backhaul | |
CN108965157B (zh) | 数据传输方法、装置、设备及系统 | |
WO2015087307A1 (en) | Multiplexing and demultiplexing common public radio interface data streams | |
CN110073613B (zh) | 数据通信系统、光线路终端及基带单元 | |
EP3761571A1 (en) | Method, device and system for handling message fragmentation | |
WO2002013410A2 (en) | System and method for transmitting control information between cascaded devices | |
EP3562080A1 (en) | Method and device for data transmission of front-haul transport network, and computer storage medium | |
KR20200033963A (ko) | 서비스 다중화 방법, 서비스 역다중화 방법, 및 관련 장치 | |
CN110166382B (zh) | 一种报文转发方法及装置 | |
CN113037641B (zh) | 一种FlexE中的数据转发方法及网络设备 | |
US20070053374A1 (en) | Multi-service communication system | |
US20230308788A1 (en) | Communication method and apparatus | |
KR20080018055A (ko) | 패킷 데이터 송수신 방법 및 장치 | |
KR20080015693A (ko) | 이동통신시스템에서 단말의 버퍼 상태 보고 방법 및 장치 | |
EP3419248B1 (en) | Data processing method self-adaptive to access network architectures, access network architecture | |
CN111133833A (zh) | 用于无线电信网络的前传系统 | |
US20060188257A1 (en) | Method for transmitting data in synchronous Ethernet passive optical network | |
CN106712983B (zh) | 运行、管理和维护oam报文处理方法及装置 | |
CN113453164B (zh) | 在nr小区中广播mbms的方法、装置及设备 | |
US7672231B1 (en) | System for multiplying communications capacity on a time domain multiple access network using slave channeling | |
CN111278059B (zh) | 一种报文转发方法和装置 | |
WO2020154833A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |