报文转发方法及装置与流程

文档序号:12838963阅读:143来源:国知局
报文转发方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文转发方法及装置。



背景技术:

常用的宽带接入技术包括dsl(digitalsubscriberline,数字用户线路)、pon(passiveopticalnetwork,无源光纤网络)、以太网技术等等。使用这些技术的局端设备我们称之为网元,网元常常由1到2块主控板和多块接入业务的线卡组成。对于二层(数据链路层)业务,线卡上的以太网报文进行源地址学习和目的地址查找,如果目的端口是本线卡端口,直接本地交换,否则转发到主控板再进行源地址学习和目的地址转发;而对于三层(网络层)业务,一般进行分布式路由转发,或者线卡先进行源地址学习和目的地址查找,报文送到主控板以后,再由主控板进行路由转发,显然,无论是何种报文转发方式,每一块线卡都需要进行源地址学习和目的地址查找,导致线卡的设计复杂,器件成本高,报文转发过程较为繁琐,且效率低。



技术实现要素:

本发明的主要目的在于提出一种报文转发方法及装置,旨在解决现在的线卡设计复杂,器件成本高,报文转发过程较为繁琐,且效率低的技术问题。

为实现上述目的,本发明提供的一种报文转发方法,线卡和主控板通过堆叠口连接,所述报文转发方法包括:

线卡在接收到待转发的报文,获取所述报文的源端口和卡id信息;

所述线卡将获取的所述源端口和卡id信息封装至所述报文的堆叠口报文头中,并将封装有源端口和卡id信息的报文通过堆叠口发送至主控板,以供所述主控板学习所述源端口和卡id信息与报文的源mac地址和vlan的对应关系,再根据所述报文的目的mac地址和vlan查找预设的mac地址转发表中对应的目的端口和卡id,并将所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,以通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文转发至所述卡id对应的线卡;

所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文去掉堆叠口报文头并直接转发至所述目的端口。

优选地,所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文去掉堆叠口报文头并直接转发至所述目的端口的步骤包括:

所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识;

所述线卡根据预设的报文转发标识与报文转发策略的映射关系,获取解析的报文转发标识对应的报文转发策略;

所述线卡根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发去掉堆叠口报文头并直接转发至所述目的端口。

优选地,所述线卡在接收到待转发的报文,获取所述报文的源端口和卡id信息的步骤包括:

所述线卡在接收到待转发的报文,确定所述报文的报文类型;

在所述报文的报文类型满足预设类型时,获取所述报文的源端口和卡id信息。

此外,为实现上述目的,本发明还提出一种报文转发方法,线卡和主控板通过堆叠口连接,所述报文转发方法包括以下步骤:

主控板通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,提取所述源端口和卡id信息;

所述主控板进行源mac学习,将所述报文的源mac和vlan与源端口和卡id的对应关系设置到预设的mac地址转发表中;

所述主控板在所述mac地址转发表中根据所述报文的目的mac和vlan获取对应的目的端口和卡id信息;

所述主控板将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中,以供所述线卡在接收到封装有所述目的端 口和卡id信息的报文时,将封装有目的端口和卡id信息的报文去掉堆叠口报文头并转发至所述目的端口。

优选地,所述通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中的步骤之前,所述报文转发方法还包括:

所述主控板根据获取的所述目的端口和卡id信息,确定封装有目的端口和卡id信息的报文对应的报文转发标识;

所述主控板获取确定的报文转发标识;

所述主控板将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,以供所述线卡基于所述报文转发标识执行相应的报文转发策略。

此外,为实现上述目的,本发明还提出一种报文转发装置,线卡和主控板通过堆叠口连接,所述报文转发装置包括:

第一获取模块,用于在接收到待转发的报文,获取所述报文的源端口和卡id信息;

第一处理模块,用于将获取的所述源端口和卡id信息封装至所述报文的堆叠口报文头中,并将封装有源端口和卡id信息的报文通过堆叠口发送至主控板,以供所述主控板学习所述源端口和卡id信息与报文的源mac地址和vlan的对应关系,再根据所述报文的目的mac地址和vlan查找预设的mac地址转发表中对应的目的端口和卡id,并将所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,以通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文转发至所述卡id对应的线卡;

转发模块,用于在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文去掉堆叠口报文头并直接转发至所述目的端口。

优选地,所述转发模块包括:

解析单元,用于在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识;

第一获取单元,用于根据预设的报文转发标识与报文转发策略的映射关 系,获取解析的报文转发标识对应的报文转发策略;

转发单元,根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发去掉堆叠口报文头并直接发送至所述目的端口。

优选地,所述第一获取模块包括:

