BCM5633x 交换芯片硬件结构以及功能模块介绍
来源:互联网 发布:淘宝网红排行榜 编辑:程序博客网 时间:2024/06/11 17:05
BCM5633x 交换芯片硬件结构以及功能模块介绍
前记:
有一天,当我得知自己要做交换机芯片的驱动的时候,我很兴奋,因为这是我长久以来最希望完成的工作。当被告知需要用Broadcom推出的BCM56334型交换产品,来实现公司EPON OLT产品上联GE口的2层交换功能的时候,我顿时有点懵。无论按照电信还是国网公司的标准,OLT只需要实现基本的二层交换功能,不会涉及报文的三层解析,但是BCM5633x是一个2/3层的千兆交换机,也就是说如果一旦采用BCM5633x,那么势必有些浪费。还好,Broadcom的产品模块化比较强,二层到三层的转化处理只需要一个控制位来控制,这样,也就能安心完成2层功能了。但是,遗憾的是,开发被终止了......
为了比较详尽的介绍BCM5633x产品,我打算做一个系列的博客,希望能和专业之士共同探讨这一产品的功能。同时,因为这是我首次接触交换芯片,有些概念希望大家积极指正。
BCM5633x交换芯片硬件架构
BCM5633x的硬件架构如下图所示:
图中,BCM5633x 的CMIC是交换芯片和CPU的接口,两者通过PCI总线连接。其他类型交换芯片与CPU连接接口可以是:SPI + MII,I2C + MII,系统总线 + MII,SMI + MII。MII(介质无关接口)是以太网控制器(主要是L2)和PHY通信的物理接口。
网络包的处理流程
我列出了报文在BCM5633x内部被处理时经过的硬件模块。
网络数据包由前置面板的24个Gbe端口或者10Gbe端口进入交换芯片后,首先经过智能解析器,包的前128字节信息被提取保留,Lookup Engine和ContentAware Processor会引用这些信息,用以后续流分类等操作;接着,数据包会进入Security Engine,一个内嵌的硬件检测逻辑,检测和防止攻击类报文;符合条件的数据包会进行L2交换和L3层路由(如果使能L3处理)处理—主要通过包头信息进行表查询,地址学习等;经过前面的基本处理,符合条件的数据包会进行ContentAware Processing。ContentAware Processor是一个过滤分类处理器,设计用来支持ACL,区分服务,QoS等功能,对数据包进行相关动作配置(丢弃,修改VLAN以及限速等);对于可转发的数据包,根据820.1P或者DSCP标记,放入不同优先级的队列中,调度器根据调度算法执行调度过程,在出口方向执行流分类的配置动作后,通过出端口发出去。
模块功能介绍
Intelligent Parser
智能解析器,提取进入交换芯片内部数据包的前128字节信息,为后面预处理数据包做准备。
Security Engine
安全引擎是内嵌的硬件逻辑,作为防止网络攻击的首层防护,提供Dos攻击防护等。安全引擎提供:早期忽略处理,防DOS攻击,基于流的镜像,流率测量等机制。,
L2 Switching
专注于二层交换和转发,维护L2表,如MAC地址表、VLAN表等,并根据L2 table进行报文的转发和交换。
L3 Routing
维护L3表,L3表包括路由表等。该模块根据报文携带的三层信息,进行路由表的更新等操作,同时按照路由表的路由信息,对报文进行3层转发
ContentAware Processing
内容相关处理,该模块主要在于识别报文携带的信息,并根据这些信息实现不同的ACL,策略,比如过滤,修改域等,动作的实际执行是在出口的最后一层。
Memmory Management
提供内存管理统计(cells and packet pointer 机制),共享缓冲池动态内存门限机制,入向允许控制,PAUSE测量,出向允许控制,加权随机早检测,服务相关流量控制,端到端流量控制,端到端拥塞控制,区分服务,队列调度,流量整型等。
Traffic Management
出口方向的流量管理,如限速,出向端口仲裁,流量测量整型,VLAN整型等。
Modification
该模块将执行ContentAware处理模块标示的具体动作,修改报文的某些域,然后通过出口发送出去
以上这些模块实现的功能其实很复杂,具体之间的联系需要看使用手册来理解。
【本博客 http://www.cnblogs.com/iTsihang 中原创之博文,版权属作者所有,欢迎转载。转载之时请保留本段内容,否则作者将保留追究版权之权利】
- BCM5633x 交换芯片硬件结构以及功能模块介绍
- Camera 硬件结构介绍
- Marvell 交换芯片DSA(分布式交换架构)功能介绍
- Python 常用功能模块介绍
- 交换芯片简单剖析
- 以太网交换芯片学习
- MembershipProviders以及数据库结构介绍
- MembershipProviders以及数据库结构介绍
- MembershipProviders以及数据库结构介绍
- FPGA概念、芯片结构、工作原理、开发流程以及xilinx公司主要可编程芯片
- OpenCV 2.4.x 功能模块介绍
- ADAS(2) 各功能模块介绍
- Kinect v2.0原理介绍之一:硬件结构
- 嵌入式项目代码结构的分层——HAL(硬件抽象层)、FML(功能模块层)、APL(应用程序层)
- 硬件知识——芯片
- 硬件芯片选型原理图设计
- 手机硬件之基带芯片
- 硬件芯片选型和查询
- C++中将string类型转换为int, float, double类型
- 请教大神Java web的异常
- UML类图画法全程解析
- poi 读取excel 文件
- myeclipse 生成javadoc
- BCM5633x 交换芯片硬件结构以及功能模块介绍
- onWindowFocusChanged
- sh14.sh: 9: Syntax error: Bad for loop variable错误的解决
- this关键字总结
- NPOI
- sql server 还原数据库备份失败:已到文件结尾(38)3203处理方法
- CSS怎么将背景图左移
- 实现EditText边框颜色改变
- crontab定时任务