bcm53314笔记.doc_第1页
bcm53314笔记.doc_第2页
bcm53314笔记.doc_第3页
bcm53314笔记.doc_第4页
bcm53314笔记.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Bcm53314笔记结构1、 模块化、管道2、3、 Intelligent parser:检查来自Gbe 和 CMIC的包,头128bit4、 L2交换:选择VLAN type、查找VLAN、L2单播、L2组播5、 CAP(FP):可用于Qos、ACL、DOS防御6、 Buffer Management:Mirror、trunk、Admission Control7、 Traffic Management:Queuing、Scheduling、Shaping8、 Modification:可以由tunneling产生9、 Gigabit Ethernet Port Interface Controller (GPIC) block:可连接SGMII、SerDes10、 MMU:有一个512KB Cell Buffer Pool (CBP),支持IBP、HOL、pauseIBP:背压,输入流量过大发pause帧HOL:输出超过limit时丢包Shaping:输入流量超过limit则发pause帧11、 look up table:内存表,在on chip memory,不在cpu内存空间12、 搜索引擎:两种搜索引擎:Hash Search Engine和CAM Seacher Engine,Hash Search Engine用于L2表和VLAN表,CAM Search Engine用于策略路由、ACL,可查找包字段13、 每端口MAC限制:防止MAC地址攻击,每端口学习的MAC地址数达到限制后丢包or发到CPU。14、 可以通过软件手动增加/删除MAC地址,遵循地址限制,除非是静态地址或者组播地址。LAG按照实际成员端口来学习15、 端口被加进trunk组前腰删除所有L2 entry16、 CAP:17、 53314的FP(CAP)有4个slice,每个512条规则18、 物理slice被映射到虚拟slice,虚拟slice在虚拟slice 组里19、 有一些计数器用来支持MIB20、 53314支持内部cpu和CMIC21、22、Packet Flow1、2、超大帧!13K!3、先经过parser抽取输入逻辑和CAP所需的字段,再检查tag4、double tag:Stacked VLAN也称QinQ 或Double VLAN。其实现为在802.1q协议标签前再次封装802.1q协议 标签,其中一层标识用户系统网络(customer network),一层标识网络运营网络(service provider network),将其扩展实现用户线路标识。5、VLAN解析-源地址学习-目的地址查找-如果是组播包,查找L2MC表6、通过PCI接口连接外部CPU7、可以从CPU端口收发包,收发过程与其他Gbe端口一样,可能发往逻辑端口、stacking端口、丢包、或者发回cpu端口L2 特征和操作1、 地址学习:学习未知SA2、 包老化:丢弃MMU里存在超过指定时间的包3、 地址老化:支持软硬件老化,软件可以增加、删除、搜索和增加静态地址4、 地址状态移动:同一个SA转移到另一个port,需relearn5、 L2MC:线速,如果在L2表找到对应项,该表项有一个指针指向L2MC表,L2MC表返回port bitmap用作DA6、 L2_USER_ENTRY:通过软件设置,静态地址7、 802.1Q:给不带标记包或VID=0的包加标记、改变标记、选择性丢包、可以识别GVRP组播地址01-80-C2-00-00-21并把它转发到cpu、去掉untag端口发出去的包的tag8、 GVRP:一个通过组播向其他端口传递端口VLAN信息的协议9、 STP:根桥、根端口、计算路径开销、裁剪路径,如果拓扑结构改变则重新计算10、 BPDU:携带STP信息的包11、 每个VLAN指定一个生成树组表,表里的条目记载端口状态。2b00 = disable 2b01 = blocking 2b10 = learning/listening 2b11 = forwarding VLAN1、 support IEEE 802.1Q tagged, MAC-based, IP subnet-based, protocol-based, and port-based VLANs2、 TPID(Tag Protocol Identifier,标签协议标识)VLAN Tag中的一个字段,IEEE 802.1q协议规定该字段的取值为0x8100。 用来表示本数据帧是带有VLAN Tag的数据。该字段长度为16bit。3、 如果包TPID与设置的不一致(PORT_TAB/IPORT_TAB.OUTER_TPID),则认为是untagged包,如果一致,检查VID是否为0,0则加上riority tag4、 VLAN顺序:PORT表:VLAN_PRECEDENCED 0 = MAC-based VLAN has precedence over subnet-based VLANS 1 = Subnet-based VLANS has precedence over MCA-based VLANS5、 MAC-based VLAN:根据源MAC地址分配VID6、 Protocol Based VLAN:根据以太网协议(frame type/ethertype)来分配VID7、 Port-Based VLAN:根据端口分配VID(默认)8、9、 双标签:如上图,双标签分别是S-TAG(服务标记)和C-TAG(客户标记)。客户标记是用户自身的VLAN标记,服务标记是ISP在传输中使用的标记10、 bcm53314为ISP提供两种方法来区分用户:一种是透明的局域网服务:用S-TAG封装带C-TAG的用户数据;另一种是映射服务(VLAN转换):根据输入端口和VID来决定SPVLAN,可以带双TAG或者用S-TAG代替C-TAG11、12、 Double-tag下,有两种可能的地址学习方式:一是根据C-TAG的广播域学习,那样就会有很多重叠的地址(bcm53314不支持这个),另一种方法是根据S-TAG的广播域来学习,忽略用户VLAN13、 VLAN转换:在VLAN转换模式下,对输入包用VID和端口号作为索引查VLAN_XLATE表,如果找到对应项,根据VLAN_XLATE.ADD_VID位来增加VLAN tag或代替原有tag。对输出包则查EGR_VLAN_XLATE表,把SPVID替换成CVID和优先级14、包进入输入端口untaggedPORT_TABLE.NNI_PORT=0?TPID=VLAN_CTRL.INNER.TPID?是UNIyesCVID=0?YesnoPriority taggedtagged分配S-TAG信息分配S-TAG信息分配S-TAG信息YesnoUNI向NNI输入:NNI端口15、包从输入端口获得S_TAG信息,进入输出端口后,根据这些信息加S-TAG,S-TAG各字段值从以下方法得到: TPID: S-TAG的TPID根据EGR_VLAN_CONTROL_1egress port.OUTER_TPID_SEL,从EGR_VLAN_CONTROL_1egress port.OUTER_TPID_INDEX 或EGR_VLANS-VID.OUTER_TPID_INDEX获得,2-bit OUTER_TPID_INDEX用来索引EGR_OUTER_TPID表来获取TPID值 S-VID:来自输入端口 S-PRI and S-DE:来自输入端口的包优先级和CNG被映射为3位S-PRI和1位S-DE,通过EGR_PRI_CNG_MAP表。如果EGR_VLAN_CONTROL_1egress port.CFI_AS_CNGouter TPID index = 1,使用来自EGR_PRI_CNG_MAP 表的S-DE。否则,来自输入端口的外层CFI 值用作S-DE。 Outer CFI=0,因为没有外层CFIyesCVID=0?YesPriority tagged双标签分配S-TAG信息Yesno包进入输入端口PORT_TABLE.NNI_PORT=1?外TPID= ING_OUTER_TPID?是UNI内TPID= VLAN_CTRL.INNER_TPID?no单标签Yes不带标签NoPORT_TABLE.PORT_DIS_UNTAG=1?扔掉NoYes分配S-TAG信息发到输出端口NNI向UNI输入:NNI发往UNI,输出(1):来自输入端口的包EGR_VLAN_CONTROL_1egress port.REMOVE_INNER_TAG = 1?有C-TAG?EGR_SRC_PORTlocal ingress port.ADD_INNER_TAG = 1加C-TAGYes不加C-TAGNoYes去掉C-TAG保留C-TAGEGR_VLANS-VID.UT_PORT_BITMAPegress port = 1?去掉S-TAGYesYesNoNo下一步NNI发往UNI,输出(2):上一步EGR_VLANS-VID.UT_PORT_BITMAPegress port = 0 and EGR_VLAN_CONTROL_1egress port.VT_ENABLE = 1查表EGR_VLAN_XLATE找到匹配项?更改最外层的TAG的下列字段:VID、PRI、CFI、TPID扔掉或去掉最外层TAG或改TPID (视寄存器配置而定)NoYesUNI发往UNI, 输入过程 与UNI发往NNI的输入过程相同UNI发往UNI, 输出过程与NNI发往UNI的输出过程相同NNI发往UNI, 输入过程 与NNI发往UNI的输入过程相同UNI发往UNI, 输出过程与UNI发往NNI的输出过程相同VLAN MirroringUNI 输入镜像输入: 包输入UNI端口转发向MTP输出: 向MTP输出,不修改包NNI 输入镜像输入: 包输入UNI端口转发向MTP输出: 向MTP输出,不修改包Management VLAN(管理VLAN)网友3:native vlan本质来说,就是不带vlan ID的vlan,无论是802.1q或者isl。因为不带vlan ID,如何交换机都可以接受和传递它的包,无论是不支持3层的还是一个hub。 而在此基础上提出了managerment vlan。这个概念其实是源于以前有isl和802.1q共存环境,因为这时候,因为部分vlan的prune修剪。全部交换机都可以传输的就是native vlan,这个vlan就变成了管理vlan。NNI:把管理包当作单S-TAGUNI:用S-VID代替管理VLAN的VID 在UNI输入端口:管理VLAN的TPID需要配置成芯片的内部TPID。使得管理包到达UNI的时候被当作C-tagged包 VLAN FP 或 ingress VLAN translation必须被配置为把管理VID转换成S-VID。 在NNI输入端口:管理VLAN tag的TPID需要配置成允许的外层TPID之一使得管理包到达NNI端口时被当作S-tagged包处理。 在UNI输出端口:对于管理VID,EGR_VLAN.UT_PORT_BITMAP应该被配置为零,来保护管理VLAN的tag不被去掉。而且,基于每个端口的EGR_VLAN_CONTROL_1.VT_MISS_DROP位和VT_MISS_UNTAG都应该为0,避免万一VLAN转换失败时丢弃管理包和去掉管理包的tag。然而,这样做会导致其他在输出VLAN转换表里查找不到的非管理包不被扔掉和不被去掉tag。这不是想要的效果。因此我们需要确保非管理包在输出VLAN转换表里能查找到。因此输出VLAN转换表必须配置成以下其中一种: -管理包在表里总是能找到 -管理包的VID被转换成相同的值 在NNI输出端口:对于管理VID, EGR_VLAN.UT_PORT_BITMAP应该被配置为零,来保护管理VLAN的tag不被去掉。EGR_VLAN_CONTROL_1.OUTER_TPID_SEL 应该设置成1,这样外层TPID就以EGR_VLAN.OUTER_TPID_INDEX为索引,从管理VLAN的EGR_OUTER_TPID寄存器获得。缓存管理(Buffer Management Mechanisms)Ingress Backpressure1、 输入背压,用作流控2、 IBPPKTCOUNT和IBPCELLCOUNT记录输入数量(包或cell)3、 IBPBKSTATUS表示背压状态4、 IBPCELLSETLIMIT or IBPPKTSETLIMIT设置限制值5、 当超过限制值,端口进入背压状态。6、 端口进入背压状态,发送值为0xFFFF的pause帧。当解除背压状态,发送值为0x00的pause帧7、PAUSE 测量(Pause Metering)1、 用来做输入限速2、 有一个漏桶结构,如图3、4、 每个包到达时,相应个数的标记会增加到桶里,每个标记代表0.5bit。每7.8125微秒自动减去REFRESHCOUNT个标记。因此,假设REFRESHCOUNT=0x61A,每秒减去0x61A (10000007.8125)= 199936000个标记,因为每个标记0.5bit,约等于1Mbps。也就是说带宽100M。5、 每发出一个cell,桶更新一次,MMU检测到有一定数据流,通知输入端口进行更新。6、 当BUCKET_COUNT到达DISCARD_THD后,丢包,直至低于RESUME_THD。HOL保护线头阻塞(Head-of-line blocking, HOL)是一种出现在缓存式通信网络交换中的一种现象。交换通常由缓存式输入端口、一个交换架构(Switch Fabric)以及缓存式输出端口组成。当在不同的输入端口上到达的包被指向相同的输出端口的时候就会出现线头阻塞。由于输入缓存以及交换设计的FIFO特性,交换架构在每一个周期中只能交换缓存头部的包。如果某一缓存头部的包由于拥塞而不能交换到一个输出端口,那么该缓存中余下的包也会被线头包所阻塞,即使这些包的目的端口并没有拥塞。1、 支持基于cell和packet的保护机制,两种机制同时生效,都可以配置。2、 Cell基于每个队列总缓存空间,packet基于每个队列指定的包数量3、 这种机制的目的是:支持有损的缓存管理、管理Cos粒度和输出端口的缓存资源4、 通过丢包实现这一功能,当输入端发生拥塞时,新到的包丢包。5、 通过MISCCONFIG寄存器的DYNAMIC_MEMORY_EN字段,设置是否打开动态内存分配。6、 静态分配:COSLCCOUNT.LCCOUNT为当前队列cells数,超过LWMCOSCELLSETLIMIT.寄存器的CELLSETLIMIT时进入HOL状态,低于CELLRESETLIMIT解除HOL状态7、 动态分配:LWMCOSCELLSETLIMIT.寄存器的CELLSETLIMIT指定每个队列的静态分配的cell数目,这个值必须比cell总数(4096)少,然后剩下部分作为所有队列共享的动态分配数目。每个cell代表128字节8、 TOTALDYNOVERLIMIT表示动态内存是否可分配,若超过TOTALDYNCELLLIMIT,变成true;若低于TOTALDYNCELLRESETLIMITSEL,变false拥塞位(congestion Bits)1、 拥塞位通过DSCP表或者CAP计量引擎设置2、 拥塞位用来表示红绿黄三种颜色。3、 CNGCOSPKTLIMIT寄存器提供一个阈值限制每个输出端口或队列的速率。4、 CNGCOSPKTSETLIMIT0用来比较红色包,CNGCOSPKTSETLIMIT1用来比较黄色包。当COSPKTCOUNT超过限制,丢包。sRED (SIMPLE RANDOM EARLY DETECTION)1、 通过随机丢包来保护TCP同步2、 通过概率性丢弃有颜色的包实现活跃的队列管理,实现sRED3、 活跃的队列管理是一种算法,这种算法尝试预先丢包或标记某些帧。目的是发现严重的拥塞情况并提前采取措施,使TCP源有助于拥塞后退4、 实现颜色识别、概率性丢包,提前丢弃指定颜色的包避免缓存满。5、 每次包到达都检测队列深度,如果小于某个较低的值,队列没有或有较小的拥塞。如果超过某个较大的值,队列很拥塞,丢包。如果在两个值之间,队列拥塞适中,通过计算得出一个丢包概率DIFFERENTIATED SERVICES QOS(区分服务Qos) 区分服务模型是一种能够区分QoS需求的多业务模型(一种计算机联网体系结构)。它指定了一种简单、可伸缩、粗粒度的机制来分类、管理网络业务流,并在现代IP网络上提供了服务质量保证。例如,DiffServ可以用于为关键网络流量(例如语音和视频)提供低延时、保证型业务,同时又为非关键业务(例如web流量和文件传输)提供了尽力而为的业务保证。然而,与综合服务模型不同,使用区分服务的应用在发送数据之前不需要显式地通知路由器。对于区分服务,网络根据每一个报文指定的QoS来提供一个特定类型的服务。这种指定可以使用多种方式实现,例如,使用IP报文中的IP优先级比特或者源和目的地址。网络使用QoS规范来分类、标记、整形、监管流量,并执行智能化的排队。1、 IEEE 802.1D定义了8个级别的优先级,优先级7为最高优先级,优先级信息被携带在一个3bot的VLAV tag字段里并应用于所有端口。2、 Bcm53314有4个队列。对于tagged包,优先级可能来自VLAN tag或过滤机制。对于untagged包,优先级来自ARL(VLAN地址表)或过滤机制。3、 包在输入端口被映射到优先级队列,在输出端口根据各种调度方式来调度队列4、5、 最大、最小带宽测量,保证最大、最小带宽6、 这种机制的其中一个用途就是把队列分成不同调度组。有以下几组:MinNotMet、MaxNotMet、MaxExceeded7、 队列最小带宽测量:8、 实现原理:这是一个漏的桶结构,包到达时加标记(token),每7.8125微秒减去一个refreshcount的标记9、 每个队列最小带宽设置范围为64 Kbps到16 Gbps。10、 最大突发大小(MIN_HI_THD_SEL) 在4KB到16MB之间11、 如果当前桶装载量超过MIN_LO_THD_SEL,则 IN_PROFILE_FLAG为true,表示满足最小带宽。否则为false,不满足。12、 MIN_LO_THD_SEL影响最小带宽测量的操作时间表,如果MIN_LO_THD_SEL设置的很小,队列很快被标记达到最小带宽,减少队列在MinNotMet的时间。减少调度策略分配给队列的优先时间13、 队列最大带宽测量:14、 实现原理:这是一个漏的桶结构,包到达时加标记(token),每7.8125微秒减去一个refreshcount的标记15、 每个队列最大带宽设置范围为64 Kbps到16 Gbps。16、 MAX_THD_SEL值在4K到16MB之间17、 如果当前桶装载量超过MAX_THD_SEL,队列服务停止18、 基于队列的最大输出带宽机制同样适用在整个输出端口19、 优先级队列的调度方式有四种SP、RR、WRR、WDRR。20、 SP是严格优先级调度,即总是优先转发队列3的数据包,直到队列3的数据包转发完毕,才开始转发队列2的数据包,队列2的数据包转发完毕才转发队列1的数据包,最后转发队列0的数据包。21、 RR是轮询的调度方式,交换机在转发数据包时,从高优先级队列到低优先级队列依次轮询转发数据包,每个队列转发一个数据包。22、 WRR是指带权优先级轮询,交换机在转发数据包时,根据权的配置从高优先级队列到低优先级队列轮询转发数据包,先从高优先级转发权个数的数据包,在转发次高优先级的权个数数据包,直到最低优先级队列转发完,又从高优先级开始转发,以此推类。23、 WDRR是带权的欠账轮询调度方式,即队列3的权值为4,那么在某一轮,它可以转发5个数据包,而下一轮,它只有转发3个数据包的额度。24、 SP+WRR:在WRR模式中,权重为0的队列被严格优先处理,所有权重为0的队列处理完后,才按WRR方式处理其他队列。单速率三色标记(SrTCM)和双速率三色标记(TrTCM)单速率三色标记(Single Rate Three Color Marker) 摘要 本文主要描述单速率三色标记(Single Rate Three Color Marker,srTCM),它可被用于Diffserv流量调节器(traffic conditioner)中。SrTCM测量信息流,并根据三种流量参数(提交信息速率,Committed Information Rate, CIR;提交组量大小Committed Burst Size,CBS;超量组量大小Excess Burst Size,EBS)对包进行标记,这三个参数我们分别称为绿,黄和红标记。如果包没有超过CBS就是绿的,如果超过CBS但未超过EBS就是黄的,如果超过EBS就是红的。 1. 介绍 SrTCM测量信息流,并根据三种流量参数(提交信息速率,Committed Information Rate, CIR;提交组量大小Committed Burst Size,CBS;超量组量大小Excess Burst Size,EBS)对包进行标记,这三个参数我们分别称为绿,黄和红标记。如果包没有超过CBS就是绿的,如果超过CBS但未超过EBS就是黄的,如果超过EBS就是红的。 Meter工作在两种模式下:在色盲模式下,它假设包是无色的;而在非色盲模式下,它假设包是被标记过颜色的。至于包是如何被标记上颜色的,不是本文讨论的范围。Maker根据Meter的结果对IP包进行着色,颜色被标记在DS域中。在其它文章中还描述了双速率颜色标记法,在这种方法下,包根据双速率和双组大小进行标记。 2. 配置 srTCM的配置是通过设置模式和设置CIR,CBS和EBS三个参数完成的。CIR是用于表示每秒IP包的字节数的,字节数包括IP包头。CBS和EBS也以字节为单位,CBS和EBS必须被设置,它们之一必须大于0,如果CBS或EBS的值大于0,它的值最好大于等于流中可能IP包的MTU。/ 本文转自 C+Builder研究 - /article.asp?i=745&d=gfm38k 3. Meter工作 Meter的动作由模型和两个标记桶(C和E)表示,这两个标记共享通用速率CIR。C的最大值是CBS,而E的最大值是EBS。起始时(T=0)C和E的值为最大值。Tc(0) = CBS, Te(0) = EBS,以后每秒钟Tc和Te每秒钟以下面的规则更新CIR次: if (TcCBS) Tc+; else if (Te= 0) 包为绿色,if (Tc= 0) 包为黄色,if (Te= 0) 包为绿色,if (Tc= 0) 包为黄色,if (TeB) Te = 0; else Te = Te-B; else 包为红色时不对Tc和Tc进行操作。 在实际实现中可能会对上面的过程有所更改。Mark工作主要是反映了meter的结果。此服务可以对不同颜色的包进行不同的处理,例如可以抛弃红色的包,因为它已经超过了规定的参数值。1、 ContentAware测量引擎对带宽进行监测和控制。2、 每个数据流有一个profile,如果数据流的特征与profile吻合,则为n-profile。否则out-of-profile。3、 Bcm53314支持单速率三色标记(SrTCM)和和双速率三色标记(TrTCM)(上面一大段文字有介绍)4、 测量引擎对数据流进行颜色标记后由策略引擎对已标记的包进行带宽控制广播风暴1、 支持每个端口的基于字节或包个数的限制,防止网络中形成广播风暴2、 可以限制三种包:广播包、组播包、DLF包3、 每种包类型分别有计数器对接收的包进行计数,如果超过限制则丢包增强的功能和操作链路聚合1、 支持最多32个trunk组,每个trunk组最多8个成员端口2、 成员端口在TRUNK_BITMAP表里设置,trunk组在TRUNK_GROUP表里设置3、 进入GbE端口的包返回一个MODID和PORTID,MODID用来与目的芯片的MODID比较,PORTID用来分队列。如果PORTID的高位被置位,那么MODID和PORTID被当作TGID4、 TRUNK_GROUP表有8个条目,每个条目都有MODID和PORTID,用来选择一个作为发包的端口。5、 TRUNK_GROUP表又一个3位的RTAG字段,用来选择选路策略,通过选路策略计算出一个哈希值,这个哈希值再找到具体端口,实现选路6、7、 有以下这些选路策略:8、9、 如果不是一个IP包,会自动选择SA、DA这种哈希算法10、 如果是非单播包,哈希值索引到16个NONUCAST_TRUNK_ BLOCK_MASK寄存器之一。这个寄存器用来选出trunk组里的一个端口。通过这个寄存器生成掩码,与转发表mask出一个新转发表。11、端口镜像(Mirror)1、 支持以下mirror:输入mirror、输出mirror、输入和输出mirror、基于MAC的mirror、通过stack的mirror2、 在以上所有情况下,在NONUCAST_TRUNK_ BLOCK_MASK基础上支持4个输入MTP(Mirror-to-port)和4个输出MTP3、 Mirror_Control register的M_ENABLE位置位,打开mirror功能。Mirror支持以下功能4、 输入MTPs和输出MTPs 可以是不同或同一个端口5、 最多8个MTPs6、 MTP端口可以是逻辑端口(聚合端口)7、 不检查VLAV成员,必须是所有VLAN成员8、 输入的包不修改直接转发9、 输出包打上VLAN标记再转发10、 在单端口上允许交换和镜像同时进行,接收到交换和镜像的拷贝。11、 如果包是被输入和输出镜像,那么输入和输出的拷贝将发送到MTP端口12、 发送到输入端口的包未经修改13、 发送到输出端口的包被修改(如果有的话)打开输入镜像相应的输入端口PORTingress.MIRROR = 1. 相应端口的MIRROR_CONTROL register的IM_MTP_INDEX指针指向MTP端口的IM_MTP_INDEX表IM_MTP_INDEX表记录MODULE_ID和PORT_TGID(聚合组ID)打开输出镜像EMIRROR_CONTROL寄存器里相应的输出被镜像端口置位。镜像端口在 Mirror_Control Register里的EM_MTP_INDEX设置。用户通过设置EM_MTP_INDEX 表里的MODULE_ID和PORT_TGID字段设置MTP端口安全支持以下端口安全的应用:1、 端口堵塞(port blocking):即使是相同VLAN,也可以阻止指定端口向其他端口发包。通过Egress_Mask寄存器设置2、 MAC堵塞(MAC blocking):阻止指定MAC地址向端口发数据,最多可以指定32个MAC地址3、 每个流堵塞:CAP的动作可以根据指定数据类型阻止包从指定端口发送4、 广播、组播、DLF控制:每个输入端口可以阻止广播、组播和DLF包向指定端口发送。在端口安全应用上,可以防止包发往VLAN内的端口,包括CPU端口,例如防止DLF包上CPU硬件协议检查可以通过硬件对协议进行检查,以提供安全应用,例如防止DOS攻击,硬件检查允许用户扔掉以下情况的包: SIP = DIP for IPv4/IPv6 packets TCP_SYN Flag = 0 TCP packets with control flags = 0, and sequence number = 0. TCP packets with FIN, URG and PSH bits set, and sequence number = 0. TCP packets with SYN and FIN bits are set. TCP source port number = TCP destination port number. First TCP fragment does not have the full TCP header (less than 20 bytes). TCP header has fragment offset value as 1. UDP Source Port number = UDP Destination Port number. CMP ping packets payload is larger than the programmed value of ICMP maximum size. Fragmented ICMP packets.以上设置通过DOS_Control寄存器设置CMIC packet DMA1、 DMA引擎:允许用户从CPU(PCI缓存)传送数据到端口,反之亦然。2、 CPU发数据时,设备进行DMA读取。CPU收数据时,进行DMA写3、 在CPU发送路径里包被写入输入管道(IP),在CPU接收路径,包从输出管道(EP)读取4、 Bcm53314支持4个DMA通道,他们可以各自同时读写5、 DMA控制器以32bit为边界传输数据,不管cell的字节个数,DMA控制器以32bit操作PCI的内存空间。6、 DMA控制器总是以128字节大小为一个cell向IP(ingress pipeline)发送包7、 包以128字节为一个cell大小从CMIC发往IP,因为数据传输以32bit为边界,传输一个cell要32个beats。8、 包以32字节为一个cell大小从EP(egress pipeline)发往CMIC,因为数据传输以32bit为边界,传输一个cell要8个beats。第一个cell可以多发8个bea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论