确定单元,用于在接收到待转发的报文,确定所述报文的报文类型;

第二获取单元,用于在所述报文的报文类型满足预设类型时,获取所述报文的源端口和卡id信息。

此外,为实现上述目的,本发明还提出一种报文转发装置,线卡和主控板通过堆叠口连接,所述报文转发装置包括:

提取模块,用于通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,提取所述源端口和卡id信息;

设置模块,用于进行源mac学习,将所述报文的源mac和vlan与源端口和卡id的对应关系设置到预设的mac地址转发表中;

第二获取模块,用于在所述mac地址转发表中根据所述报文的目的mac和vlan获取对应的目的端口和卡id信息;

第二处理模块,用于将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中,以供所述线卡在接收到封装有所述目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的报文去掉堆叠口报文头并转发至所述目的端口。

优选地,所述报文转发装置还包括:

确定模块,用于根据获取的所述目的端口和卡id信息,确定封装有目的端口和卡id信息的报文对应的报文转发标识;

第三获取模块,用于获取确定的报文转发标识;

添加模块,用于将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,以供所述线卡基于所述报文转发标识执行相应的报文转发策略。

本发明提出的报文转发方法及装置,在接收到待转发的报文时,直接将报文的源端口和卡id信息封装至所述报文中,并将封装有源端口和卡id信息的报文通过堆叠口发送至主控板,由主控板进行统一的源地址学习和目的地址查找,并在接收到主控板转发的封装有目的端口和卡id的报文时,直接转发报文到所述目的端口,从而提高了报文转发的便捷性和效率,同时由于线卡不用存储mac地址表,所以也降低了线卡的成本。

附图说明

图1为本发明报文转发方法第一实施例的流程示意图;

图2为本发明所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文去掉堆叠口报文头并直接转发至所述目的端口较佳实施例的流程示意图;

图3为本发明报文转发方法第二实施例的流程示意图;

图4为本发明报文转发装置第一实施例的功能模块示意图;

图5为图4中转发模块的细化功能模块示意图;

图6为本发明报文转发装置第二实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种报文转发方法。

参照图1,图1为本发明报文转发方法第一实施例的流程示意图。

本实施例提出一种报文转发方法,线卡和主控板通过堆叠口连接,所述报文转发方法包括:

步骤s10,线卡在接收到待转发的报文,获取所述报文的源端口和卡id信息;

在本实施例中,线卡和主控板优选通过堆叠口连接,而不是普通的以太网端口互联,因为堆叠口可以在普通的以太网报文头部增加堆叠口报文头, 而堆叠口报文头不仅可以包含报文的源端口和卡id信息、以及报文的目的端口和卡id信息,还可包含已知单播包、未知单播包、组播包或广播包等报文转发标识,进一步地,所述堆叠口的端口属性配置中还可包含是否需要进行地址学习、是否信任报文出口等参数信息,具体实现方式将在本实施例中的下文部分详述。

本实施例中,所述线卡可设置为转发固定类型的报文,即只接收并转发与线卡类型同种类型的报文,例如,线卡为以太网线卡时,则报文就是以太网报文,那么,以太网线卡在接收到以太网报文时,直接获取所述以太网报文的源端口和卡id信息。

进一步地,为了提高报文转发的灵活性,所述线卡可以是兼容多种报文类型的线卡,但是在转发报文时,若是与线卡类型不同的报文类型,就需要将报文的类型进行转换,即不同类型的线卡在转发报文时,需要先将接收到的报文转化为线卡能处理的报文类型,也就是说,dsl线卡在转发报文时,需要将dsl帧转换成以太网帧,pon线卡在转发报文时,也需要将pon帧转换成以太网帧,而以太网线卡在转发报文时则不需要进行转换。因此,在本实施例中,所述步骤s10包括以下步骤:

所述线卡在接收到待转发的报文,确定所述报文的报文类型;

在所述报文的报文类型满足预设类型时,获取所述报文的源端口和卡id信息。

所述线卡在接收到待转发的报文时,先确定所述报文的报文类型,然后将所述报文的报文类型与预设类型进行比对,所述预设类型就是以太网报文类型,在所述报文的报文类型满足预设类型时,即接收到的报文的报文类型为以太网报文类型时,直接获取所述报文的源端口和卡id信息;反之,在所述报文的报文类型不满足预设类型时,如接收到的报文的类型为dsl帧类型或pon帧类型时,先将接收到的报文对应的报文类型转化为以太网报文类型,形成以太网报文,然后再获取以太网报文的源端口和卡id信息,本实施例中的在线卡与主控之间进行交互的报文都是指以太网报文,此处进行统一说明,下文不再赘述。

