BCM交换芯片原理概要

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

BCM交换芯片原理概要本文使用的寄存器图片非摘录自56620的寄存器说明文档,可能存在部分文字与图片描述不一致的地方。其匹配寄存器文档为“56620-PR101-R”(网络上没找到)——byM.CArchitecturalACLBufferManagementL2VLANLinkAggregationMirroringL3OutlineArchitectural系统逻辑视图IngressChip解析报文128字节的头部(MMUCell的最小单位)隧道终结报文头分类,以决定VRF通过VRF与报文头的信息,进行L2/L3/MPLS查找入口ACL处理;基于ACL进行计数与统计报文缓存、准入控制与调度修改报文(如基于报文类型进行修改)SwitchFabric基于HiGig头部信息进行报文的交换选路多播处理支持基于服务的流量控制EgressChip解析HiGig报文头根据HiGig头部信息决定出端口报文缓存、准入控制与调度修改报文出口ACL处理芯片逻辑视图入端处理通道负责报文解析,隧道终结与VRF配置,L2/L3/MPLS使用隧道终结阶段获得的VRF信息进行查找与ACL处理。TCAM:ternarycontentaddressablememory。从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’tcare”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找。TCAM表内所有条目都可以并行访问,比如,如果你有100条ACL,TCAM能一次就能对比这100条ACL进行对比操作,过去如果有100条ACL的话,需要第一条ACL对比完后再对比第二条,然后第三条,直至N条,效率很明显没有TCAM高。TCAM的组件FM(特性管理器)软件将匹配语句编译(合并)为TCAM表项,这样就可以以帧转发速度查询TCAM芯片框图芯片框图GPIC:端口的配置信息驻留在GPIC(GigabitEthernetPortInterfaceController)里。GPIC可以配置为SGMII模式或者SerDes模式。SGMII模式可以直接连外部PHY设备;SerDes模式可以直接连光模块。HiGig:HiGig模式端口用于多个芯片的互连来增加整个系统的端口密度。CMIC:通过PCI外接CPU,实现对芯片寄存器的读写设置操作。CPU口发包的处理逻辑与端口接收报文一样(一般CPU是0口,就像0口接收到了报文一样),处理过程也会出现报文重新被送CPU的情况。MIIMCPUMACRJ45PHYPCI-ETXDTXENTXCLKRXDRXENRXCLKMDIOMDCTX/RXDMA交换架构采用模块化、高性能的管道式报文交换处理架构。在管道上的每个模块都有各自的处理功能,并把处理的结果提供给下一模块进行处理。IntelligentParser:包括两个独立的解析器,全解析器和HiGig解析器。全解析器负责解析来自端口与CMIC的报文(面板口与CPU口),需要的信息都可以在头128字节里获得,全解析器必须保存所有的解析信息,以备各种搜索引擎使用。HiGig解析器负责解析来自HiGig口的报文。SecurityEngine:早期的硬件安全检测机制,防止DoS攻击。L2Switching:分配VLAN、优先级,源MAC学习,目的MAC查找转发。L3Routing:源/目的IP查找ContenAwareProcessing:CAP用来提供ACL、差分服务、QoS等类型的应用。图中的IFP、EFP即CAP。BufferManagement:控制端口的传输行为与流量整形。每个出口关联有8个CoS队列,调度器可配置为不同的模式对这8个队列进行不同的仲裁。调试器仲裁的一个主要方面是提供最小带宽保证与最大带宽限速,通过监视每个CoS队列的计数机制实现。Modification:根据搜索引擎的的结果,进行VLAN转换、隧道封装与L3路由变更。CAP在过去称为过滤引擎(filterprocessor),所以IFP(ingressfilterprocessor)、EFP(egressfilterprocessor)沿用了这样的命名IntelligentParser可以从逻辑上看成是硬件内部有一个微程序(硬件电路实现)负责解析报文,并把报文的各个字段(如MAC,IP等)保存到结构体的各个成员变量里,以便高效地提供给后续的搜索引擎使用。CAP芯片内部主要的搜索引擎有两种,HASH搜索引擎与CAM搜索引擎。HASH搜索引擎:L2表、L3表、VLAN表、IPMC表等等CAM搜索引擎:ACL表每个搜索引擎都带有一定的存储空间,用来存储相应的内容表项。搜索引擎采用管道式的架构,进行每个引擎的处理。ACLCAPIFP(ICAP)、EFP(ECAP)都属于CAP。IFP采用的是有16个并行内容查找处理器的CAM,CAM被分成16个slice,16个查找处理器并行进行查找,产生16个结果,如果结果的行为不是冲突的,则全部执行;如果行为是冲突的,则根据优先级选择最高优先级的行为执行。查找处理器的主要组成部件:Intelligentprotocol-awareselector:选择匹配域作为查找的关键字ContentAwarelookupengine:执行关键字查找并且输出完全匹配的那条表项索引。ContentAwarepolicyengine:匹配结果将执行的动作行为。根据lookupengine的索引来选择。ContentAwaremeteringandstatisticsengine:策略与统计收集。ContentAwareactionresolutionengine:多重匹配的处理方式。Intelligentprotocol-awareselectorContentAwarelookupengineContentAwarepolicyengineContentAwaremeteringandstatisticsengineIntelligentprotocol-awareselectorIntelligentprotocol-awareselector:FP_PORT_FILED_SEL用来选择选择Intelligentprotocol-awareselector里的哪些匹配域作为解析器解析的关键字(这些关键字将作为Look-Upengine的输入)。Intelligentprotocol-awareselector已经由硬件固定形成了几种不同的组合,只能从这些组合里进行选择(如果想要自定义匹配域,芯片有另外提供UDF_OFFSETtable)。ContentAwarelookupengine:lookup可以设置F域(F1,F2,F3)的值及F域的掩码,F域与F掩码的bit位宽是一致的,F掩码=1则表示关心上一步解析后输入的关键字的相应bit位与F域设置的值是否一样,如果所有关心的bit位都一样则表示匹配成功,否则匹配失败;如果F掩码=0则表示不关心相应的bit位。ContentAwarepolicyengine:当lookupengine查找匹配时,其匹配项的索引值作为policyengine的索引值(lookup与policy的表项一一对应),由policyengine设置的action来决定对报文的处理方式,如drop、permit、to_cpu等动作。ContentAwaremeteringandstatisticsengine:由FP_METER_TABLE与FP_COUNTER_TABLE组成。Policyengine的METER_INDEX与CONTER_INDEX分别作为索引指向其配套的METER与COUNTERtable。METER用来测量报文的状态并使用srTCM/trTCM进行着色,把着色的结果反馈给配套的lookupengine进行处理。METER一般是两条表项配对使用,由policyengine的METER_INDEX_ODD与METER_INDEX_EVEN进行索引,分别对应srTCM的C桶与E桶或者trTCM的C桶与P桶。COUNTER根据policy选择的COUNTER_MODE进行Green/Yellow/Red报文的着色个数统计。Policyengine的COUNTER_INDEX与COUNTER_INDEX+1分别指向LOWER_COUNTER与UPPER_COUNTER。BufferManagementMMUMMU主要功能是负责在正常与拥塞的传输情景下,高效地管理CBP(CellBufferPool)和报文指针资源。能够以最大115Gbps的速率接收端口的报文数据流单播与组播报文能够以16Gbps的速率从出端口发送出去计算ingress/egress的容量使用情况高效地管理组播传输支持12k字节的巨帧存储与处理每个报文的12/16字节头部信息支持HiGig协议允许CPU从端口接收,或者往端口发送支持802.1p的队列优先级基于每个CoS队列的流量控制动态容量管理拥塞控制消息的处理与生成缓存管理入端:监视入端口CoS队列的可用缓存使用情况。如果超过阈值,则产生流量控制消息,发往该端口队列。如果对端处理流控报文,则对端会停止发送,以缓解入端的压力。出端:监视出端口CoS队列的缓存使用情况。如果超过阈值,新到来的入口报文如果目的出口是超过阈值的端口,那么拥塞控制将会把入口报文立即丢弃。报文缓存管理缓存以cell为最小单位,每个cell大小为128字节。32768个cell提供了最大4MB的缓存容量。同时提供了11k个packetpointer(XQ),每个报文分片存储在cell里,指针(XQ)用来指示报文的第一个cell。入端与出端分别独立地统计进入芯片的报文。对于多播或者泛洪的报文,存在多个出口,入端只统计一个报文计数,所有出端也只统计一个报文计数。MMU转发框架MMUPortxq1xq6xq2xq3CBPheadqueuexq1,xq6L2/L3/ACLxq6xq1CoSQueueSearchEngineMACCMICMIIMPCI-EGPICIngressControl缓存空间分为3个部分MinimumGuaranteedspace:为端口提供最小保证可用空间PORT_MIN。Sharedspace:当最小保证空间不足时,为端口提供的共享缓存空间。TOTAL_SHARED_LIMIT指示总的共享缓存空间,PORT_SHARED_LIMIT指示每个端口的最大可用共享缓存空间。Headrommspace:当最小保证空间与共享缓存空间不足时,提供一些额外的缓存能力•PGHeadroom:流控帧发送出去到对端停止发送报文这段时期,可能收到对端发送过来的部分报文,这分部缓存空间即用于接收这部分报文。由PG_HDRM_LIMIT指示其缓存空间。•GlobalHeadroom:如果没有为每个端口单独分配PGHeadroom,则使用这分部缓存空间作为所有端口的PGHeadroom共享空间。如果使用此空间,则每个端口只允许保存一个报文。此空间允许存储的总报文个数由PORT_MAX_PKT_SIZE指示。缓存规则:报文接收时,优先使用Guaranteedspace,然后使用Sharedspace,最后是Headroom。当报文发送后,则优先释放Headromm,然后是Sharedspace,最后是Guaranteedspace。PAUSEMetering每个端口都有单独的漏桶算法机制,用来监测其缓存的使用情况。PAUSEmetering功能用来在入端口触发流量控制,以反压对端的流量,

1 / 66
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功