BCM ESW芯片和Marvell CAT芯片的比较
来源:互联网 发布:淘宝网商城女装上衣 编辑:程序博客网 时间:2024/04/29 07:47
我曾经分别对BCM的ESW系列芯片和Marvell的XCAT芯片有一段时间的开发经历,这两块芯片在共同支持的功能上没有什么大的不同,但是在硬件实现上有着很大的区别,现在我跟进个人感受总结他们的不同,希望对大家这两家的认识有所启发。
Marvell芯片系列分类有意思,如cat、tiger、puma、Lion等,都是用动物来命名的,可能将来会出现elephant、dragon之类的名称,每个系列又有若干种特定的芯片种类,比如cat系列有tomcat、bobcat和poncat等。BCM的芯片大体分robo和xgs两类(据说还有一类,是M开头的,我从来没见过),当然每个系列又分为好几个类,拿xgs来说BCM至今出了有五代,一代和二代我没有用过,我接触的从三代xgs芯片开始的,包括bcm5630X、bcm5631X、bcm5650X和bcm5651X等,四代芯片包括bcm5652X、bcm5662X、bcm5663X、bcm5672X、bcm5682X等,现在BCM发布的属于第五代芯片,开始我们自研交换机用的芯片BCM5684X就属于第五代芯片。BCM的SDK代码就称为SDK,现在我们用的是5.10.2版本,XGS的代码基本上在ESW(Enterprise SWitching)文件夹内,Marvell的SDK称为CPSS。
可能是因为我接触Marvell的Xcat芯片不属于高级芯片的缘故,XCAT芯片在现在交换设备功能上没有XGS支持的全面,希望Marvell芯片到了Lion有很大增强。具体来说他们再芯片交换流程上有如下区别
1. 负责实现acl功能的tcam资源会marvel会放到L2转发和L3转发的前面,而BCM芯片是在L2转发和L3转发的后面?不要小看这点区别,因为ACL、QOS和很多协议规则都在此块TCAM中实现,尤其是和L2转发、L3转发结合起来使用的时候,与BCM的区别将会更大。
2. Marvel的负责实现acl功能的tcam资源是分轮次的,不像BCM的IFP是分slice的,而且表现宽度有点窄,且不支持端口位图,使用起来很灵活,灵活的代价就是开发人员要写很多代码来管理此部分的资源。
3. 在vlan和L2转发上,对报文vidtag的识别不支持协议vlan、子网vlan和macvlan,并且对vlan-translation的处理无论是出口还是入口都是基于全局的,不是基于端口的,使用起来很令人无奈;在L2转发上,对应mac地址飘逸(情况是te-1/1/1已经学习到这个mac地址,port te-1/1/2上又来此SMAC的报文,BCM上称movestation)支持的程度是除了静态mac不可以飘逸,其他都会自动飘逸;而BCM则是可以配置不同端口的优先级,根据优先级决定是否movestation。两者的mac表项都有芯片达到128K,且都是hash方式查找,但是BCM可支持二次或多次hash处理冲突,marvell是变幻桶的深度来减少冲突。
4. 在L3转发上,不支持VPLS、TRILL等交换设备新功能,这点我们自研交换机可能不是很关心,但是在路由上支持是可以的,只是路由表项没有BCM的表项大。
5. Marvell芯片在很多寄存器或表的使用上不支持基于端口的,比如刚才的实现acl功能的tcam资源、vlan-translation和QOS的调度权重配置等,这给开发者带来了很大的郁闷,因为很多的需求往往是基于端口的。真心希望他们再LION上此项解决这个问题。
6. 当然,无论是BCM还是marvell芯片在数据包流程上都有些内在的BUG,比如BCM芯片是因为有VFP会导致untag报文在交换机内部的存在,而marvell芯片会因为出口内部优先级到cos或dscp的映射的优先级较高而导致入口规则设置cos或dscp的动作失效。
7. Marvell的芯片SDK的BUG真的很少,应该是以色列人写的;BCM的BUG真的太多了,但是Marvell的SDK调试手段很单一,没有BCM的SDK的BCM模式。不过据说Marvell F已经有命令行调试了。
总之,两种芯片厂商的解决方案有很大不同,在SDK的代码中也有充分体现,两者就好像为一群人分一个蛋糕一样,marvell会只给一个蛋糕和一把刀子,至于怎么分它不管;而BCM这是给一个蛋糕和一把刀子的同时,还会附赠几个经典的分蛋糕的方法案例。
- BCM ESW芯片和Marvell CAT芯片的比较
- BCM ESW芯片和Marvell CAT芯片的比较
- BCM ESW芯片和Marvell CAT芯片的比较
- BCM 芯片SDK初始化
- BCM芯片介绍
- BCM 芯片SDK初始化
- Marvell 88E1145PHY芯片的初始化配置
- DSP和其他微芯片的比较
- Marvell发布4核A53芯片 基带支持Cat.7 LTE---ESM
- STM32连接Marvell交换芯片88E6176的PHY
- Marvell xcat 系列交换芯片Linux下的中断机制
- Android的开放和BCM芯片的支持,是否会给山寨机带来第二个春天?
- 芯片比较
- BCM芯片数据包转发基本流程
- BCM交换芯片策略路由功能
- BCM芯片L2 Ingress Packet处理流程
- 所用AD芯片的比较
- 芯片
- SetWindowsHookEx
- 利用php程序放大图片
- MyBatis.Net使用入门(一)
- java基本常识
- Qt快速读取Excel大文件——读取整个sheet
- BCM ESW芯片和Marvell CAT芯片的比较
- [CC LEBOXES]buy
- 混合app开发
- 【单调栈】Vijos P1926 紫色的手链
- 2016夏季练习——线段树
- OpenGLES入门笔记:Rajawali学习(2)场景绘制基本流程
- POJ-3356 AGTC(编辑距离)
- Oracle 11g安装(Linux)
- BCM芯片FP原理及相关SDK数据结构介绍