进一步地,线卡也可以为混插普通以太网接口的线卡(即主控板与线卡之间的接口为普通以太网接口,称为以太网内联口),此时主控板转发表中只 能得知以太网内联口,而无法得知线卡上的用户口,此时,该线卡仍然需要进行二、三层(即数据链路层、网络层)转发,也就是说,在进行报文转发过程中,同一个网元中可以设置不同的接口的线卡,相当于是网元中既包括堆叠口、又包含以太网接口,那么,线卡在转发报文时,即可根据与主控板之间的接口,执行相应的报文转发过程,如在线卡与主控板的接口是堆叠口连接时,采取主控板学习源地址以及查找目的地址转发的方式;而在线卡与主控板的接口是以太网接口连接时,可以采用线卡学习源地址以及查找目的地址转发的方式,这样既可以降低采用堆叠口的新线卡的成本,又可以兼容采用以太网接口的老线卡,提高了系统的兼容性。

在本实施例中,所述源端口和卡id信息表示报文接收的端口号和线卡的卡号,其中,端口号既可以是物理端口号,也可以是虚端口号,进一步地,为提高报文转发的灵活性,所述源端口还可以包括报文的trunk(聚合)号等等。

步骤s20,所述线卡将获取的所述源源端口和卡id信息封装至所述报文的堆叠口报文头中,并将封装有源源端口和卡id信息的报文通过堆叠口发送至主控板,以供所述主控板学习所述源端口和卡id信息与报文的源mac地址和vlan的对应关系,再根据所述报文的目的mac地址和vlan查找预设的mac地址转发表中对应的目的端口和卡id,并将所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,以通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文转发至所述卡id对应的线卡;

在本实施例中,获取到所述报文的源端口和卡id信息后,将获取到的源端口和卡id信息封装至所述报文的堆叠口报文头中,由于堆叠口是在普通的以太网报文头部增加堆叠口报文头,因此,所述线卡将获取的源端口和卡id信息封装到堆叠口报文头中,即将报文发送终端的芯片号、端口号或trunk号封装到堆叠口报文头中,由于所述堆叠口报文头是报文的一部分,因此相当于将获取的所述源端口和卡id信息封装至所述的堆叠口报文头中,然后所述线卡将封装有源端口和卡id信息的报文通过堆叠口发送至主控板。

进一步地,所述堆叠口的属性配置中包含是否需要进行源地址学习、是否信任报文出口等参数信息,这些参数用于提示线卡或主控板是否需要进行源地址学习、是否信任报文出口,可以理解的是,堆叠口对应线卡所在的一 端时,所述堆叠口的属性配置为不需要进行源地址学习,以及信任报文出口,此时,所述线卡根据所述堆叠口的属性配置,即可直接将获取的源端口和卡id信息直接封装到堆叠口报文头中,以形成封装有源端口和卡id信息的报文,并将封装后的报文发送给主控板。

主控板在接收到线卡发送的封装有源端口和卡id信息的报文后,学习所述堆叠口报文头封装所述源端口和卡id信息对应的源mac地址和vlan信息,根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id,所述主控板将获取的所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,并通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文发送至对应线卡,同理,所述目的端口和卡id信息表示的是要发送的的端口号和线卡的id号。

步骤s30,所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文转发至所述目的端口。

在本实施例中,所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,先提取出报文中封装的目的端口和卡id信息,将封装有目的端口和卡id信息的所述报文转发至所述目的端口和卡id信息对应的出端口。

进一步地,所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,剥离出目的端口和卡id信息,并将剥离后的报文转发至所述目的端口和卡id信息对应的出端口,具体地,可以是剥离出报文的堆叠口报文头以剥离出目的端口和卡id信息,然后提取出堆叠口报文头中封装的目的端口和卡id信息,最后将剥离出堆叠口报文头的报文转发至所述目的端口和卡id信息对应的出端口。值得注意的是,当以太网报文要通过堆叠口进行传输时,才会在以太网报文的报文头部增加堆叠口报文头,若以太网报文不通过堆叠口进行传输,则不在报文头部增加堆叠口报文头,那么,可以理解的是,当线卡将报文转发至所述目的端口和卡id信息对应的出端口时,该报文已经剥离了堆叠口报文头,即该报文是不包括目的端口和卡id信息的报文。

本实施例中,为提高报文转发的灵活性,参照图2,所述步骤s30包括:

步骤s31,所述线卡在接收到所述主控板转发的封装有目的端口和卡id 信息的报文时,解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识;

步骤s32,所述线卡根据预设的报文转发标识与报文转发策略的映射关系,获取解析的报文转发标识对应的报文转发策略;

