掌桥专利:专业的专利平台
掌桥专利
首页

一种IB网络直接路由管理报文的转发方法和装置

文献发布时间:2024-04-18 20:01:23


一种IB网络直接路由管理报文的转发方法和装置

技术领域

本发明属于网络路由管理领域,特别涉及一种IB网络直接路由管理报文的转发方法和装置。

背景技术

IB网络中,子网管理器用于配置和管理子网设备,是子网拓扑发现、初始化、管理的关键控制模块。在交换设备switch中,子网管理器位于管理端口内。设备通过子网管理报文(SMP)进行子网管理器间的通信,执行属性获取、属性设置、通知事件发生等一系列指定的设备操作,从而实现对子网内多个子网管理器的管理,SMP的具体传输过程为如图1所示。

根据发送方向的不同,SMP可以分为请求SMP和应答SMP。在源端设备,子网管理器产生请求SMP,并将请求SMP传递到子网中进行转发。在子网内的源端设备和终点设备之间,可使用交换设备switch进行SMP的转发。在终点设备,设备的子网管理器接受请求SMP后,子网管理器对请求SMP指定的属性执行特定的设备操作,如获取属性、设置属性等。终点设备完成上述设备操作后,产生应答SMP。应答SMP按照对应的请求SMP的转发路径原路返回至源端设备。采用基于上述请求应答SMP报文的信息传递机制,最终,子网管理器可实现子网拓扑结构发现、子网变化监测、管理设备的增删、子网设备LID分配及获取各个终点设备之间的可能连接路径等功能。

SMP报文在交换设备内转发时,首先需要完成报文出口端口的确定。根据出口端口查询方式的不同,SMP报文可以分为本地设备标识(LID)路由SMP报文和直接路由SMP报文。对于LID路由SMP报文,SMP转发路径上所有设备端口的LID地址已分配、交换设备转发路由表已配置完成,SMP在交换设备内传递时,可通过查询交换路由表确定出口端口。对于直接路由报文,当SMP转发路径上全部或部分设备LID地址未确定、交换设备路由表尚未配置完成时,结合LRH.DLID情况选择转发路径查询方式。

利用允许的本地设备标识符(PLID)标识直接路由SMP报文。当报文内LRH.DLID为PLID时,表明SMP位于转发路径上设备端口LID地址未确定或者交换设备转发路由表未配置成功的部分,可通过报文中返回路径端口号向量/初始路径端口号向量(Return Path/Initial Path)确定出口端口,实现子网内转发。当报文内LRH.DLID不为PLID时,表明SMP位于设备端口LID地址确定且交换设备转发路由表配置成功的部分,SMP可通过查询转发路由表获取出口端口。

目前IB协议中直接路由SMP报文在交换设备内的常规转发流程如图2所示,当SMP报文进入switch入口端口,校验MadHeader.MgmtClass域段确定报文为直接路由SMP报文、LRH.DLID域段为PLID时,通过交换芯片内的交换矩阵fabric将其转发至Switch管理端口中的子网管理器。由管理端口内的子网管理器对该SMP进行报文检查、报文处理、出口端口确定、域段更新等操作后,通过fabric将处理结束的报文转发至出口端口。

传统的转发流程中,对于终点非本交换设备的直接路由SMP报文在Switch交换设备中需要经过两次转发,才能最终从交换设备内输出,继续向下级设备传递,导致直接路由SMP报文传输延时大,二次占用Fabric交换矩阵,影响正常数据流的传输。

发明内容

本发明的目的在于提供一种IB网络直接路由管理报文的转发方法和装置,旨在降低直接路由SMP报文在交换设备内的传输延时,减少Fabric占用。

根据本发明的第一方面,提供了一种IB网络直接路由管理报文的转发方法,包括:

通过交换设备的入口端口接收SMP报文,对所述SMP报文进行解析,当确定所述SMP报文类型为直接路由SMP报文时,在所述入口端口根据报文解析结果判断所述直接路由SMP报文是否满足预定义处理条件;

当满足所述预定义处理条件时,根据所述直接路由SMP报文的报文传输方向、跳跃指针和子网路径端口号向量确定出口端口;

对所述直接路由SMP报文中的域段进行更新,并将所述入口端口处的直接路由SMP报文经由交换矩阵直接转发到所述出口端口。

