BIER multicast message processing method and device
附图说明 图1是根据本发明一实施方式的BIER组播报文的处理方法流程图; 图2是根据本发明一实施方式的报文处理芯片获取报文编辑配置的流程图; 图3是根据本发明一实施方式的报文处理芯片利用报文编辑配置处理报文的流程图; 图4是根据本发明一实施方式的BIER组播报文的处理装置结构框图。 技术领域 本发明是关于网络通信技术领域,特别是关于一种BIER组播报文的处理方法及实现该处理方法的装置。 具体实施方式 下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。 除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。 如图1至图3所示,根据本发明优选实施方式的一种BIER组播报文的处理方法,能够实现高带宽、高性能的BIER组播报文转发处理。具体地,BIER组播报文的处理方法包括如下步骤: S100,报文处理芯片接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文; 具体地,如图2所示,在BIER网络中,BIER组播流由多个BIER组播报文组成。同一个BIER组播流中,每个BIER组播报文对应的转发处理方式相同。为了能够实现BIER组播报文的高带宽、高性能转发处理,网络交换设备内的报文处理芯片在接收到BIER组播报文后,首先判断该BIER组播报文是否为BIER组播流中的首个BIER组播报文。这里确定该BIER组播报文是否为BIER组播流中的首个BIER组播报文的目的是为了后续获取该BIER组播报文对应的报文编辑配置,以使报文处理芯片利用该报文编辑配置对该BIER组播流中的后续BIER组播报文执行相同的转发处理操作。 进一步地,报文处理芯片通过如下步骤确定BIER组播报文是否为BIER组播流中的首个BIER组播报文: 首先,报文处理芯片对BIER组播报文进行解析,以获得BIER组播报文携带的BIFTID(BitIndexForwardingTableIdentityDocument,位索引转发表身份标识号)和BitString(位串)信息。这里的BIFTID和BitString信息可通过对BIER组播报文的BIER头部进行解析获得。BIER头部包括BIFTID字段和BitString字段。其中,BIFTID用于标识组播组编号;BitString用于标识BIER组播报文需要组播复制到的目的设备。因而通过对BIER头部进行解析,可获得BIFTID和BitString信息。 最后,报文处理芯片利用所述BIFTID和BitString信息查找本地所存储的BIFTID和BitString信息。当匹配时确定该BIER组播报文并非为该BIER组播流量中的首个BIER组播报文,这是因为:当BIER组播报文被报文处理芯片处理过时,报文处理芯片所接收到的用于对该BIER组播报文进行处理的报文编辑配置中包含有其中,BIFTID用于标识组播组编号;BitString用于标识BIER组播报文需要组播复制到的目的设备。因而可通过利用BIFTID和BitString信息来确定是否为BIER组播流中的首个BIER组播报文。当未匹配到时确定该BIER组播报文为该BIER组播流量中的首个BIER组播报文。本实施例中,报文处理芯片包括但不限于交换芯片。 S200,报文处理芯片响应于是BIER组播流中的首个BIER组播报文,将该BIER组播报文转发至配置下发芯片。 具体地,如图2所示,当报文处理芯片确定该BIER组播报文是BIER组播流量中的首个BIER组播报文后,便将该BIER组播报文转发至配置下发芯片中,以使配置下发芯片可根据该BIER组播下发对应的报文编辑配置。这里的配置下发芯片优选设于网络交换设备内部的CPU,CPU通过相应软件对BIER组播报文进行分析,以确定相应的报文编辑配置。 S300,报文处理芯片接收与该BIER组播报文相对应的报文编辑配置,并根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理,所述报文编辑配置是配置下发芯片根据接收到的BIER组播报文生成的。 具体地,结合图2和图3所示,报文处理芯片将首个BIER组播报文转发至配置下发芯片中后,配置下发芯片利用该BIER组播报文携带的相关信息生成对应的报文编辑配置,并将该报文编辑配置下发至报文处理芯片中,以便于报文处理芯片可利用该报文编辑配置对BIER组播流中后续的BIER组播报文进行转发处理。 由上可知,BIER组播报文的BIER头部中携带BIFTID和BitString信息,配置下发芯片可利用该BIFTID和BitString信息生成报文编辑配置,该报文编辑配置包括组播复制时的出端口及每个出端口对应的报文编辑行为。具体实施时,配置下发芯片根据BIFTID确定BIER转发表,并利用BitString与BIER转发表中每个表项的F-BM进行与运算,根据计算结果确定出端口。与此同时,配置下发芯片还可获得该出端口对应的报文编辑行为。最终,配置下发芯片可利用该BIER组播报文携带的BIFTID和BitString信息获得组播复制时的出端口以及每个出端口对应的报文编辑行为,即获得报文编辑配置。 当配置下发芯片获得报文编辑配置之后,将该报文编辑配置下发至报文处理芯片,进而使得报文处理芯片可利用该报文编辑配置对BIER组播流中的后续BIER组播报文进行转发处理。在报文处理芯片中,报文编辑配置中的出端口通过组播表项进行关联,同时,每个出端口对应的报文编辑行为关联在组播表项的对应出端口下,至此报文处理芯片将报文编辑配置配置到其内部,以便于利用该报文编辑配置对后续BIER组播报文进行相应处理。 进一步地,在报文处理芯片中,组播表项的资源有限,因而还需提高组播表项的资源利用率。为了提高资源利用率,本发明通过对报文编辑配置进行老化处理,以提高组播表项的资源利用率。即对于长时间停止的BIER组播流,将其对应的报文编辑配置进行老化处理。在实施时,可通过相应硬件(如报文处理芯片)对每个BIER组播流进行实时报文统计,通过软件定时获取统计信息,根据统计信息确定是否对报文编辑配置进行老化处理。对于长时间停止的BIER组播流,对报文处理芯片中对应的报文编辑配置进行老化,即对该报文编辑配置进行删除处理,以完成老化操作。 如图3所示,报文处理芯片接收完报文编辑配置后,进而可利用该报文编辑配置对后续BIER组播报文进行转发处理。具体处理时,报文处理芯片对接收到的BIER组播报文进行解析处理,获得BIER组播报文携带的BIFTID和BitString信息。其中,BIFTID可用于标识组播组编号,以区分每个组播域。BitString可用于确定组播成员端口。因而,报文处理芯片可通过BIFTID确定BIER组播报文的BIER组播流,进而确定BIER组播流对应的报文编辑配置。与此同时,通过BitString确定组播组内所有成员出端口。报文处理芯片可从对应的报文编辑配置中获取每个出端口对应的报文编辑行为。由上可知,BIER组播流中的每个BIER组播报文无需均通过CPU芯片进行处理,因而,可实现BIER组播报文的高性能转发处理,降低CPU负载。 进一步地,对于出端口为BIER域边缘端口时,还需对BIER组播报文剥除BIER头部后进行转发处理,即从该出端口将一份已剥除BIER头部的组播报文转发出去。具体实施时,BIER组播报文先进行BIER头部的剥除,并在剥除后进行本地环回,在本地环回后,对剥除BIER头部后的组播报文进行完整的业务转发处理。 如图4所示,根据本发明优选实施方式的一种BIER组播报文的处理装置,可实现上述所述的处理方法,能够实现高带宽、高性能的BIER组播报文转发处理。具体地,处理装置包括报文处理芯片和配置下发芯片。其中,报文处理芯片用于报文处理芯片接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文,并在是BIER组播流中的首个BIER组播报文时将该BIER组播报文转发至配置下发芯片,进一步接收与该BIER组播报文相对应的报文编辑配置,并根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理;配置下发芯片用于根据接收到的BIER组播报文生成报文编辑配置。这里的配置下发芯片优选设于网络交换设备内部的CPU,CPU通过相应软件对BIER组播报文进行分析,以确定相应的报文编辑配置。报文处理芯片和配置下发芯片如何实现相应功能,具体详见上述,在此不再一一赘述。 本发明通过报文处理芯片识别BIER组播流中的首个BIER组播报文并将其输送至配置下发芯片中,由配置下发芯片下发针对BIER组播报文的报文编辑配置,在后续BIER组播报文转发处理过程中,由报文处理芯片利用该报文编辑配置对后续BIER组播报文进行处理,无需配置下发芯片(如CPU)参与,可提高网络交换设备对BIER组播的转发性能,突破了传统软件方案的性能瓶颈,在现有网络交换设备架构下,进行高性能、高带宽的BIER组播转发。 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。 前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。 背景技术 BIER(BitIndexExplicitReplication,位索引显式复制)是一种新的组播技术。与传统组播技术相比,其通过将组播报文目的节点的集合以比特串的方式封装在报文头部进行发送,使网络中间节点无需为每一个组播流(Per-flow)建立组播树及保存组播流状态,仅需根据报文头部的目的节点的集合进行复制转发。 目前,网络交换设备在收到BIER组播报文后将该BIER组播报文转发至网络交换设备内部的CPU。通过CPU进行报文编辑、报文转发复制等操作。也就是说,针对BIER组播流中的每个BIER组播报文均通过CPU进行报文编辑、报文转发复制等操作。然而,网络交换设备内部的CPU性能有限,仅支持很小带宽的BIER组播处理,无法满足高带宽场景下的BIER组播处理。并且CPU持续处理BIER组播报文,长时间处于高负荷状态,也影响CPU本身业务。 因而,如何实现高带宽、高性能的BIER组播报文转发处理是亟需解决的问题。 公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。 发明内容 本发明的目的在于提供一种BIER组播报文的处理方法,其能够实现高带宽、高性能的BIER组播报文转发处理。 本发明的另一目的在于提供一种BIER组播报文的处理装置,能够实现所述报文处理方法,能够实现高带宽、高性能的BIER组播报文转发处理。 为实现上述目的,本发明的实施例提供了一种BIER组播报文的处理方法,所述处理方法包括: 报文处理芯片接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文; 报文处理芯片响应于是BIER组播流中的首个BIER组播报文,将该BIER组播报文转发至配置下发芯片; 报文处理芯片接收与该BIER组播报文相对应的报文编辑配置,并根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理,所述报文编辑配置是配置下发芯片根据接收到的BIER组播报文生成的。 在本发明的一个或多个实施方式中,所述报文处理芯片通过如下步骤判断其是否为首次接收到的BIER组播报文: 报文处理芯片对BIER组播报文进行解析,获得BIFTID和BitString信息; 报文处理芯片利用所述BIFTID和BitString信息查找本地存储的BIFTID和BitString信息; 报文处理芯片响应于未查找到,确定BIER组播报文为首次接收到的BIER组播报文。 在本发明的一个或多个实施方式中,所述配置下发芯片通过如下步骤生成报文编辑配置: 配置下发芯片对所述BIER组播报文进行解析,获得BIFTID和BitString信息; 配置下发芯片根据所述BIFTID确定相应的BIER转发表,并利用BitString查找所述BIER转发表,获得出端口及出端口对应的报文编辑行为; 配置下发芯片利用所述出端口及出端口对应的报文编辑行为形成报文编辑配置。 在本发明的一个或多个实施方式中,所述报文处理芯片接收报文编辑配置后,将报文编辑配置中的出端口与组播表项进行关联,并将每个出端口对应的报文编辑行为关联相应出端口。 在本发明的一个或多个实施方式中,所述根据该报文编辑配置对后续该BIER组播报文进行转发处理包括: 报文处理芯片对BIER组播报文进行解析,获得BIFTID和BitString; 根据所述BIFTID及BitString获得对应的组播组及组播组内出端口成员; 报文处理芯片根据每个出端口对应的报文编辑配置中的报文编辑行为对组播报文进行编辑并转发。 在本发明的一个或多个实施方式中,当出端口为BIER域边缘端口时,剥除BIER报文头后进行本地环回转发。 在本发明的一个或多个实施方式中,所述报文处理芯片对报文编辑配置定期老化。 在本发明的一个或多个实施方式中,所述老化包括: 对每条BIER组播流进行统计; 根据统计信息确定已停止的BIER组播流,并将该组播流对应的报文编辑配置删除。 本发明的实施例提供了一种BIER组播报文的处理装置,其特征在于,所述处理装置包括: 报文处理芯片,用于接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文,并在BIER组播报文是BIER组播流中的首个BIER组播报文时将该BIER组播报文转发至配置下发芯片,进一步接收接收与该BIER组播报文相对应的报文编辑配置,根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理; 配置下发芯片,用于根据接收到的BIER组播报文生成报文编辑配置并传输至报文处理芯片中。 在本发明的一个或多个实施方式中,所述配置下发芯片内置于报文处理芯片所在的网络交换设备中。 与现有技术相比,本发明通过报文处理芯片识别BIER组播流中的首个BIER组播报文并将其输送至配置下发芯片中,由配置下发芯片下发针对BIER组播报文的报文编辑配置,在后续BIER组播报文转发处理过程中,由报文处理芯片利用该报文编辑配置对后续BIER组播报文进行处理,无需配置下发芯片(如CPU)参与,可提高网络交换设备对BIER组播的转发性能,突破了传统软件方案的性能瓶颈,在现有网络交换设备架构下,进行高性能、高带宽的BIER组播转发。 The invention discloses a BIER multicast message processing method and device, and belongs to the technical field of network communication. The processing method comprises the following steps: the message processing chip receives a BIER multicast message and judges whether the BIER multicast message is the first BIER multicast message in a BIER multicast stream; the message processing chip responds to the first BIER multicast message in the BIER multicast stream, and forwards the BIER multicast message to the configuration issuing chip; and the message processing chip receives a message editing configuration corresponding to the BIER multicast message, and carries out forwarding processing on a subsequent BIER multicast message in the BIER multicast stream according to the message editing configuration. According to the invention, high-bandwidth and high-performance BIER multicast message forwarding processing can be realized. 1.一种BIER组播报文的处理方法,其特征在于,所述处理方法包括: 报文处理芯片接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文; 报文处理芯片响应于是BIER组播流中的首个BIER组播报文,将该BIER组播报文转发至配置下发芯片; 报文处理芯片接收与该BIER组播报文相对应的报文编辑配置,并根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理,所述报文编辑配置是配置下发芯片根据接收到的BIER组播报文生成的。 2.如权利要求1所述的处理方法,其特征在于,所述报文处理芯片通过如下步骤判断其是否为首次接收到的BIER组播报文: 报文处理芯片对BIER组播报文进行解析,获得BIFTID和BitString信息; 报文处理芯片利用所述BIFTID和BitString信息查找本地存储的BIFTID和BitString信息; 报文处理芯片响应于未查找到,确定BIER组播报文为首次接收到的BIER组播报文。 3.如权利要求1所述的处理方法,其特征在于,所述配置下发芯片通过如下步骤生成报文编辑配置: 配置下发芯片对所述BIER组播报文进行解析,获得BIFTID和BitString信息; 配置下发芯片根据所述BIFTID确定相应的BIER转发表,并利用BitString查找所述BIER转发表,获得出端口及出端口对应的报文编辑行为; 配置下发芯片利用所述出端口及出端口对应的报文编辑行为形成报文编辑配置。 4.如权利要求3所述的处理方法,其特征在于,所述报文处理芯片接收报文编辑配置后,将报文编辑配置中的出端口与组播表项进行关联,并将每个出端口对应的报文编辑行为关联相应出端口。 5.如权利要求1所述的处理方法,其特征在于,所述根据该报文编辑配置对后续该BIER组播报文进行转发处理包括: 报文处理芯片对BIER组播报文进行解析,获得BIFTID和BitString; 根据所述BIFTID及BitString获得对应的组播组及组播组内出端口成员; 报文处理芯片根据每个出端口对应的报文编辑配置中的报文编辑行为对组播报文进行编辑并转发。 6.如权利要求5所述的处理方法,其特征在于,当出端口为BIER域边缘端口时,剥除BIER报文头后进行本地环回转发。 7.如权利要求1所述的处理方法,其特征在于,所述报文处理芯片对报文编辑配置定期老化。 8.如权利要求7所述的处理方法,其特征在于,所述老化包括: 对每条BIER组播流进行统计; 根据统计信息确定已停止的BIER组播流,并将该组播流对应的报文编辑配置删除。 9.一种实现权利要求1~8任意一项所述的BIER组播报文的处理方法的处理装置,其特征在于,所述处理装置包括: 报文处理芯片,用于接收BIER组播报文并判断其是否为BIER组播流中的首个BIER组播报文,并在BIER组播报文是BIER组播流中的首个BIER组播报文时将该BIER组播报文转发至配置下发芯片,进一步接收接收与该BIER组播报文相对应的报文编辑配置,根据该报文编辑配置对所述BIER组播流中的后续BIER组播报文进行转发处理; 配置下发芯片,用于根据接收到的BIER组播报文生成报文编辑配置并传输至报文处理芯片中。 10.如权利要求9所述的处理装置,其特征在于,所述配置下发芯片内置于报文处理芯片所在的网络交换设备中。