您的位置:首页 > 运维架构 > 网站架构

Marvell 交换芯片DSA(分布式交换架构)功能介绍

2013-03-10 11:39 531 查看
Marvell DSA(分布式交换架构)

by  韩大卫@吉林师范大学

***************
请参见  Marvell Prestera/Cheetah/xcat/lion 系列交换芯片手册获取更详细的说明
Marvell DSA(分布式交换架构)技术使得设备之间通过级联的方式, 组成一个大型交换网络, 最大程度上加速报文的转发和处理. 在此系统中, 最多允许31个设备相连, 相连设备间的端口需要配置为级联端口, 这样端口间传输的报文会被芯片打上一个DSA 的标记(类似于VLAN), DSA Tag中主要信息有:
Vlan-ID , Souce ID(用于标记报文原始出处),TrgDev(目的设备), TrgPort(目的端口), SrcDev(源设备), SrcPort(源端口)等.所以首先要将级联系统中的每一个设备配置一个唯一的级联设备号(Hardware Device ID).0-31.将指定端口配置为级联端口, 此时该端口同时应该关闭Ingess PCL, Bridge Engine, Policer engine, TTI lookups 和Route等功能. 设备对报文的处理, 仅根据报文中DSA Tag 的相关信息. 进而最大程度上加快报文的转发速度.关于DSA Tag 的产生:  在一个设备中, 一个网络接口接收到报文, 并将其转发到其他端口, 如果某端口配置为DSA mode(级联接口). 在报文进入此级联接口时会被设备打印上DSA标记, DSA Tag 里的内容根据该设备的各种配置而定, 此后会一直携带此DSA Tag转发到所有可能进入的级联设备. 当报文由级联接口转发到网络接口时,  DSA Tag会自动转换为IEEE 802.1Q格式的报文.NOTE:DSA Tag 可以分为DSA Extend mode和 DSA Regular mode.DSA Extend mode  为8个字节, Marvell定义为两个word, Word 0 和word 1. DSA  Regular mode 为4个字节, 只有一个word. DSA Extend mode会携带更多的信息. 现大多数Marvell Prestera/Cheetah/xcat/lion 系列交换芯片均支持 DSA Extend mode. 如果一个配置为  DSA Extend mode的级联接口与一个配置为DSA  Regular mode的级联接口相连,  在传输报文时, 报文中DSA Tag会在两者间自动转换.在级联系统中, 对于报文的转发, 根据报文有无已知出口路径而分两种情况,一, 如在设备中存在有直接转发该报文的路径, 比如有该报文中目的MAC与出接口的对应关系的FDB表, 或者有PCL来指定报文的出接口, 那么此时报文根据设备中 “ Dev Map Table” 中目的设备与指定出接口的对应关系来转发至该出接口. 此报文可以当作在级联系统中的单播报文.单播的报文中示例如下:13:51:27.575755 00:16:31:fe:e7:e8 > 12:13:18:cc:dd:ff, ethertype Unknown (0xc100), length 68:0x0000:  1213 18cc ddff 0016 31fe e7e8 c100 3001  ........1.....0.0x0010:  1010 0101 0800 4500 0028 2b75 0000 4006  ......E..(+u..@.0x0020:  b9f0 c0a1 0a0a c0a1 0a1e 0014 04b0 1cbe  ................0x0030:  45aa 07a7 22fe 5000 0200 86a8 0000 0000  E...".P.........0x0040:  0000 0000DSA Tag 为:  c100 3001 1010 0101含义如下:Word 0: c100 3001 :[31:30]TagCommand	       :  forwarding[28:24]SrcDev			       :   00001 	        ------->	报文来自设备1[23:19]SrcPort			       :	0000	------->	来自设备1 的Port 0[15:13]UP				:	001		------->	User Priority 1[12]						:	1		------->	DSA Extend 类型[11:0]					:	1		------->	VLAN-ID 为 1Word 1: 1010 0101[28]EgressFilter			1:			------->		报文为已知路径的单播报文.[24:20]Source ID		        00001:		------->		1	:	Souce ID 为 1[10:5]TrgPort			        0010000:	        ------->		8	:	目的port 为 8[4:0]TrgDev				00001:		------->		1	: 	目的dev	为 1这样,  在dev 0的级联接口接收到此报文后, 根据dev 0 内部的Dev Map Table配置找到对应出接口, 转发报文.NOTE:Source IDSource ID 为一个 5bit的数字, 用于在级联系统中标识一个设备, 建议与Hardware Device ID配置一致, 这样可以通过此Source ID 来看出报文来自哪个设备从而加以处理.默认值为0.如果将ge 0 的”端口默认Source ID” 使能, 报文中的Source ID 为ge 0的默认Source ID配置.对于级联系统中的单播报文, 可通过配置Dev Map Table来决定报文的走向, 例如, 对于上面的报文,在设备中配置DEV MAP Table,--------------> 配置连接 Dev1 的接口为 8这样, 上面的报文会被转发到ge 8.二, 如果在设备中, 对此报文没有直接的出口路径, 那么便在级联系统中广播, 广播的报文示例如下:14:19:12.911557 00:16:31:fe:e7:e8 > 12:13:18:cc:dd:ff, ethertype Unknown (0xd000), length 76:0x0000:  1213 18cc ddff 0016 31fe e7e8 d000 3001  ........1.....0.0x0010:  0010 1fff c100 3001 1010 0101 0800 4500  ......0.......E.0x0020:  0028 e032 0000 4006 0533 c0a1 0a0a c0a1  .(.2..@..3......0x0030:  0a1e 0014 04b0 19f8 d415 66eb f4b8 5000  ..........f...P.0x0040:  0200 ca03 0000 0000 0000 0000Word 0 : d000 3001[31:30]TagCommand	        :  forwarding[28:24]SrcDev			        :   10000 	------->	报文来自设备16[23:19]SrcPort			        :   0000	------->	来自设备1 的Port 0[15:13]UP				:	001		------->	User Priority 1[12]						:	1		------->	DSA Extend 类型[11:0]					:	1		------->	VLAN-ID 为 1Word 1 : 0010 1fff[28]EgressFilter			0:			------->		报文为知路径的多播报文.[24:20]Source ID		        00001:		------->		1	:	Souce ID 为 1[10:5]TrgPort			         1111111:	------->		8	:	目的端口为所有端口[4:0]TrgDev				11111:		------->		1	: 	目的dev	为所有设备对于级联系统中的多播报文, 可使用Source ID Group 来决定报文的出口,比如, 对于上述报文, 做如下配置:一, 将接口 16 添加到 Soure ID group 1 中二,  将接口 25 在 Soure ID group 1 中删除这样, 同在 VLAN 1 下的ge 16和xe 25, 只有ge 16可以收到报文, 进而在级联系统中进行广播.另外, Marvell 定义了一种 Fast Failover(快速故障处理) 的机制.当级联系统中某一个设备出现故障时, 为保证链路畅通, Marvell允许用户定义弟二个出接口, 当设备默认出接口有问题时, 会自动切换到弟二个出接口.NOTE:Dev Map Table , Source ID Group , Vlan 几个表的作用范围:作用范围依次变大:Dev Map Table  ---->  Source ID Group --------> Vlan首先, 要保证级联接口在报文的Vlan中.对于要在级联系统中没有已知路径(广播)的报文, 使用Source ID Group来决定报文出口.对于在级联系统中有已知路径(单播)的报文, 在满足Source ID Group情况下, 由Dev Map Table决定报文出口.根据Marvell 提供的配置, 可以决定是否Source ID可以决定过滤DSA单播报文, 默认功能是使能的(因为单播的范围在广播范围中), 所以DSA单播报文, 需要先满足Source ID Group, 再根据Dev Map Table进行转发.NOTE:当两个设备作为级联时, 整个级联系统作为一个设备来学习目的设备/目的接口 与报文中MAC的对应关系.例如如果dev 0 的ge 0 进入报文经过ge 8发出, 最后由dev 11 的 ge 18转发到目的地, 之后该地址发送回应报文.那么dev 0 自动学习的结果是:VID		MAC					  Interface		Type	  	DstDev1		00:16:31:ff:31:11	  	18				dynamic	11VID		MAC					  Interface		Type	  	DstDev1		30:16:31:ff:3a:ee	  	0				dynamic	0如果不是作为级联系统, 那么dev 0 的学习结果仅为自身的出接口:VID		MAC					  Interface		Type	  	DstDev1		00:16:31:ff:31:11	  	8				dynamic	0********* ********************Thanks for review******************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息