优选地,所述确定所述SMP报文类型为直接路由SMP报文,进一步包括:

对所述SMP报文进行解析,得到报文类型字段,通过所述报文类型字段确定该报文为直接路由SMP报文。

优选地,所述判断所述直接路由SMP报文是否满足预定义处理条件,进一步包括:

通过解析SMP报文得到目标端口的本地设备标识、报文长度、报文传输方向、跳跃指针和跳跃次数,

当目标端口的本地设备标识为PLID并且报文长度等于实际包长时,判断报文传输方向,

如果所述报文传输方向表示所述通过所述报文传输方向确定所述直接路由SMP报文为SMP请求报文,判断跳跃指针Hop Pointer和跳跃次数Hop Count是否等于0或大于255,Hop Pointer是否等于Hop Count,Hop Pointer+1是否大于Hop Count,若均不满足,则确定所述直接路由SMP报文满足所述预定义处理条件;

如果所述报文传输方向表示所述通过所述报文传输方向确定所述直接路由SMP报文为SMP应答报文,判断跳跃指针Hop Pointer和跳跃次数Hop Count是否等于0或大于255,Hop Pointer是否等于1,Hop Pointer+1是否大于Hop Count,若均不满足,则确定所述直接路由SMP报文满足所述预定义处理条件。

优选地,所述根据所述直接路由SMP报文的报文传输方向、跳跃指针和子网路径端口号向量子网路径端口号向量确定出口端口,进一步包括:

通过解析SMP报文得到子网路径端口号向量,所述子网路径端口号向量包括返回路径端口号向量和初始路径端口号向量通过解析SMP报文得到返回路径端口号向量和初始路径端口号向量;

当通过所述报文传输方向确定所述直接路由SMP报文为SMP请求报文时,将所述初始路径端口号向量中被Hop Pointer索引的条目作为出口端口;

当通过所述报文传输方向确定所述直接路由SMP报文为SMP应答报文时,将所述返回路径端口号向量中被Hop Pointer索引的条目作为出口端口。

优选地,所述对所述直接路由SMP报文中的域段进行更新,进一步包括:

当该报文为请求SMP报文时,更新所述返回路径端口号向量中由Hop Pointer索引的条目为当前入口端口序号,对Hop Pointer进行加1操作;

当该报文为应答SMP报文时,对Hop Pointer进行减1操作。

根据本发明的第二方面,提供了一种IB网络直接路由管理报文的转发装置,包括:

解析单元,用于通过交换设备的入口端口接收SMP报文,对所述SMP报文进行解析,当确定所述SMP报文类型为直接路由SMP报文时,在所述入口端口根据报文解析结果判断所述直接路由SMP报文是否满足预定义处理条件;

转发单元,用于当满足所述预定义处理条件时,根据所述直接路由SMP报文的报文传输方向、跳跃指针和子网路径端口号向量确定出口端口;

更新单元,用于对所述直接路由SMP报文中的域段进行更新,并将所述入口端口处的直接路由SMP报文经由交换矩阵直接转发到所述出口端口。

相比于相关技术,本发明的技术方案具备以下优点:

在入口快速完成直接路由SMP报文的检查、更新、出口端口确定,借助Fabric一次转发即完成报文的交换设备内的传递,可以有效降低直接路由SMP报文在交换设备内的传输延时,减少一次Fabric占用,提高非管理数据包传输效率,节省发现时间,保证其他数据报文的Fabric交换带宽,更高效地发现拓扑变化,提高子网管理效率。本发明的方案健壮性和兼容性强,异常的无法处理的报文仍支持转发至交换设备管理端口进行协议内传统方案处理,而且开源子网管理器OPENSM无需做额外改动。

本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。

附图说明

为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单介绍,显而易见的是,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。

图1是根据相关技术的SMP传输过程示意图。

图2是根据相关技术的SMP转发流程示意图。

图3是根据本发明的SMP转发流程示意图。

图4是根据本发明的IB网络直接路由管理报文的转发方法的流程图。

图5是根据本发明的报文检查流程图。

图6是根据本发明的直接路由SMP处理流程图。

具体实施方式

为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。