步骤s33,所述线卡根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发去掉堆叠口报文头并直接转发至所述目的端口。

在本实施例中,所述线卡在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,先解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识,本实施例中,所述报文转发标识优选为已知单播包、未知单播包、组播包、广播包的标识,由于已知单播包、未知单播包、组播包、广播包的标识不同,线卡的报文转发策略也不同,因此,所述线卡根据预设的报文转发标识与报文转发策略的映射关系,即可获取解析的报文转发标识对应的报文转发策略,最后再根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发至所述目的端口和卡id信息对应的出端口,例如,当所述报文转发标识为已知单播包时,对应的报文转发策略就是向一个出端口转发报文;当所述报文转发标识为未知单播包或广播包时,对应的报文转发策略就是向vlan内各个出端口复制报文;当所述报文转发标识为组播包时,对应的报文转发策略就是向组播组内的出端口复制报文,具体的,包括以下几种方式:

1)对于已知单播包,线卡直接提取出报文的目的端口和卡id信息,然后将报文转发至所述目的端口和卡id信息对应的终端;

2)对于未知单播包和广播包,线卡先确定其vlan(virtuallocalarea-network,虚拟局域网)内的所有用户端口(包括物理端口或虚端口或trunk口),然后将报文转发至所述vlan内的所有用户端口;

3)对于组播包,线卡先确定所述组播包对应的组播组,然后线卡将报文转发至确定的所述组播组的所有用户端口(包括物理端口或虚端口或trunk口)。

值得注意的是,对于找不到的组播组的组播包,按照未知单播包处理或者丢弃,即所述线卡可以直接向确定的vlan内的所有用户端口转发报文,也可将该报文丢弃,具体地,可以根据vlan属性进行配置。

应当理解的是,按转发策略进行报文转发,若所述报文标识为广播、洪泛或未知组播标识,在vlan内进行洪泛复制;若所述报文标识为已知组播标识,在组播组内进行洪泛复制;若所述报文标识为已知单播标识,将封装有目的端口和卡id信息的所述报文转发至所述目的端口。

在本实施例中,线卡在确定端口后转发报文之前,还包括步骤:先确定线卡类型,并在所述报文的报文类型与线卡类型不同时,将所述报文的报文类型转化为所述线卡类型进行转发,即不同业务类型的线卡(如dsl线卡、pon线卡或以太网线卡)分别把以太网报文转换成特定业务类型的帧,然后发送出去。

本发明提出的报文转发方法,在接收到待转发的报文时,直接将报文的源端口和卡id信息封装至所述报文中,并将封装有源端口和卡id信息的报文通过堆叠口发送至主控板,由主控板进行统一的源地址学习和目的地址查找,并在接收到主控板转发的封装有目的端口和卡id的报文时,直接转发报文到所述目的端口,从而提高了报文转发的便捷性和效率,同时由于线卡不用存储mac地址表,所以也降低了线卡的成本。进一步地,不需要在线卡中进行源地址学习和目的地址查找,避免了在每个线卡中配置一个地址转发表,简化了线卡的设计,降低线卡的器件成本。

进一步地,为了提高报文转发的灵活性,基于第一实施例提出本发明报文转发方法的第二实施例,在本实施例,参照图3,所述报文通道的检测方法包括:

步骤s40,主控板通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,提取所述源端口和卡id信息;

在本实施例中,线卡和主控板是通过堆叠口连接的,而且从第一实施例可知,因为堆叠口可以在普通的以太网报文头部增加堆叠口报文头,而堆叠口报文头不仅可以包含报文接收端口对应的源端口和卡id信息、以及报文发送端口对应的目的端口和卡id信息,还可包含已知单播包、未知单播包、组播包或广播包等报文转发标识,进一步地,所述堆叠口的端口属性配置中还可包含是否需要进行地址学习、是否信任报文出口等参数信息。

从第一实施中可知,堆叠口的属性配置在线卡所在一端时,属性配置是 不需要进行地址学习、以及信任报文出口的,因此线卡才直接获取源端口和卡id信息,并将封装有源端口和卡id信息的报文直接转发至主板。因此,堆叠口的属性配置在主控板所在一端时,属性配置是需要进行地址学习、以及不信任报文出口的,此时,所述主控板在接收到的封装有源端口和卡id信息的报文中,提取出所述源端口和卡id信息进行地址学习,后续再进行目的地址的转发。

步骤s50,所述主控板进行源mac学习,将所述报文的源mac和vlan与源端口和卡id的对应关系设置到预设的mac地址转发表中;

步骤s60,所述主控板在所述mac地址转发表中根据所述报文的目的mac和vlan获取对应的目的端口和卡id信息;

