发明内容
有鉴于此,本发明提供一种用于实现VD互连的方法和交换设备。
本发明提供的一种用于实现VD互连的方法,该方法应用于集成有多个VD的交换设备中,且所述交换设备具有交换网板、以及分别承载不同VD的接口板,其中,在需要实现互连的每个VD所在接口板中,有PP的接入端口配置为该VD的虚端口;并且,需要实现互连的每个VD所在接口板还记录有该VD与对端VD的虚端口互连关系、以及对端VD的虚端口所属PP;
以及,对于互连的每个VD所在接口板:
a1、当PP从物理端口接收到报文后,若判断出该报文是以本板所属VD的虚端口为出端口,则依据本板记录的所述虚端口互连关系查找对端VD的虚端口、并将查找到的虚端口的虚端口标识添加至报文的报文描述符中,以及,将报文转发至本板FA;
a2、当FA接收到来自本板PP的报文后,依据报文描述符中的虚端口标识在本板查找对端VD的虚端口所属PP、并将查找到的PP的PP标识添加至报文描述符中,以及,将报文转换为适配信元转发至至本板FIP;
a3、当FIP接收到来自本板FA的适配信元后,将适配信元转换为交换网信元转发至交换网板,以供交换网板依据PP标识转发交换网信元;
b1、当FOP接收到来自交换网板的交换网信元后,将交换网信元转换为适配信元转发至本板的FA;
b2、当FA接收到来自本板FOP的适配信元后,将适配信元重组为报文、并依据重组后的报文的报文描述符中的PP标识将报文转发至本板的对应PP;
b3、当PP接收到来自本板FA的报文后,依据报文的报文描述符中的虚端口标识将与之对应的本板所属VD的虚端口确定为报文的入端口。
虚端口互连关系中包括每端VD的虚端口的虚端口标识、以及每端VD的VD标识,以使PP能够依据虚端口互连关系查找到对端VD的虚端口、并获取虚端口的虚端口标识。
对于互连的每个VD所在接口板,PP维护有FIB表、且FIB转发表中具有以本板所属VD的虚端口为出端口的虚拟转发项,以使PP能够依据虚拟转发项判断出以本板所属VD的虚端口为出端口的报文。
所述交换设备进一步具有主控板,每个VD的虚端口由主控板中的CPU配置,且所述虚端口互连关系、以及对端VD的虚端口所属PP均由主控板中的CPU维护并下发。
主控板中的CPU将虚端口的属性记录为端口链接属性。
本发明提供的一种交换设备,所述交换设备具有交换网板、以及分别承载不同VD的接口板,其中,在需要实现互连的每个VD所在接口板中,有PP的接入端口配置为该VD的虚端口;并且,需要实现互连的每个VD所在接口板还记录有该VD与对端VD的虚端口互连关系、以及对端VD的虚端口所属PP;
以及,对于互连的每个VD所在接口板:
PP在从物理端口接收到报文后,若判断出该报文是以本板所属VD的虚端口为出端口,则依据本板记录的所述虚端口互连关系查找对端VD的虚端口、并将查找到的虚端口的虚端口标识添加至报文的报文描述符中,以及,将报文转发至本板FA;
FA在接收到来自本板PP的报文后,依据报文描述符中的虚端口标识在本板查找对端VD的虚端口所属PP、并将查找到的PP的PP标识添加至报文描述符中,以及,将报文转换为适配信元转发至至本板FIP;
FIP在接收到来自本板FA的适配信元后,将适配信元转换为交换网信元转发至交换网板,以供交换网板依据PP标识转发交换网信元;
FOP在接收到来自交换网板的交换网信元后,将交换网信元转换为适配信元转发至本板的FA;
FA在接收到来自本板FOP的适配信元后,将适配信元重组为报文、并依据重组后的报文的报文描述符中的PP标识将报文转发至本板的对应PP;
PP在接收到来自本板FA的报文后,依据报文的报文描述符中的虚端口标识将与之对应的本板所属VD的虚端口确定为报文的入端口。
虚端口互连关系中包括每端VD的虚端口的虚端口标识、以及每端VD的VD标识,以使PP能够依据虚端口互连关系查找到对端VD的虚端口、并获取虚端口的虚端口标识。
对于互连的每个VD所在接口板,PP维护有FIB表、且FIB转发表中具有以本板所属VD的虚端口为出端口的虚拟转发项,以使PP能够依据虚拟转发项判断出以本板所属VD的虚端口为出端口的报文。
所述交换设备进一步具有主控板,每个VD的虚端口由主控板中的CPU配置,且所述虚端口互连关系、以及对端VD的虚端口所属PP均由主控板中的CPU维护并下发。
主控板中的CPU将虚端口的属性记录为端口链接属性。
如上可见,本发明将接口板中的闲置接入端口设置为专用于VD互连的虚端口、并利用虚端口互连关系来确定虚端口之间的虚连接,而且,基于交换网板的跨板转发,可以实现互连VD之间通过虚连接的报文转发。因此,通过虚连接替代物理连线,互连VD间的报文转发就无需占用接入在PP芯片的物理端口,从而能够节省VD的物理端口资源。
而且,本发明可以通过在主控板的CPU中为虚端口新增一种端口属性,以使虚端口能够按照与物理端口相同的方式被CPU管理,因而能够使得虚端口的配置可以根据VD的互连需求而灵活地实现动态调整。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图4为本发明实施例中用于实现VD互连的原理性示意图。如图4所示,本实施例主要适用于集成有多个VD的交换设备,且该交换设备至少具有交换网板、主控板、以及分别承载不同VD的接口板(图4中仅仅是以VDi和VDj这两个VD为例,且VDi承载于接口板i、VDj承载于接口板j)。
其中,主控板具有CPU;每块接口板均具有PP(Pakage Processor,包处理器)、FA(Fabric Adaptor,交换网适配器)、FIP(Fabric Input Processor,交换网输入处理器)、以及FOP(Fabric Output Processor,交换网输出处理器)。
PP具有若干接入端口,其中,PP的一部分接入端口通过PHY(物理层)芯片接入有该接口板的物理端口,而受到接口板的单板规格限制,接入在PP的物理端口往往少于PP所能够提供的接入端口,相应地,PP通常会存在闲置的接入端口。
因此,本实施例为了实现VD间的互连,在需要实现互连的每个VD所在接口板中将PP的空闲接入端口被配置为该VD的虚端口。
即,在图4中,接口板i中的PP接入有物理端口Port_i、接口板j中的PP接入有物理端口Portj,接口板i中的PP的闲置接入端口被配置为虚端口vPort_i、接口板j中的PP的闲置端口被配置为虚端口vPort_j。
相应地,在需要实现互连的每个VD所在接口板中,PP所维护的转发层FIB(Forward Information Base,转发信息库)表中需要设置以本板所属VD的虚端口为出端口的虚拟转发项。
即,在图4中,接口板i中的PP所维护的FIB表中设置有以虚端口vPort_i为出端口的虚拟转发项、接口板j中的PP所维护的FIB表中设置有以虚端口vPort_j为出端口的虚拟转发项。
这样,转发层能够按照与物理端口相同的方式来实现从虚端口的报文转发,从而,在转发层中,每个VD向互连的对端VD转发的报文即可认为是从该VD的虚端口发出,以确保通过虚端口转发的报文能够遵循VD在转发层隔离的原则。
但是,由于每个VD的虚端口并未通过真正存在的传输路径与对端VD的虚端口连接,因此,本实施例还需要借助其他手段来确保每个VD的虚端口发出的报文能够准确地指向对端VD的虚端口、并借助交换设备中已有的传输路径来实现报文的转发。
首先,为了确保每个VD的虚端口发出的报文能够准确地指向对端VD的虚端口,本实施例在需要实现互连的每个VD所在接口板中记录该VD与对端VD的虚端口互连关系。
即,在图4中,对于需要互连的VDi和VDj,接口板i中记录有本板所属VDi的虚端口vPort_i与对端VDj的虚端口vPort_j的虚端口互连关系、接口板j中记录有本板所属VDj的虚端口vPort_j与对端VDj的虚端口vPort_i的虚端口互连关系。
其中,虚端口互连关系中可以包括每端VD的虚端口的虚端口标识、以及每端VD的VD标识。此时,接口板i中记录的虚端口互连关系可以如表1所示,接口板j中记录的虚端口互连关系可以如表2所示。
本端VD |
本端VD的虚端口 |
对端VD |
对端VD的虚端口 |
VDi |
vPort_i |
VDj |
vPort_j |
表1
本端VD |
本端VD的虚端口 |
对端VD |
对端VD的虚端口 |
VDj |
vPort_j |
VDi |
vPort_i |
表2
利用上述的虚端口互连关系,即可在互连VD的虚端口之间建立确定的虚连接,即VDi与VDj通过虚端口vPort_i与虚端口vPort_j之间的虚连接实现互连。从而,通过虚端口互连关系所确定的虚连接,即可确保每个VD的虚端口发出的报文能够准确地指向对端VD的虚端口。
此外,本实施例还需要借助交换网板的跨板转发来实现互连VD之间通过虚连接的报文转发。
为此,首先需要确保以虚端口为出端口的报文能够向交换网板转发、而不会向虚端口所在的空闲接入端口转发;其次,跨板转发的报文中需要带有对端VD的虚端口的虚端口标识,以确保对端VD能够在转发层将报文认定为是从其虚端口进入;再者,由于交换网板中通常会记录有每个PP的PP标识和PP寄存器地址、以及每个PP所在接口板的槽位号,因此,跨板转发的报文中需要带有相应的PP标识才能够被交换网板正确地寻址转发。
为了确保以虚端口为出端口的报文不会真正转发至虚端口所在的空闲接入端口、而是向交换网板转发,在需要实现互连的每个VD所在接口板中,PP需要通过其驱动层将以虚端口为出端口的报文(PP能够依据前述的虚拟转发项判断出以本板所属VD的虚端口为出端口的报文)转发至本板的FA、再由本板的FA通过本板的FIP转发至交换网板;
并且,为了确保在VD间转发的报文能够被对端VD所在接口板的PP认定为是从对端VD的虚端口接收,在需要实现互连的每个VD所在接口板中,PP需要在其驱动层通过查找本板记录的虚端口互连关系而在报文的报文描述符中添加对端VD的虚端口的虚端口标识(PP能够依据前述的虚端口互连关系查找到对端VD的虚端口、并获取到虚端口的虚端口标识),PP还需要在其驱动层通过对虚端口标识的识别而将来自交换网板的报文认定为是从本板所属VD的虚端口接收。
即,在图4中,接口板i的PP驱动层能够在以虚端口vPort_i为出端口的报文的报文描述符中添加虚端口vPort_j的虚端口标识、并将以虚端口vPort_i为出端口的报文向接口板i的FA转发,以及,对于报文描述符中带有虚端口vPort_i的虚端口标识的报文,接口板i的PP驱动层能够将其入端口确认为虚端口vPort_i;接口板j的PP驱动层能够在以虚端口vPort_j为出端口的报文的报文描述符中添加虚端口vPort_i的虚端口标识、并将以虚端口vPort_j为出端口的报文向接口板j的FA转发,以及,对于报文描述符中带有虚端口vPort_j的虚端口标识的报文,接口板j的PP驱动层能够将其入端口确认为虚端口vPort_j。
为了确保报文能够被正确转发至对端VD的虚端口所属PP,在需要实现互连的每个VD所在接口板中,FA需要通过查找本板记录的虚端口所属PP而在报文的描述符中添加对端VD的虚端口所属PP的PP标识,并识别从交换网板转发而来(通过本板的FOP接收)的报文在其报文描述符中携带的PP标识。
即,在图4中,对于本板PP发送的报文描述符中带有虚端口vPort_j的虚端口标识的报文,接口板i中的FA能够在该报文的报文描述符中添加虚端口vPort_j所属PP的PP标识,以及,对于来自交换网板的报文描述符中带有vPort_i所属PP的PP标识的报文,接口板i中的FA能够将该报文转发至本板对应的PP;对于本板PP发送的报文描述符中带有虚端口vPort_i的虚端口标识的报文,接口板j中的FA能够在该报文的报文描述符中添加虚端口vPort_i所属PP的PP标识,以及,对于来自交换网板的报文描述符中带有vPort_j所属PP的PP标识的报文,接口板j中的FA能够将该报文转发至本板对应的PP。
需要说明的是,PP和FA通常会集成在一块物理芯片中,因此,接口板中所记录的虚端口互连关系、以及对端VD的虚端口所属PP可以是存放在物理芯片的内存中。当然,无论PP和FA是否集成在同一块物理芯片中,均可以在接口板中单独设置一存储介质、并利用该存储介质来存放接口板所记录的虚端口互连关系、以及对端VD的虚端口所属PP。
下面,以从图4中的VDi向互连对端VDj转发报文(报文的转发路径如图4中的曲线箭头所示)为例,对互连VD之间的报文转发流程进行一详尽说明:
当接口板i的PP接收到报文后,若通过查找FIB表而识别出该报文是以本板所属VDi的虚端口vPort_i为出端口,则依据如表1所示的虚端口互连关系确定对端VDj的虚端口vPort_j,以及,在报文的报文描述符中添加对端VDj的虚端口vPort_j的虚端口标识、并将报文转发至本板FA;但若通过查找FIB表而识别出该报文是以本板的物理端口Port_i为出端口,则仍按照现有方式将报文向该物理端口Port_i转发。
当接口板i的FA接收到来自本板PP的报文后,依据报文描述符中带有的虚端口vPort_j的虚端口标识在本板查找到对端VDj的虚端口vPort_j所属PP、并将查找到的虚端口vPort_j所属PP的PP标识添加至报文描述符中,然后,将报文转换为包含有报文描述符的适配信元转发至本板FIP;
其中,每个报文可以依据其大小而被转换为相应数量的适配信元、且至少一个适配信元中会携带该报文的报文描述符;且适配信元可以依据FA与本板FIP之间选用的链路类型来确定,例如,对于FA与本板FIP之间通过HGL(Hyper G.Link,超千兆链路)连接的方式,适配信元即可选用HGL(Hyper G.Link)信元,每个HGL信元具有9个字节的头部、以及128个字节的数据,每个报文可以依据其大小而转换为相应数量的HGL信元、且至少一个HGL信元中会携带该载体后;
当接口板i的FIP接收到来自本板FA的适配信元后,将包含有报文描述符的适配信元转换为包含有该报文描述符的交换网信元转发至交换网板;
具体说,FIP会分别将接收到的适配信元与其包含的报文描述符分别缓存在信元队列和描述符队列中,并顺序读取描述符队列中的报文描述符;每当读取一个报文描述符后,就从信元队列中读取对应的适配信元、并将读取的报文描述符及对应的适配信元重组为报文,然后将重组报文切片(Chopping)为报文片断、最后再将报文片断转换为交换网信元转发至交换网板;
交换网板依据PP标识查找对应的PP寄存器地址和槽位号,然后依据查找到的PP寄存器地址和槽位号将交换网信元转发至对应的PP所在的接口板j;
当接口板j的FOP接收到来自交换网板的交换网信元后,将包含报文描述符的交换网信元恢复为适配信元转发至本板的FA;
具体说,FOP会先将交换网信元恢复为报文片断、然后将报文片断再转换为适配信元,并且,FOP转发至FA的适配信元与FA转发至FIP的适配信元同理;
当接口板j的FA接收到来自本板FOP的适配信元后,将包含有报文描述符的适配信元重组为报文、并依据报文描述符中的PP标识将重组得到的报文转发至本板对应的PP;
当接口板j的PP接收到来自本板FA的报文后,依据报文的报文描述符中携带的虚端口vPort_j的虚端口标识,将报文的入端口确定为本板所属VDj的虚端口vPort_j。
如此一来,对于在互连的VD之间转发的报文,PP在转发层仍遵照现有的转发原理,但通过PP在驱动层对虚端口的特殊处理,能够利用交换网板的跨板转发来实现互连VD之间通过虚连接的报文转发。因此,通过虚连接替代物理连线,互连VD间的报文转发就无需占用接入在PP芯片的物理端口,从而能够节省VD的物理端口资源。
从图4中的VDj向互连对端VDi转发报文同理。
在实际应用中,可以通过手动配置来确定VD的互连,相应地,每个VD的虚端口、每个VD与对端VD的虚端口互连关系、以及每个VD的虚端口所属PP均可以通过手动配置来实现。
当然,VD的互连也可以由主控板中的CPU来管理,此时,为了使得虚端口的配置可以根据VD的互连需求而灵活地实现动态调整,每个VD的虚端口由主控板中的CPU配置,每个VD与对端VD的虚端口互连关系、以及每个VD的虚端口所属PP均由主控板中的CPU维护和下发。
需要说明的是,交换网板属于转发层、而CPU属于控制层,因此,虽然在图4中示出CPU与交换网板相连,但实际应用中,CPU与交换网板并不是直连,而是通过本领域技术人员所知晓的其他辅助部件相连,本文对此不再赘述。
图5为如图4中所示的主控板中的CPU的内部逻辑结构示意图。如图5所示,为了实现对交换网板、接口板、VD、以及物理端口和虚端口的管理,主控板的CPU中通常承载有设备驱动模块、设备管理模块、VD管理模块、端口管理模块、以及命令行模块。
当有接口板上报板卡事件后,设备驱动模块将接口板上报的板卡事件上报至设备管理模块;
当设备管理模块接收到板卡事件后,设备管理模块依据板卡事件记录对应接口板的端口状态、并向VD管理模块和端口管理模块继续上报板卡事件;
当VD管理模块和端口管理模块接收到板卡事件后,VD管理模块和端口管理模块依据板卡事件记录对应接口板的端口状态;
当命令行模块依据输入的命令行执行表示创建VD的命令行处理后,VD管理模块依据命令行处理为创建的VD分配物理端口Port_p,然后将为该VD分配物理端口Port_p的端口分配结果上报至端口管理模块;
当命令行模块依据输入的命令行执行表示任意两个VDi和VDj互连的命令行处理后,VD管理模块即可为需要互连的VDi和VDj分别分配虚端口vPort_i和vPort_j、并维护互连VD的虚端口vPort_i和vPort_j之间的虚端口互连关系,然后将为互连VDi和VDj分配虚端口Port_vi和Port_vj的端口分配结果(即如前文记载的表1和表2)上报至端口管理模块;
当端口管理模块接收到VD管理模块上报的端口分配结果后,指示设备驱动模块对相应的接口板i和接口板j中的PP进行配置,并向接口板i和接口板j下发相应的虚端口互连关系、以及虚端口所属PP。
此外,为了使虚端口能够按照与物理端口相同的方式被CPU管理、且又能够区分出虚端口,可以在主控板的CPU中为虚端口增设一种端口属性,该端口属性可以为Interface Link(端口链接)属性。
基于上述原理,本实施例提供了一种用于实现VD互连的方法。
图6a和图6b为本发明实施例中用于实现VD互连的方法流程示意图。如图6a和图6b所示的流程应用于集成有多个VD的交换设备中,且该交换设备具有交换网板、以及分别承载不同VD的接口板;以及,在需要实现互连的每个VD所在接口板中,PP的空闲接入端口被配置为该VD的虚端口;并且,需要实现互连的每个VD所在接口板还记录有该VD与对端VD的虚端口互连关系、以及对端VD的虚端口所属PP。
如图6a所示,本实施例中用于实现VD互连的方法在需要实现互连的每个VD向其互连的对端VD转发报文的过程中,包括在该VD所在接口板执行的如下步骤:
步骤611,当PP从物理端口接收到报文后,若判断出该报文是以本板所属VD的虚端口为出端口,则依据本板记录的所述虚端口互连关系查找对端VD的虚端口、并将查找到的虚端口的虚端口标识添加至报文的报文描述符中,以及,将报文转发至本板FA;
步骤612,当FA接收到来自本板PP的以本板所属VD的虚端口为出端口的报文后,依据报文描述符中的虚端口标识在本板查找对端VD的虚端口所属PP、并将查找到的PP的PP标识添加至报文描述符中,以及,将报文转换为适配信元转发至至本板FIP;
步骤613,当FIP接收到来自本板FA的适配信元后,将适配信元转换为交换网信元转发至交换网板,以供交换网板依据PP标识转发交换网信元。
至此,从该VD向对端VD的一次报文转发流程结束。经上述流程后,报文即可通过交换网板转发至对端VD所在接口板。
如图6b所示,本实施例中用于实现VD互连的方法在需要实现互连的每个VD从其互连的对端VD接收报文的过程中,包括在该VD所在接口板执行的如下步骤:
步骤621,当FOP接收到来自交换网板的交换网信元后,将交换网信元转换为适配信元转发至本板的FA;
步骤622,当FA接收到来自本板FOP的适配信元后,将适配信元重组为报文、并依据重组后的报文的报文描述符中的PP标识将报文转发至本板的对应PP;
步骤623,当PP接收到来自本板FA的报文后,依据报文的报文描述符中的虚端口标识将与之对应的本板所属VD的虚端口确定为报文的入端口。
至此,该VD从对端VD的一次报文接收流程结束。经上述流程后,该VD所在接口板中的PP即可认定该报文是本板所属VD的虚端口接收到、并按照与物理端口接收到的报文相同的方式予以处理。
与上述方法同理,本实施例还提供了能够实现VD互连的一种交换设备。
图7为本发明实施例中的交换设备的结构示意图。如图7所示,本实施例中的交换设备具有交换网板、以及分别承载不同VD的接口板;其中,在需要实现互连的每个VD所在接口板中,PP的空闲接入端口被配置为该VD的虚端口;并且,需要实现互连的每个VD所在接口板还记录有该VD与对端VD的虚端口互连关系、以及对端VD的虚端口所属PP;
以及,在需要实现互连的每个VD所在接口板中:
PP在从物理端口接收到报文后,若判断出该报文是以本板所属VD的虚端口为出端口,则依据本板记录的所述虚端口互连关系查找对端VD的虚端口、并将查找到的虚端口的虚端口标识添加至报文的报文描述符中,以及,将报文转发至本板FA;
FA在接收到来自本板PP的报文后,依据报文描述符中的虚端口标识在本板查找对端VD的虚端口所属PP、并将查找到的PP的PP标识添加至报文描述符中,以及,将报文转换为适配信元转发至至本板FIP;
FIP在接收到来自本板FA的适配信元后,将适配信元转换为交换网信元转发至交换网板,以供交换网板依据PP标识转发交换网信元;
FOP在接收到来自交换网板的交换网信元后,将交换网信元转换为适配信元转发至本板的FA;
FA在接收到来自本板FOP的适配信元后,将适配信元重组为报文、并依据重组后的报文的报文描述符中的PP标识将报文转发至本板的对应PP;
PP在接收到来自本板FA的报文后,依据报文的报文描述符中的虚端口标识将与之对应的本板所属VD的虚端口确定为报文的入端口。
另外,如图7所示,本实施例中的交换设备还可以进一步包括主控板,此时,每个VD的虚端口由主控板中的CPU配置,且所述虚端口互连关系、以及对端VD的虚端口所属PP均由主控板中的CPU维护并下发。其中,图7中所示出的CPU与交换网板的连接方式与图4同理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。