针对直接路由SMP报文在传输时,在同一switch内需要二次转发的问题,本发明提出一种IB网络直接路由管理报文的转发方法和装置,如图3所示,针对交换设备switch中DLID为PLID的直接路由SMP报文,在确定报文终点非本级交换设备时,在交换设备switch的入口端口处直接完成报文检查、处理、出口端口确定、域段更新等操作后,通过交换矩阵fabric直接转发至出口端口,从而降低直接路由SMP报文在交换设备内的传输延时,减少Fabric一次占用,保证其他数据报文的Fabric交换带宽。

参见图4的流程图,本发明提供的所述IB网络直接路由管理报文的转发方法包括:

步骤101:通过交换设备的入口端口接收SMP报文,对所述SMP报文进行解析,当确定所述SMP报文类型为直接路由SMP报文时,在所述入口端口根据报文解析结果判断所述直接路由SMP报文是否满足预定义处理条件。

首先执行报文解析阶段。交换设备switch入口端口接收SMP报文后,对SMP报文进行解析,可获取报文类型MadHeader.MgmtClass、目标端口LRH.DLID、报文传输方向D bit、跳跃指针Hop Pointer、跳跃次数Hop Count、返回路径端口号Return Path、初始路径端口号Initial Path域段,如表1所示。

表1

在报文检查阶段,需要根据报文类型、报文长度、域段内容等条件,判断直接路由SMP是否符合入口端口快速处理条件,流程如图5所示。报文检查过程具体包括:

步骤111:如果报文内MadHeader.MgmtClass值为0x81,则确定当前报文为直接路由SMP,进入步骤112。

步骤112:如果LRH.DLID为PLID,则报文需要通过查询返回路径端口号向量ReturnPath/初始路径端口号向量Initial Path来获取出口端口,进入步骤113。

步骤113:如果LRH.Pktlen等于实际包长,则报文长度符合要求,此时判断D bit。如果D bit为0,进入步骤114;如果D bit为1,进入步骤115。如果LRH.Pktlen不等于实际包长,需要按照传统方式,可选择丢弃或者转发至交换设备管理端口处理。

步骤114:当D bit为0时,即当前直接路由SMP为请求报文,根据跳跃指针HopPointer和跳跃次数Hop count大小判断当前场景,优先级从上到下依次递减:

步骤1141:当Hop Pointer或Hop count等于0或大于255时,报文异常,默认丢弃该报文,即确定不满足快速处理条件。报文异常时可丢弃报文,出于健壮性角度考虑,也可以选择转发至交换设备管理端口处理。否则,进入步骤1142。

步骤1142:当Hop Pointer等于Hop Count时,即报文终点设备为本级交换设备,则确定不满足快速处理条件,需要直接路由SMP转发至交换设备管理端口。否则,进入步骤1143。

步骤1143:当Hop Pointer+1>Hop Count时,报文异常,默认丢弃该报文,即确定不满足快速处理条件。报文异常时可丢弃报文,出于健壮性角度考虑,也可以选择转发至交换设备管理端口处理。否则,进入步骤1144。

步骤1144:排除以上场景时,说明跳跃指针Hop Pointer和跳跃次数HopCount大小关系合理,最终确定Hop Pointer、Hop Count大小满足快速处理条件,可以被入口端口快速处理,结束报文检查。

步骤115:当D bit为1时,即当前直接路由SMP为应答报文,根据Hop Pointer和Hopcount大小判断当前场景,类似地分为四种类型,优先级从上到下依次递减:

步骤1151:当Hop Pointer或Hop count等于0或大于255时,报文异常,默认丢弃该报文,即确定不满足快速处理条件。报文异常时可丢弃报文,出于健壮性角度考虑,也可以选择转发至交换设备管理端口处理。否则,进入步骤1152。

步骤1152:当Hop Pointer等于1时,即报文终点设备为本级交换设备,则确定不满足快速处理条件,需要直接路由SMP转发至交换设备管理端口。否则,进入步骤1153。

步骤1153:当Hop Pointer>Hop Count时,报文异常,默认丢弃该报文,即确定不满足快速处理条件。报文异常时可丢弃报文,出于健壮性角度考虑,也可以选择转发至交换设备管理端口处理。否则,进入步骤1154。