而主控板通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,可直接提取所述源端口和卡id信息,或者先剥离出堆叠口报文头,然后从剥离出的报文头中提取出源端口和卡id信息,在提取出源端口和卡id信息后,所述主控板将报文中的源mac地址、vlan以及提取的源端口和卡id信息与预设的地址转发表进行比对,以确定所述地址转发表中是否存在mac地址信息,若不存在,则将报文中的源mac地址、vlan以及提取的源端口和卡id信息写入地址表,若存在就刷新一下命中标志。然后根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id。

步骤s70,所述主控板将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中,以供所述线卡在接收到封装有所述目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的报文去掉堆叠口报文头并转发至所述目的端口。

在本实施例中,所述主控板将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并保留堆叠口报文头中的源端口和卡id信息,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中。

进一步地,所述通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中的步骤之前,所述报文转发方法还包括:

所述主控板根据获取的所述目的端口和卡id信息,确定封装有目的端口 和卡id信息的报文对应的报文转发标识;

所述主控板获取确定的报文转发标识;

所述主控板将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,以供所述线卡基于所述报文转发标识执行相应的报文转发策略。

在本实施例中,所述主控板通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述线卡中之前,先根据mac地址表中目的mac地址的查找结果,确定所述报文对应的报文转发标识,确定所述报文对应的报文转发标识的方式包括:a、mac地址表中可以查到的单播地址可以确定报文转发标识为已知单播包标识,mac地址表中没有查到的单播地址可以确定报文转发标识为未知单播包标识,地址为广播包可以确定报文转发标识为广播包标识;mac地址表中可以查到的组播地址可以确定报文转发标识为已知组播包标识;mac地址表中没有查到的组播地址可以确定报文转发标识为未知组播包标识。在确定了报文转发标识之后,获取确定的报文转发标识,从第一实施例中可知,所述报文转发标识表示已知单播包、未知单播包、已知组播包、未知组播包、广播包的标识,那么在获取到报文转发标识后,将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,最后作为封装有目的端口和卡id信息的报文转发给线卡。

本发明提出的报文转发方法,主控板通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,先提取所述源端口和卡id信息,然后学习所述堆叠口报文头封装所述源端口和卡id信息对应的源mac地址和vlan信息,根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id,所述主控板将获取的所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,并通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文发送至对应线卡,从而提高了报文转发的效率和便捷性,降低了线卡的成本。

本发明进一步提供一种报文转发装置。

参照图4,图4为本发明报文转发装置第一实施例的功能模块示意图。

需要强调的是,对本领域的技术人员来说,图4所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图4所示的报文转发装置 的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该报文转发装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。

本实施例提出一种报文转发装置,线卡和主控板通过堆叠口连接,所述报文转发装置包括:

第一获取模块10,用于在接收到待转发的报文,获取所述报文的源端口和卡id信息;

在本实施例中,线卡和主控板优选通过堆叠口连接,而不是普通的以太网端口互联,因为堆叠口可以在普通的以太网报文头部增加堆叠口报文头,而堆叠口报文头不仅可以包含报文发送终端对应的源端口和卡id信息、以及报文接收终端对应的目的端口和卡id信息,还可包含已知单播包、未知单播包、已知组播包、未知组播包或广播包等报文转发标识,进一步地,所述堆叠口的端口属性配置中还可包含是否需要进行地址学习、是否信任报文出口等参数信息,具体实现方式将在本实施例中的下文部分详述。

本实施例中,所述线卡可设置为转发固定类型的报文,即只接收并转发与线卡类型同种类型的报文,例如,线卡为以太网线卡时,则报文就是以太网报文,那么,以太网线卡在接收到以太网报文时,直接获取所述以太网报文的源端口和卡id信息。

进一步地,为了提高报文转发的灵活性,所述线卡可以是兼容多种报文类型的线卡,但是在转发报文时,若是与线卡类型不同的报文类型,就需要将报文的类型进行转换,即不同类型的线卡在转发报文时,需要先将接收到的报文转化为线卡能处理的报文类型,也就是说,dsl线卡在转发报文时,需要将dsl帧转换成以太网帧,pon线卡在转发报文时,也需要将pon帧转换成以太网帧,而以太网线卡在转发报文时则不需要进行转换。因此,在本实施例中,所述第一获取模块10包括:

确定单元,用于在接收到待转发的报文,确定所述报文的报文类型;

第二获取单元,用于在所述报文的报文类型满足预设类型时,获取所述报文的源端口和卡id信息。

