我曾经分别对BCM的ESW系列芯片和Marvell的XCAT芯片有一段时间的开发经历,这两块芯片在共同支持的功能上没有什么大的不同,但是在硬件实现上有着很大的区别,现在我跟进个人感受总结他们的不同,希望对大家这两家的认识有所启发。

Marvell芯片系列分类有意思,如cat、tiger、puma、Lion等,都是用动物来命名的,可能将来会出现elephant、dragon之类的名称,每个系列又有若干种特定的芯片种类,比如cat系列有tomcat、bobcat和poncat等。BCM的芯片大体分robo(Remote office/Branch office/远程办公室/分支机构)和xgs两类(据说还有一类,是M开头的,我从来没见过)。BroadCom公司xgs系列芯片的重要特性是具有堆叠功能,该功能能将多个交换芯片组合在一起,以 形成一个更大规模的系统,或将多个带交换芯片的系统组合在一起形成一个完整的系统设备。这种功能最多能实现30个设备的堆叠。(详见我的资源:bcm5690交换芯片工作原理)当然每个系列又分为好几个类,拿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芯片的比较相关推荐

  1. 小米智能插座采用Marvell EZ-Connect芯片解决方案--88MC200微控制器、Avastar 88W8801

    小米智能插座采用Marvell EZ-Connect芯片解决方案 Marvell EZ-Connect芯片解决方案包括88MC200微控制器.Avastar 88W8801 Wi-Fi SoC和EZ- ...

  2. Marvell 88E1111PHY芯片简介

    1.PHY芯片简介 PHY芯片在OSI协议栈中属于最底层的物理层,与其它层的关系图如下: 从硬件上来说,一般PHY芯片为模数混合电路,负责接收电.光这类模拟信号,经过解调和A/D转换后通过MII接口将 ...

  3. Marvell以太网交换芯片-88E6390x-简介

      Marvell 88E6390是一款11端口全千兆以太网二层交换芯片.   Marvell Link Street SOHO 88E6390X主要特性: 11端口以太网交换器,具8个集成的Gb I ...

  4. Marvell交换芯片88E6390驱动开发

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 Marvell交换芯片8 ...

  5. Marvell交换芯片88E6321/88E6320驱动总结-硬件篇

    芯片特性 Marvell 88E6321/88E6320 是一个7-Port千兆以太网交换芯片.支持最新的IEEEE802.1 Audio Video Bridging标准. 芯片包含两个10.100 ...

  6. Marvell交换机芯片SMI接口读写协议

    Marvell的88E6XXX系列交换机芯片基本都提供SMI(Serial Management Interface)接口. SMI接口使用2线串行通信,一个MDC提供时钟,一个MDIO为双向数据引脚 ...

  7. RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    一.88E6390X 1. 芯片框图 88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口.8个10/100/1000Mbsp以太网端口.两个XAUI/RXAUI/2500光 ...

  8. Marvell交换芯片88E6321/88E6320驱动总结-寄存器篇

    由于我在项目中将该芯片作为PHY和SERDES使用,因此本文内容主要还是围绕PHY和SERDES的相关功能,至于其他功能则没有进行深入研究. 工作模式 在之前的硬件篇中有提到,该芯片有两种寻址模式:单 ...

  9. MT6737芯片功能介绍+MT6737芯片资料分享

    MT6737芯片功能介绍+MT6737芯片资料分享 MT6737是什么呢? MT6737是联发科技极具成本效益的R.9 Cat-4 LTE解决方案,不但能将模块及内存成本降至最低,符合中低端市场需求, ...

最新文章

  1. BigDecimal 转换为int 或者其他类型
  2. 怎样设计出优秀的测试用例?看看下面就知道了
  3. 队列判空_数据结构与算法——队列的C语言实现
  4. 1.简单认识PHP和环境搭建
  5. 视觉SLAM找工作面试问题集锦(转自网络)
  6. 【HihoCoder - 1502】最大子矩阵(二维前缀和,尺取)
  7. IAR STM32报错Error[Pe147]:declaration is incompatible with“__nounwind __interwork __softfp unsigned
  8. python中global的使用_PYTHON中使用GLOBAL引发的一系列问题
  9. 【NeurIPS2020】Google点针图网络,Pointer Graph Networks
  10. AIDA64内存与缓存测试过了算稳定吗_无需XMP默认3200MHz,十铨 开创者 内存开箱简测...
  11. 硬盘保修查询网站明细清单希捷硬盘保修查询西数硬盘保修查
  12. 中职计算机应用和平面设计,中等职业教育十一五规划教材·中职中专计算机类教材系列·Photoshop平面设计与实训...
  13. Guava 系列 - 比较器
  14. ChatGPT4.0中国怎么使用
  15. 分布式能源的不确定性——风速测试(Matlab代码实现)
  16. 面试经验//Java新手如何制定优秀的职业规划?看大牛怎么说!
  17. 驾校机器人教练售价_驾校机器人教练温柔鼓励!网友:好怕它被我气死
  18. 保监会欲放险资投房产
  19. 网络安全学习第10篇 - ping程序的实现,抓包分析ping数据包以及ping工具对于网络安全方面的威胁
  20. 将具有默认值的列添加到 SQL Server 中的现有表

热门文章

  1. Python 自动化教程(1) 概述,第一篇 Excel自动化首篇
  2. 快速矩阵乘法的研究——中
  3. 《鲁棒控制——线性矩阵不等式处理方法》(俞立)第二、三、四章学习笔记
  4. 6-4 求一组数中的最大值、最小值和平均值
  5. delta-normal var的公式推导
  6. 视博云android虚拟机,手游难推广?视博云云游戏解决方案助力游戏厂商破局
  7. 来看看一个大二学生的Spark练习题
  8. JAVA与西门子S7 PLC通信,方式一:S7connector
  9. Android实例——2048游戏
  10. 全文收索服务-solr介绍