步骤1154:排除以上场景时,说明跳跃指针Hop Pointer和跳跃次数HopCount大小关系合理,最终确定Hop Pointer、Hop Count大小满足快速处理条件,可以被入口端口快速处理。

步骤102:当满足所述预定义处理条件时,根据所述直接路由SMP报文的报文传输方向、跳跃指针和子网路径端口号向量确定出口端口。

当确定直接路由SMP满足快速处理条件时,可以由当前设备入口端口对直接路由SMP进行处理,即通过Hop Pointer、D bit、Return Path/Initial Path确定出口端口,具体地:

当D bit为0时,即该报文为请求SMP报文,将Initial Path中被Hop Pointer索引的条目作为出口端口。此时该出口端口为Initial Path[Hop Pointer]。

当D bit为1时,即该报文为应答SMP报文,将Return Path中被Hop Pointer索引的条目作为出口端口。此时出口端口为Return Path[Hop Pointer]。

如果所确定的出口端口为当前sWitch设备中存在,则将直接路由SMP报文经由fabric转发至该出口端口。否则,可以选择丢弃或者转发至交换设备管理端口,按照传统方式进行协议内处理。

步骤103:对所述直接路由SMP报文中的域段进行更新,并将所述入口端口处的直接路由SMP报文经由交换矩阵直接转发到所述出口端口。

参见图6,在由当前设备switch入口端口对直接路由SMP报文进行处理之后,直接路由SMP需要对部分报文内容进行域段更新。

当D bit为0,即该报文为请求SMP报文时,更新Return Path中由Hop Pointer索引的条目为当前入口端口序号,然后对Hop Pointer进行加1操作

Return Path[Hop Pointer]=入口端口序号;

当D bit为1,即该报文为应答SMP报文时,对Hop Pointer进行减1操作。

在进一步优选的实施例中,域段更新过程中,直接路由SMP中被定值循环冗余校验码(ICRC)校验覆盖的部分域段被修改,该报文的ICRC需要重新进行计算。在具体的实施例中,可以通过随路信号指示出口端口链路层重新对该直接路由SMP报文进行ICRC计算,或在当前入口端口完成ICRC的重新计算。

可见,本发明提出的IB网络直接路由管理报文的转发方法,相比于相关技术具备以下优点:在入口快速完成直接路由SMP报文的检查、更新、出口端口确定,借助Fabric一次转发即完成报文的交换设备内的传递,可以有效降低直接路由SMP报文在交换设备内的传输延时,减少一次Fabric占用,提高非管理数据包传输效率,节省发现时间,保证其他数据报文的Fabric交换带宽,更高效地发现拓扑变化,提高子网管理效率。本发明的方案健壮性和兼容性强,异常的无法处理的报文仍支持转发至交换设备管理端口进行协议内传统方案处理,而且开源子网管理器OPENSM(Open subnet management)无需做额外改动。

相应地,本发明在第二方面提供了一种IB网络直接路由管理报文的转发装置,包括:

解析单元,用于通过交换设备的入口端口接收SMP报文,对所述SMP报文进行解析,当确定所述SMP报文类型为直接路由SMP报文时,在所述入口端口根据报文解析结果判断所述直接路由SMP报文是否满足预定义处理条件;

转发单元,用于当满足所述预定义处理条件时,根据所述直接路由SMP报文的报文传输方向、跳跃指针和子网路径端口号向量确定出口端口;

更新单元,用于对所述直接路由SMP报文中的域段进行更新,并将所述入口端口处的直接路由SMP报文经由交换矩阵直接转发到所述出口端口。

上述装置可通过上述第一方面的实施例提供的IB网络直接路由管理报文的转发方法实现,具体的实现方式可以参见第一方面的实施例中的描述,在此不再赘述。

可以理解,上述实施例中描述的电路结构、名称和参数仅为举例。本领域技术人员还可以根据使用需要,对以上多个实施例的结构特征进行容易想到的组合和调整,而不应将本发明的构思限制于上述示例的具体细节。

尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 增量配电网规划方案确定方法、装置和计算机设备
  • 基于实物ID的电网增量设备嵌入式流程管控方法
  • 基于实物ID的电网设备退役全流程管控系统及方法
技术分类

06120116546610