即所述第一获取模块10在接收到待转发的报文时,所述确定单元先确定 所述报文的报文类型,然后将所述报文的报文类型与预设类型进行比对,所述预设类型就是以太网报文类型,在所述报文的报文类型满足预设类型时,即接收到的报文的报文类型为以太网报文类型时,所述第二获取单元直接获取所述报文的源端口和卡id信息;反之,在所述报文的报文类型不满足预设类型时,如接收到的报文的类型为dsl帧类型或pon帧类型时,先将接收到的报文对应的报文类型转化为以太网报文类型,形成以太网报文,然后再获取以太网报文的源端口和卡id信息,本实施例中的在线卡与主控之间进行交互的报文都是指以太网报文,此处进行统一说明,下文不再赘述。

进一步地,线卡也可以为混插普通以太网接口的线卡(即主控板与线卡之间的接口为普通以太网接口,称为以太网内联口),此时主控板转发表中只能得知以太网内联口,而无法得知线卡上的用户口,此时,该线卡仍然需要进行二、三层(即数据链路层、网络层)转发,也就是说,在进行报文转发过程中,同一个网元中可以设置不同的接口的线卡,相当于是网元中既包括堆叠口、又包含以太网接口,那么,线卡在转发报文时,即可根据与主控板之间的接口,执行相应的报文转发过程,如在线卡与主控板的接口是堆叠口连接时,采取主控板学习源地址以及查找目的地址转发的方式;而在线卡与主控板的接口是以太网接口连接时,可以采用线卡学习源地址以及查找目的地址转发的方式,这样既可以降低采用堆叠口的新线卡的成本,又可以兼容采用以太网接口的老线卡,提高了系统的兼容性。

在本实施例中,所述源端口和卡id信息表示报文接收端口的端口号和卡号,其中,端口号既可以是物理端口号,也可以是虚端口号,进一步地,为提高报文转发的灵活性,所述源端口还可以为trunk(聚合)号等等。

第一处理模块20,用于将获取的所述源端口和卡id信息封装至所述报文的堆叠口报文头中,并将封装有源端口和卡id信息的报文通过堆叠口发送至主控板,以供所述主控板学习所述源端口和卡id信息与报文的源mac地址和vlan的对应关系,再根据所述报文的目的mac地址和vlan查找预设的mac地址转发表中对应的目的端口和卡id,并将所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,以通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文转发至所述卡id对应的线卡;

在本实施例中,所述获取模块10获取到所述报文的源端口和卡id信息 后,所述第一处理模块20将获取到的源端口和卡id信息封装至所述报文的堆叠口报文头中,由于堆叠口是在普通的以太网报文头部增加堆叠口报文头,因此,所述第一处理模块20将获取的源端口和卡id信息封装到堆叠口报文头中,即将报文接收端口的的卡号、端口号或trunk号封装到堆叠口报文头中,由于所述堆叠口报文头是报文的一部分,因此相当于将获取的所述源端口和卡id信息封装至所述的堆叠口报文头中,然后转发模块将封装有源端口和卡id信息的报文通过堆叠口发送至主控板。

进一步地,所述堆叠口的属性配置中包含是否需要进行源地址学习、是否信任报文出口等参数信息,这些参数用于提示线卡或主控板是否需要进行源地址学习、是否信任报文出口,可以理解的是,堆叠口对应线卡所在的一端时,所述堆叠口的属性配置为不需要进行源地址学习,以及信任报文出口,此时,所述第一处理模块20根据所述堆叠口的属性配置,直接将所述获取模块10获取的源端口和卡id信息直接封装到堆叠口报文头中,以形成封装有源端口和卡id信息的报文,所述转发模块将封装后的报文发送给主控板。

主控板在接收到线卡发送的封装有源端口和卡id信息的报文后,学习所述堆叠口报文头封装所述源端口和卡id信息对应的源mac地址和vlan信息,根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id,所述主控板将获取的所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,并通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文发送至对应线卡,同理,所述目的端口和卡id信息表示的是要发送的的端口号和线卡的id号。。

转发模块30,用于在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的所述报文去掉堆叠口报文头并直接转发至所述目的端口。

在本实施例中,所述转发模块30在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,先提取出报文中封装的目的端口和卡id信息,将封装有目的端口和卡id信息的所述报文转发至所述目的端口和卡id信息对应的出端口。

