Fc交换机级联配置及路由实现方法
【技术领域】
[0001 ]本发明属于计算机通信技术,设及FC交换机级联配置及路由的实现方法。
【背景技术】
[0002] FC通信网络由节点机和交换机组成,所有节点机均通过链路与交换机相连,实现 分布式通信。
[0003] 通常情况下,FC交换机基于FPGA实现,由于受FPGA资源规模所限,单个交换机实现 的端口数目有限。但是随着应用需求的增加,交换网络中节点机大量增加。运样导致单个交 换机无法支持更多的节点机。因此,级联式交换网络随之产生。但如何使FC交换机支持级联 式交换网络,是当前存在的难点。
【发明内容】
[0004] 本发明提出了一种FC交换机级联配置及路由实现方法,可W支持FC交换机级联, W适应交换网络中日益增加的节点机数目。
[0005] 本发明的技术解决方案是:
[0006] FC交换机级联配置及路由实现方法,包括W下步骤:
[0007] 1)对FC交换机进行初始化配置,初始化配置对象包括交换机域ID、级联端口标志 寄存器、级联端口数目配置表、级联端口路由表、多播路由表和广播路由寄存器;
[000引交换机域ID包括本地域ID寄存器和级联交换机域ID配置表;
[0009] 2)数据帖的路由选择
[0010] 当交换机某一端口接收到数据帖,执行W下流程:
[0011] (1)解析出该数据帖的DID,根据DID判断该数据帖的类型:如果该数据帖为单播, 跳转到步骤(2);如果该数据帖为多播,跳转到步骤(8);如果该数据帖为广播,跳转到步骤
[12] ;
[0012] (2)解析出该数据帖的域ID,与本地域ID寄存器进行比对:如果与相同,表明该数 据帖的目的端口不是级联端口,跳转到步骤(3);否则,跳转到步骤(4);
[OOK] (3)根据该数据的DID进行路由,将该数据帖转发到对应的目的端口;
[0014] (4)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (6);否则,跳转到步骤(5);
[0015] (5)根据该数据帖的域ID查询级联交换机域ID配置表,如果查询命中,则得到该数 据帖的域ID相应的级联路径编号,跳转到步骤(7);否则,跳转到步骤(6);
[0016] (6)将该数据帖丢弃,流程结束;
[0017] (7)根据步骤(5)得到的级联路径编号,查询对应的级联端口路由表,得到级联端 口的端口号,将该数据帖转发到该端口号对应的级联端口,实现路由选择;
[0018] (8)查询多播路由表,获得该多播数据帖的目的端口,转步骤(9);
[0019] (9)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (10);否则,跳转到步骤(11);
[0020] (10)如果步骤(8)中获得的多播目的端口包含级联端口,将级联端口从多播目的 端口中去除,获得新的多播目的端口,然后将该数据帖转发到新的多播目的端口;否则转步 骤(11);
[0021] (11)将该多播数据帖转发到步骤(8)中获得的多播目的端口;
[0022] (12)查询广播路由寄存器,获得广播目的端口,跳转到步骤(13);
[0023] (13)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (14);否则,跳转到步骤(15);
[0024] (14)如果步骤(12)中获得的广播目的端口包含级联端口,将级联端口从广播目的 端口中去除,获得新的广播目的端口,然后将该数据帖转发到新的广播目的端口;否则转步 骤(15);
[0025] (15)将该广播数据帖转发到步骤(12)中获得的广播目的端口。
[0026] 上述本地域ID寄存器用来配置本交换机的域ID,采用8位寄存器实现,可读可写;
[0027] 级联交换机域ID配置表用来配置与本交换机级联的外部交换机的域ID,采用CAM 实现,地址为级联路径编号,内容为级联交换机的域ID;级联路径编号为Y。
[0028] 上述级联端口标志寄存器为N位,每位分别对应一个端口,标志寄存器为1的位,表 示相应端口为级联端口,否则,表示相应端口为非级联端口;其中,N为交换机端口数目。
[0029] 上述级联端口数目配置表采用RAM实现,其地址为级联路径编号,内容为级联端口 数目;级联端口数目为与本交换机级联的外部交换机级联端口的数目,级联端口数目范围 从0到M,M大于或等于1,并小于N;
[0030] 当外部交换机的级联端口数目为加寸,表示本交换机与该交换机无级联端口相连; 当不为加寸,表示本交换机与该交换机通过级联端口相连;当大于1时,表示本交换机与该交 换机之间有多个级联端口。
[0031] 上述级联端口路由表有Y+1张,分别对应Y+1组级联路径,编号为0到Y;
[0032] 每张级联端口路由表为一块的RAM,深度与级联端口数目一致,内容为级联端口的 端口号。
[0033] 上述多播路由表为一块255xN的RAM,内容为目的端口掩码,地址为多播ID;多播ID 从0x00到OxFE;每个多播ID和相应的目的端口掩码对应同一个多播组;目的端口掩码每位 分别对应一个端口,目的端口掩码为1的位,表示相应的端口属于该目的端口掩码对应的多 播组的目的端口,否则,表示不属于;
[0034] 多播路由表配置方法如下:
[0035] 如果多播组的目的端口全部在本交换机上,则将本交换机的各级联端口对应位全 部置0,将各目的端口对应位置1;
[0036] 如果多播组的目的端口在外部交换机上,则将相应的多播ID对级联端口数目取模 求余,所得余数与级联端口 一一对应,将所得余数对应级联端口的对应位置1,其余级联端 口的对应位置0;
[0037] 如果多播组的目的端口同时在本交换机和外部交换机上,则将本交换机的非级联 目的端口对应位置1,将相应的多播ID对级联端口数目取模求余,将所得余数对应级联端口 的对应位置1,其余级联端口的对应位置0。
[003引上述广播路由寄存器为N位,每位对应一个端口,广播路由寄存器为1的位,表示相 应端口属于广播目的端口;否则,不属于;
[0039] 广播路由寄存器配置方法如下:
[0040] 将本交换机所有非级联端口对应位置1;
[0041] 将级联路径编号对应的级联端口中第一个端口对应位置1,将级联路径编号对应 的级联端口中其余端口对应位置0。
[0042] 本发明具有的优点是:
[0043] 利用本发明可W构建级联交换网络,有利于更多的FC节点机接入,有利于交换网 络容量的扩充;
[0044] 支持FC单播、多播和广播数据帖通过级联交换网络进行路由;
[0045] 硬件开销小:逻辑仅用来提供相应的配置寄存器和配置表,W及路由功能;与单交 换机相比,硬件开销增加很小;
[0046] 扩展性强:可W扩展至更多交换机级联;
【附图说明】
[0047] 图1是四交换机级联拓扑结构;
[0048] 图視FC交换机路由流程示意图。
【具体实施方式】
[0049] 本发明提出了一种FC交换机级联配置及路由实现方法,该方法首先通过CPU对本 交换机的域ID、与其级联的交换机的域ID配置表、级联交换机数目、级联端口标志寄存器、 级联端口数目配置表、级联端口路由表、多播路由表、广播路由寄存器等进行配置,当交换 机某一端口收到数据帖后,根据数据帖的类型进行相应的路
由选择:
[0050] (1)如果是单播,首先判断目的端口是否在本交换机,如果在本交换机,则根据DID 进行路由;如果目的端口不在交换机,则查询与其级联的交换机的域ID配置表,然后根据返 回的地址查询级联端口路由表,决定将该数据帖转发到哪个级联端口,然后查询本端口是 否是级联端口 :如果是,则将该数据帖丢弃;否则,将该数据帖转发到查询到的级联端口;
[0051] (2)如果是多播,首先查找多播路由表,获得多播目的端口,然后查询哪些端口为 级联端口:如果本端口为级联端口,则将该多播帖转发到除级联端口 W外的查询到的所有 多播目的端口;如果本端口不是级联端口,则将多播帖转发到查询到的所有多播目的端口;
[0052] 如果是广播,首先查找广播路由表,获得广播目的端口;然后查询本端口是否为级 联端口 :如果本端口为级联端口,则将该广播帖转发到除级联端口外的所有查询到的广播 目的端口;如果本端口不是级联端口,然后将该广播帖转发到查找到的所有广播目的端口。
[0053] 如图1,四个FC交换机通过级联端口进行级联,每个交换机端口数目为64,级联端 口数目均为6。下面从支持的FC交换机级联拓扑结构、初始化配置、路由选择流程Ξ个方面 对FC交换机级联配置及路由选择方法进行详细介绍。
[0054] 1 .FC交换机级联拓扑结构:
[0055] 本发明支持的FC交换机级联拓扑结构如图1所示。
[0056] 在图1中,四个FC交换机域ID分别为1、2、3、4,彼此分别通过6个级联端口进行互 联。W交换机1为例,通过端口 1-6与交换机2相连,通过端口7-12与交换机3相连,通过端口 13-18与交换机4相连。
[0057] 下面WFC交换机1为例,对FC交换机的初始化配置及路由流程进行详细说明。
[0058] 2.初始化配置 [0化9] a)交换机域ID
[0060] 在FC级联网络中,每个交换机都有各自的域ID。在初始化时,需要对交换机本地域 ID和与之级联的交换机域ID进行设置。每个交换机分别具有本地域ID寄存器和级联交换机 域ID配置表。
[0061] 本地域ID寄存器用来配置本交换机的域ID,采用8位寄存器实现,可读可写;级联 交换机域ID配置表用来配置与本交换机级联的交换机的域ID,采用CAM实现,地址为级联路 径的编号,从0到2;内容为级联交换机的域ID。
[0062] b)级联端口标志寄存器
[0063] FC交换机通过级联端口进行级联,组成级联交换网络。
[0064] 级联端口标志寄存器为64位,每位分别对应一个端口,标志寄存器为1的位,表示 相应端口为级联端口,否则,表示相应端口为非级联端口。
[0065] C)级联端口数目配置表
[0066] 级联端口数目配置表采用RAM实现,地址为级联路径编号,从0到2;内容为级联端 口数目,用来配置与本交换机级联的外部交换机级联端口的数目,取值范围从0到6。
[0067] 当外部交换机的级联端口数目值为0时,表示本交换机与该交换机无级联端口相 连;当不为0时,表示本交换机与该交换机通过级联端口相连;当大于1时,表示本交换机与 该交换机之间有多个级联端口,本交换机需要从多个级联端口中选择一个进行转发。
[006引 d)级联端口路由表
[0069] 级联端口路由表有3张,分别对应Ξ组级联路径,编号为0到2。
[0070] 其中,每张级联端口路由表为一块6x6的RAM,该RAM深度为6,数据宽度为6。深度与 级联端口数目一致,内部为级联端口的端口号。
[0071] 当交换机需要将单播数据帖转发到级联交换机时,需要查找该路由表。
[0072] e)多播路由表
[0073] 多播路由表为一块255x64的RAM,该RAM深度为255,宽度为64。深度表示多播组的 数目,内容为目的端口掩码,地址为多播ID,从0x00到OxFE。目的端口掩码每位分别对应一 个端口,目的端口掩码为1的位,表示相应的端口属于该目的端口掩码对应的多播组的目的 端口,否则,表示不属于;
[0074] 如图1,多播路由表配置方法如下:
[00巧] > 如果该多播目的端口全部在本交换机上,则将各级联端口对应位全部置0,将各 目的端口对应位置1;
[0076] >如果多播组的目的端口同时在本交换机和外部交换机上,则将非级联目的端口 对应位置1,其余非级联端口对应位置0;级联端口对应位设置方法如下:
[0077] (1)如果交换机2上有该多播组的目的端口,则将该多播ID对6(级联端口数目)取 模求余:如果余数为0,则将端口 1对应位置1;如果余数为1,则将端口 2对应位置1;如果余数 为2,则将端口 3对应位置1;如果余数为3,则将端口 4对应位置1;如果余数为4,则将端口 5对 应位置1;如果余数为5,则将端口 6对应位置1;
[0078] (2)如果交换机3上有该多播组的目的端口,则将该多播ID对6(级联端口数目)取 模求余:如果余数为0,则将端口 13对应位置1;如果余数为1,则将端口 14对应位置1;如果余 数为2,则将端口 15对应位置1;如果余数为3,则将端口 16对应位置1;如果余数为4,则将端 口 17对应位置1;如果余数为5,则将端口 18对应位置1;
[0079] (3)如果交换机4上有该多播组的目的端口,则将该多播ID对6(级联端口数目)取 模求余:如果余数为0,则将端口 7对应位置1;如果余数为1,则将端口 8对应位置1;如果余数 为2,则将端口 9对应位置1;如果余数为3,则将端口 10对应位置1;如果余数为4,则将端口 11 对应位置1;如果余数为5,则将端口 12对应位置1;
[0080] f)广播路由寄存器
[0081] 广播路由寄存器数据宽度为64位,每位对应一个端口,广播路由寄存器为1的位, 表示相应端口属于广播目的端口;否则,不属于;
[0082] 广播路由寄存器配置规则如下:
[0083] >将本交换机所有非级联端口对应位置1;
[0084] >将与FC交换机2相连的端口 1对应位置1;将端口 2~端口 6对应位置0;
[0085] >将与FC交换机3相连的端口 13对应位置1;将端口 14~端口 18对应位置0;
[00化] > 将与FC交换机4相连的端口 7对应位置1;将端口 8~端口 12对应位置0;
[0087] 数据帖的路由选择
[0088] 当交换机某一端口接收到数据帖,执行W下流程,进行路由选择,如图2所示:
[0089] (1)解析出该数据帖的DID,根据DID判断该数据帖的类型:如果该数据帖为单播, 跳转到步骤(2);如果该数据帖为多播,跳转到步骤(8);如果该数据帖为广播,跳转到步骤 (12);
[0090] (2)解析出该数据帖的域ID,与本地域ID寄存器进行比对:如果与相同,跳转到步 骤(3);否则,跳转到步骤(4);
[0091 ] (3)根据该数据的DID进行路由,将该数据帖转发到对应的目的端口;
[0092] (4)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (6);否则,跳转到步骤(5);
[0093] (5)根据该数据帖的域ID查询级联交换机域ID配置表,如果查询命中,则得到该数 据帖的域ID相应的级联路径编号,跳转到步骤(7);否则,跳转到步骤(6);
[0094] (6)将该数据帖丢弃,流程结束;
[0095] (7)根据
步骤(5)得到的级联路径编号,查询对应的级联端口路由表,得到级联端 口的端口号,将该数据帖转发到该端口号对应的级联端口,实现路由选择;
[0096] (8)查询多播路由表,获得该多播数据帖的目的端口,转步骤(9);
[0097] (9)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (10);否则,跳转到步骤(11);
[0098] (10)如果步骤(8)中获得的多播目的端口包含级联端口,将级联端口从多播目的 端口中去除,获得新的多播目的端口,然后将该数据帖转发到新的多播目的端口;否则转步 骤(11);
[0099] (11)将该多播数据帖转发到步骤(8)中获得的多播目的端口;
[0100] (12)查询广播路由寄存器,获得广播目的端口,跳转到步骤(13);
[0101] (13)查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (14);否则,跳转到步骤(15);
[0102] (14)如果步骤(12)中获得的广播目的端口包含级联端口,将级联端口从广播目的 端口中去除,获得新的广播目的端口,然后将该数据帖转发到新的广播目的端口;否则转步 骤(15);
[0103] (15)将该广播数据帖转发到步骤(12)中获得的广播目的端口。
【主权项】
1. FC交换机级联配置及路由实现方法,其特征在于,包括以下步骤: 1) 对FC交换机进行初始化配置,初始化配置对象包括交换机域ID、级联端口标志寄存 器、级联端口数目配置表、级联端口路由表、多播路由表和广播路由寄存器; 交换机域ID包括本地域ID寄存器和级联交换机域ID配置表; 2) 数据帧的路由选择 当交换机某一端口接收到数据帧,执行以下流程: (1) 解析出该数据帧的DID,根据DID判断该数据帧的类型:如果该数据帧为单播,跳转 到步骤(2);如果该数据帧为多播,跳转到步骤(8);如果该数据帧为广播,跳转到步骤(12); (2) 解析出该数据帧的域ID,与本地域ID寄存器进行比对:如果与相同,跳转到步骤 (3);否则,跳转到步骤(4); (3) 根据该数据的DID进行路由,将该数据帧转发到对应的目的端口; (4) 查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤(6); 否则,跳转到步骤(5); (5) 根据该数据帧的域ID查询级联交换机域ID配置表,如果查询命中,则得到该数据帧 的域ID相应的级联路径编号,跳转到步骤(7);否则,跳转到步骤(6); (6) 将该数据帧丢弃,流程结束; (7) 根据步骤(5)得到的级联路径编号,查询对应的级联端口路由表,得到级联端口的 端口号,将该数据帧转发到该端口号对应的级联端口,实现路由选择; (8) 查询多播路由表,获得该多播数据帧的目的端口,转步骤(9); (9) 查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤(10); 否则,跳转到步骤(11); (10) 如果步骤(8)中获得的多播目的端口包含级联端口,将级联端口从多播目的端口 中去除,获得新的多播目的端口,然后将该数据帧转发到新的多播目的端口;否则转步骤 (11); (11) 将该多播数据帧转发到步骤(8)中获得的多播目的端口; (12) 查询广播路由寄存器,获得广播目的端口,跳转到步骤(13); (13) 查询级联端口标志寄存器,判断本端口是否为级联端口:如果是,跳转到步骤 (14) ;否则,跳转到步骤(15); (14) 如果步骤(12)中获得的广播目的端口包含级联端口,将级联端口从广播目的端口 中去除,获得新的广播目的端口,然后将该数据帧转发到新的广播目的端口;否则转步骤 (15) ; (15) 将该广播数据帧转发到步骤(12)中获得的广播目的端口。2. 根据权利要求1所述的FC交换机级联配置及路由实现方法,其特征在于, 所述本地域ID寄存器用来配置本交换机的域ID,采用8位寄存器实现,可读可写; 级联交换机域ID配置表用来配置与本交换机级联的外部交换机的域ID,采用CAM实现, 地址为级联路径编号,内容为级联交换机的域ID;级联路径编号为Y。3. 根据权利要求2所述的FC交换机级联配置及路由实现方法,其特征在于, 所述级联端口标志寄存器为N位,每位分别对应一个端口,标志寄存器为1的位,表示相 应端口为级联端口,否则,表示相应端口为非级联端口;其中,N为交换机端口数目。4. 根据权利要求3所述的FC交换机级联配置及路由实现方法,其特征在于, 所述级联端口数目配置表采用RAM实现,其地址为级联路径编号,内容为级联端口数 目;级联端口数目为与本交换机级联的外部交换机级联端口的数目,级联端口数目范围从〇 至|JM,M大于或等于1,并小于N; 当外部交换机的级联端口数目为〇时,表示本交换机与该交换机无级联端口相连;当不 为0时,表示本交换机与该交换机通过级联端口相连;当大于1时,表示本交换机与该交换机 之间有多个级联端口。5. 根据权利要求4所述的FC交换机级联配置及路由实现方法,其特征在于, 所述级联端口路由表有Y+1张,分别对应Y+1组级联路径,编号为〇到Y; 每张级联端口路由表为一块的RAM,深度与级联端口数目一致,内容为级联端口的端口 号。6. 根据权利要求5所述的FC交换机级联配置及路由实现方法,其特征在于, 多播路由表为一块255xN的RAM,内容为目的端口掩码,地址为多播ID;多播ID从0x00 至IJOxFE;每个多播ID和相应的目的端口掩码对应同一个多播组;目的端口掩码每位分别对 应一个端口,目的端口掩码为1的位,表示相应的端口属于该目的端口掩码对应的多播组的 目的端口,否则,表示不属于; 多播路由表配置方法如下: 如果多播组的目的端口全部在本交换机上,则将本交换机的各级联端口对应位全部置 〇,将各目的端口对应位置1; 如果多播组的目的端口在外部交换机上,则将相应的多播ID对级联端口数目取模求 余,所得余数与级联端口一一对应,将所得余数对应级联端口的对应位置1,其余级联端口 的对应位置0; 如果多播组的目的端口同时在本交换机和外部交换机上,则将本交换机的非级联目的 端口对应位置1,将相应的多播ID对级联端口数目取模求余,将所得余数对应级联端口的对 应位置1,其余级联端口的对应位置〇。7. 根据权利要求6所述的FC交换机级联配置及路由实现方法,其特征在于, 广播路由寄存器为N位,每位对应一个端口,广播路由寄存器为1的位,表示相应端口属 于广播目的端口;否则,不属于; 广播路由寄存器配置方法如下: 将本交换机所有非级联端口对应位置1; 将级联路径编号对应的级联端口中第一个端口对应位置1,将级联路径编号对应的级 联端口中其余端口对应位置〇。
【专利摘要】本发明属于计算机通信技术,公开了一种FC交换机级联配置及路由实现方法,本发明通过CPU对本交换机的域ID、与其级联的交换机的域ID配置表、级联交换机数目、级联端口标志寄存器、级联端口数目配置表、级联端口路由表、多播路由表、广播路由寄存器等进行配置,当交换机某一端口收到数据帧后,根据数据帧的类型根据特定的路由规则进行相应的路由。该发明硬件开销小,扩展性强,可以支持四交换机级联或者更多交换机级联。
【IPC分类】H04L12/761, H04L12/931, H04L12/741, H04L12/24
【公开号】CN105490845
【申请号】CN201510894610
【发明人】李玉发, 李大鹏, 王晓华, 蒲恺, 季雷, 雷红
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年4月13日
【申请日】2015年12月8日