进一步地,所述转发模块30在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,剥离出目的端口和卡id信息,并将剥离后的报文转 发至所述目的端口和卡id信息对应的出端口,具体地,可以是剥离出报文的堆叠口报文头以剥离出目的端口和卡id信息,然后提取出堆叠口报文头中封装的目的端口和卡id信息,最后将剥离出堆叠口报文头的报文转发至所述目的端口和卡id信息对应的出端口。值得注意的是,当以太网报文要通过堆叠口进行传输时,才会在以太网报文的报文头部增加堆叠口报文头,若以太网报文不通过堆叠口进行传输,则不在报文头部增加堆叠口报文头,那么,可以理解的是,当线卡将报文转发至所述目的端口和卡id信息对应的出端口时,该报文已经剥离了堆叠口报文头,即该报文是不包括目的端口和卡id信息的报文。

本实施例中,为提高报文转发的灵活性,参照图5,所述转发模块30包括:

解析单元31,用于在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识;

第一获取单元32,用于根据预设的报文转发标识与报文转发策略的映射关系,获取解析的报文转发标识对应的报文转发策略;

转发单元33,用于根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发去掉堆叠口报文头并直接发送至所述目的端口。

在本实施例中,所述解析单元31在接收到所述主控板转发的封装有目的端口和卡id信息的报文时,先解析出封装有目的端口和卡id信息的所述报文中携带的报文转发标识,本实施例中,所述报文转发标识优选为已知单播包、未知单播包、已知组播包、未知组播包、广播包的标识,由于已知单播包、未知单播包、已知组播包、未知组播包、广播包的标识不同,线卡的报文转发策略也不同,因此,所述第一获取单元32根据预设的报文转发标识与报文转发策略的映射关系,即可获取解析的报文转发标识对应的报文转发策略,最后所述转发单元33根据获取的报文转发策略将封装有目的端口和卡id信息的所述报文转发至所述目的端口和卡id信息对应的出端口,例如,当所述报文转发标识为已知单播包时,对应的报文转发策略就是向一个终端转发报文;当所述报文转发标识为未知单播包、未知组播包或广播包时,对应的报文转发策略就是向各个终端转发报文;当所述报文转发标识为已知组播包 时,对应的报文转发策略就是向预设个数的终端转发报文,具体地,包括以下几种方式:

1)对于已知单播包,所述第一获取单元32直接提取出报文的目的端口和卡id信息,然后所述转发单元33,将报文转发至所述目的端口和卡id信息对应的出端口;

2)对于未知单播包、未知组播包和广播包,先确定其vlan(virtuallocalarea-network,虚拟局域网)内的所有用户端口(包括物理端口或虚端口或trunk口),然后所述转发单元33将报文转发至所述vlan内的所有用户端口;

3)对于已知组播包,先确定所述组播包对应的组播组,然后所述转发单元33将报文转发至确定的所述组播组的所有用户端口(包括物理端口或虚端口或trunk口)。

值得注意的是,对于未知组播包,可以按照未知单播包处理或者丢弃,即所述线卡可以直接向确定的vlan内的所有用户端口转发报文,也可将该报文丢弃,具体地,可以根据vlan属性进行配置。

应当理解的是,按转发策略进行报文转发,若所述报文标识为广播、洪泛或未知组播标识,在vlan内进行洪泛复制;若所述报文标识为已知组播标识,在组播组内进行洪泛复制;若所述报文标识为已知单播标识,将封装有目的端口和卡id信息的所述报文转发至所述目的端口。

在本实施例中,所述报文转发装置还包括转化模块,所述转化模块用于先确定线卡类型,并在所述报文的报文类型与线卡类型不同时,将所述报文的报文类型转化为所述线卡类型进行转发,即不同业务类型的线卡(如dsl线卡、pon线卡或以太网线卡)分别把以太网报文转换成特定业务类型的帧,例如,当前线卡是dsl线卡,则所述转发模块30先确定目的端口和卡id信息,然后所述转化模块先将以太网报文转化为dsl报文,并从对应端口发送出去。若所述报文的报文类型与线卡类型相同,即该报文是以太网报文,线卡是以太网线卡,则此时所述转发模块30可直接将封装有目的端口和卡id信息的所述以太网报文转发直接至所述目的端口和卡id信息对应的终端。

本发明提出的报文转发装置,在接收到待转发的报文时,直接将报文的源端口和卡id信息封装至所述报文中,并将封装有源端口和卡id信息的报 文通过堆叠口发送至主控板,由主控板进行统一的源地址学习和目的地址查找,并在接收到主控板转发的封装有目的端口和卡id的报文时,直接转发报文到所述目的端口,从而提高了报文转发的便捷性和效率,同时由于线卡不用存储mac地址表,所以也降低了线卡的成本。进一步地,不需要在线卡中进行源地址学习和目的地址查找,避免了在每个线卡中配置一个地址转发表,简化了线卡的设计,降低线卡的器件成本。

进一步地,为了提高报文转发的灵活性,基于第一实施例提出本发明报文转发装置的第二实施例,在本实施例,参照图6,所述报文转发装置包括:

提取模块40,用于通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,提取所述源端口和卡id信息;

在本实施例中,线卡和主控板是通过堆叠口连接的,而且从第一实施例可知,因为堆叠口可以在普通的以太网报文头部增加堆叠口报文头,而堆叠口报文头不仅可以包含报文接收端口对应的源端口和卡id信息、以及报文发送端口对应的目的端口和卡id信息,还可包含已知单播包、未知单播包、已知组播包、未知组播包或广播包等报文转发标识,进一步地,所述堆叠口的端口属性配置中还可包含是否需要进行地址学习、是否信任报文出口等参数信息。

从第一实施中可知,堆叠口的属性配置在线卡所在一端时,属性配置是不需要进行地址学习、以及信任报文出口的,因此线卡才直接获取源端口和卡id信息,并将封装有源端口和卡id信息的报文直接转发至主板。因此,堆叠口的属性配置在主控板所在一端时,属性配置是需要进行地址学习、以及不信任报文出口的,此时,所述提取模块40在接收到的封装有源端口和卡id信息的报文中,提取出所述源端口和卡id信息进行源mac地址学习,后续再进行目的mac地址的转发。

设置模块50,用于进行源mac学习,将所述报文的源mac和vlan与源端口和卡id的对应关系设置到预设的mac地址转发表中;

第二获取模块60,用于在所述mac地址转发表中根据所述报文的目的mac和vlan获取对应的目的端口和卡id信息;

而所述提取模块40通过堆叠口接收到线卡发送的封装有源端口和卡id 信息的报文时,可直接提取所述源端口和卡id信息,或者先剥离出堆叠口报文头,然后从剥离出的报文头中提取出源端口和卡id信息,在提取出源端口和卡id信息后,将提取的源端口和卡id信息与预设的地址转发表进行比对,以确定所述地址转发表中是否存在mac地址信息,若不存在,则将报文中的源mac地址、vlan以及提取的源端口和卡id信息写入地址表,若存在就刷新一下命中标志。然后根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id。

第二处理模块70,用于将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中,以供所述线卡在接收到封装有所述目的端口和卡id信息的报文时,将封装有目的端口和卡id信息的报文去掉堆叠口报文头并转发至所述目的端口。

在本实施例中,所述第二处理模块70将获取的所述目的端口和卡id信息封装到所述报文的堆叠口报文头中,并保留堆叠口报文头中的源端口和卡id信息,并通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述卡id对应的线卡中。。

进一步地,所述报文转发装置还包括:

确定模块,用于根据获取的所述目的端口和卡id信息,确定封装有目的端口和卡id信息的报文对应的报文转发标识;

第三获取模块,用于获取确定的报文转发标识;

添加模块,用于将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,以供所述线卡基于所述报文转发标识执行相应的报文转发策略。

在本实施例中,所述第二处理模块70通过所述堆叠口将封装有所述目的端口和卡id信息的报文转发至所述线卡中之前,根据mac地址表中目的mac地址的查找结果,确定所述报文对应的报文转发标识,确定所述报文对应的报文转发标识的方式包括:a、mac地址表中可以查到的单播地址可以确定报文转发标识为已知单播包标识,mac地址表中没有查到的单播地址可以确定报文转发标识为未知单播包标识,地址为广播包可以确定报文转发标识为广播包标识;mac地址表中可以查到的组播地址可以确定报文转发标识 为已知组播包标识;mac地址表中没有查到的组播地址可以确定报文转发标识为未知组播包标识。在确定了报文转发标识之后,所述第三获取模块获取确定的报文转发标识,从第一实施例中可知,所述报文转发标识表示已知单播包、未知单播包、已知组播包、未知组播包、广播包的标识,那么在获取到报文转发标识后,将获取的报文转发标识添加到封装有目的端口和卡id信息的所述报文中,最后作为封装有目的端口和卡id信息的报文转发转发给线卡。

本发明提出的报文转发装置,主控板通过堆叠口接收到线卡发送的封装有源端口和卡id信息的报文时,先提取所述源端口和卡id信息,然后学习所述堆叠口报文头封装所述源端口和卡id信息对应的源mac地址和vlan信息,根据所述报文的目的mac地址和vlan查找主控板mac地址表中对应的目的端口和卡id,所述主控板将获取的所述目的端口和卡id信息封装至所述报文的堆叠口报文头中,并通过所述目的端口和卡id对应的堆叠口将封装有目的端口和卡id信息的报文发送至对应线卡,从而提高了报文转发的效率和便捷性,降低了线卡的成本。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务 器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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