1、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
2、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 Engi
3、ne用于 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 组
4、里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 解析-源地址学习-目的地址查找-
5、如果是组播包,查找 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_U
6、SER_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
7、/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_T
8、PID),则认为是 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)来分配 VID
9、7、 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 的广播域
10、学习,那样就会有很多重叠的地址(bcm53314 不支持这个),另一种方法是根据 S-TAG 的广播域来学习,忽略用户 VLAN13、 VLAN 转换:在 VLAN 转换模式下,对输入包用 VID 和端口号作为索引查 VLAN_XLATE 表,如果找到对应项,根据 VLAN_XLATE.ADD_VID 位来增加 VLAN tag 或代替原有 tag。对输出包则查EGR_VLAN_XLATE 表,把 SPVID 替换成 CVID 和优先级14、 15、 包进入输入端口untaggedPORT_TABLE.NNI_PORT=0?TPID=VLAN_CTRL.INNER.TPID?是UNIyesCV
11、ID=0?YesnoPriority taggedtagged分配 S-TAG 信息分配 S-TAG 信息分配 S-TAG 信息YesnoUNI 向 NNI 输入:NNI 端口包从输入端口获得 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-
12、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,因为没有外层 CFI内 TPID= VLAN_CT
13、RL.INNER_TPID?no单标签Yes不带标签NoPORT_TABLE.PORT_DIS_UNTAG=1?扔掉NoYes分配 S-TAG信息发到输出端口NNI 向 UNI 输入:包进入输入端口PORT_TABLE.NNI_PORT=1?外 TPID= ING_OUTER_TPID?是UNIyesCVID=0?YesPriority tagged双标签分配 S-TAG 信息YesnoNNI 发往 UNI,输出(1):来自输入端口的包EGR_VLAN_CONTROL_1egress port.REMOVE_INNER_TAG = 1?有 C-TAG?EGR_SRC_PORTlocal ing
14、ress 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扔掉
15、或去掉最外层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
16、(管理 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 在 UN
17、I 输入端口:管理 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
18、_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_
19、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、 当超过限制值,端口进入
20、背压状态。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、 每发出一个
21、cell,桶更新一次,MMU 检测到有一定数据流,通知输入端口进行更新。6、 当 BUCKET_COUNT 到达 DISCARD_THD 后,丢包,直至低于 RESUME_THD。HOL 保护线头阻塞(Head-of-line blocking, HOL )是一种出现在缓存式通信网络交换中的一种现象。交换通常由缓存式输入端口、一个交换架构( Switch Fabric)以及缓存式输出端口组成。当在不同的输入端口上到达的包被指向相同的输出端口的时候就会出现线头阻塞。由于输入缓存以及交换设计的 FIFO 特性,交换架构在每一个周期中只能交换缓存头部的包。如果某一缓存头部的包由于拥塞而不能交换到一个
22、输出端口,那么该缓存中余下的包也会被线头包所阻塞,即使这些包的目的端口并没有拥塞。1、 支持基于 cell 和 packet 的保护机制,两种机制同时生效,都可以配置。2、 Cell 基于每个队列总缓存空间,packet 基于每个队列指定的包数量3、 这种机制的目的是:支持有损的缓存管理、管理 Cos 粒度和输出端口的缓存资源4、 通过丢包实现这一功能,当输入端发生拥塞时,新到的包丢包。5、 通过 MISCCONFIG 寄存器的 DYNAMIC_MEMORY_EN 字段,设置是否打开动态内存分配。6、 静态分配:COSLCCOUNT.LCCOUNT 为当前队列 cells 数,超过 LWMCO
23、SCELLSETLIMIT.寄存器的 CELLSETLIMIT 时进入 HOL 状态,低于 CELLRESETLIMIT 解除 HOL 状态7、 动态分配:LWMCOSCELLSETLIMIT.寄存器的 CELLSETLIMIT 指定每个队列的静态分配的cell 数目,这个值必须比 cell 总数(4096)少,然后剩下部分作为所有队列共享的动态分配数目。每个 cell 代表 128 字节8、 TOTALDYNOVERLIMIT 表示动态内存是否可分配,若超过 TOTALDYNCELLLIMIT,变成true;若低于 TOTALDYNCELLRESETLIMITSEL,变 false拥塞位(c
24、ongestion Bits)1、 拥塞位通过 DSCP 表或者 CAP 计量引擎设置2、 拥塞位用来表示红绿黄三种颜色。3、 CNGCOSPKTLIMIT 寄存器提供一个阈值限制每个输出端口或队列的速率。4、 CNGCOSPKTSETLIMIT0 用来比较红色包,CNGCOSPKTSETLIMIT1 用来比较黄色包。当COSPKTCOUNT 超过限制,丢包。sRED (SIMPLE RANDOM EARLY DETECTION)1、 通过随机丢包来保护 TCP 同步2、 通过概率性丢弃有颜色的包实现活跃的队列管理,实现 sRED3、 活跃的队列管理是一种算法,这种算法尝试预先丢包或标记某些帧
25、。目的是发现严重的拥塞情况并提前采取措施,使 TCP 源有助于拥塞后退4、 实现颜色识别、概率性丢包,提前丢弃指定颜色的包避免缓存满。5、 每次包到达都检测队列深度,如果小于某个较低的值,队列没有或有较小的拥塞。如果超过某个较大的值,队列很拥塞,丢包。如果在两个值之间,队列拥塞适中,通过计算得出一个丢包概率DIFFERENTIATED SERVICES QOS(区分服务 Qos)区分服务模型是一种能够区分 QoS 需求的多业务模型(一种计算机联网体系结构) 。它指定了一种简单、可伸缩、粗粒度的机制来分类、管理网络业务流,并在现代 IP 网络上提供了服务质量保证。例如,DiffServ 可以用于
26、为关键网络流量(例如语音和视频)提供低延时、保证型业务,同时又为非关键业务(例如 web 流量和文件传输)提供了尽力而为的业务保证。然而,与 综合服务模型不同,使用区分服务的应用在发送数据之前不需要显式地通知路由器。对于区分服务,网络根据每一个报文指定的 QoS 来提供一个特定类型的服务。这种指定可以使用多种方式实现,例如,使用 IP 报文中的 IP 优先级比特或者源和目的地址。网络使用 QoS 规范来分类、标记、整形、监管流量,并执行智能化的排队。1、 IEEE 802.1D 定义了 8 个级别的优先级,优先级 7 为最高优先级,优先级信息被携带在一个 3bot的 VLAV tag 字段里并
27、应用于所有端口。2、 Bcm53314 有 4 个队列。对于 tagged 包,优先级可能来自 VLAN tag 或过滤机制。对于 untagged包,优先级来自 ARL(VLAN 地址表) 或过滤机制。3、 包在输入端口被映射到优先级队列,在输出端口根据各种调度方式来调度队列4、 5、 最大、最小带宽测量,保证最大、最小带宽6、 这种机制的其中一个用途就是把队列分成不同调度组。有以下几组:MinNotMet、MaxNotMet 、MaxExceeded7、 队列最小带宽测量:8、 实现原理:这是一个漏的桶结构,包到达时加标记(token),每 7.8125 微秒减去一个 refreshcou
28、nt的标记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、 实现原理:这是一个漏的桶结构,
29、包到达时加标记(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 的数据包,最后转
30、发队列 0 的数据包。21、 RR 是轮询的调度方式,交换机在转发数据包时,从高优先级队列到低优先级队列依次轮询转发数据包,每个队列转发一个数据包。22、 WRR 是指带权优先级轮询,交换机在转发数据包时,根据权的配置从高优先级队列到低优先级队列轮询转发数据包,先从高优先级转发权个数的数据包,在转发次高优先级的权个数数据包,直到最低优先级队列转发完,又从高优先级开始转发,以此推类。23、 WDRR 是带权的欠账轮询调度方式,即队列 3 的权值为 4,那么在某一轮,它可以转发 5 个数据包,而下一轮,它只有转发 3 个数据包的额度。24、 SP+WRR:在 WRR 模式中,权重为 0 的队列被严
31、格优先处理,所有权重为 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;超量组
32、量大小 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 就是黄的,
33、如果超过 EBS 就是红的。Meter 工作在两种模式下:在色盲模式下,它假设包是无色的;而在非色盲模式下,它假设包是被标记过颜色的。至于包是如何被标记上颜色的,不是本文讨论的范围。Maker 根据 Meter 的结果对 IP 包进行着色,颜色被标记在 DS 域中。在其它文章中还描述了双速率颜色标记法,在这种方法下,包根据双速率和双组大小进行标记。2. 配置srTCM 的配置是通过设置模式和设置 CIR,CBS 和 EBS 三个参数完成的。CIR 是用于表示每秒 IP 包的字节数的,字节数包括 IP 包头。CBS 和 EBS 也以字节为单位,CBS 和 EBS 必须被设置,它们之一必须大于 0
34、,如果 CBS 或 EBS 的值大于 0,它的值最好大于等于流中可能 IP 包的 MTU。/ 本文转自 C+Builder 研究 - http:/ else Te = Te-B; else 包为红色时不对 Tc 和 Tc 进行操作。 在实际实现中可能会对上面的过程有所更改。Mark 工作主要是反映了 meter 的结果。此服务可以对不同颜色的包进行不同的处理,例如可以抛弃红色的包,因为它已经超过了规定的参数值。1、 ContentAware 测量引擎对带宽进行监测和控制。2、 每个数据流有一个 profile,如果数据流的特征与 profile 吻合,则为 n-profile。否则 out-o
35、f-profile。3、 Bcm53314 支持单速率三色标记(SrTCM)和和双速率三色标记(TrTCM)(上面一大段文字有介绍)4、 测量引擎对数据流进行颜色标记后由策略引擎对已标记的包进行带宽控制广播风暴1、 支持每个端口的基于字节或包个数的限制,防止网络中形成广播风暴2、 可以限制三种包:广播包、组播包、DLF 包3、 每种包类型分别有计数器对接收的包进行计数,如果超过限制则丢包增强的功能和操作链路聚合1、支持最多 32 个 trunk 组,每个 trunk 组最多 8 个成员端口2、成员端口在 TRUNK_BITMAP 表里设置,trunk 组在 TRUNK_GROUP 表里设置3、
36、进入 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、如果是非单播
37、包,哈希值索引到 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 re
38、gister 的 M_ENABLE 位置位,打开 mirror 功能。Mirror 支持以下功能4、 输入 MTPs 和输出 MTPs 可以是不同或同一个端口5、 最多 8 个 MTPs6、 MTP 端口可以是逻辑端口(聚合端口)7、 不检查 VLAV 成员,必须是所有 VLAN 成员8、 输入的包不修改直接转发9、 输出包打上 VLAN 标记再转发10、 在单端口上允许交换和镜像同时进行,接收到交换和镜像的拷贝。11、 如果包是被输入和输出镜像,那么输入和输出的拷贝将发送到 MTP 端口12、 发送到输入端口的包未经修改13、 发送到输出端口的包被修改(如果有的话)打开输入镜像相应的输入端口
39、 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端口安全支持以下端口安全的应用:
40、1、 端口堵塞(port blocking):即使是相同 VLAN,也可以阻止指定端口向其他端口发包。通过Egress_Mask 寄存器设置2、 MAC 堵塞(MAC blocking):阻止指定 MAC 地址向端口发数据,最多可以指定 32 个 MAC 地址3、 每个流堵塞:CAP 的动作可以根据指定数据类型阻止包从指定端口发送4、 广播、组播、DLF 控制:每个输入端口可以阻止广播、组播和 DLF 包向指定端口发送。在端口安全应用上,可以防止包发往 VLAN 内的端口,包括 CPU 端口,例如防止 DLF 包上 CPU硬件协议检查可以通过硬件对协议进行检查,以提供安全应用,例如防止 DOS
41、 攻击,硬件检查允许用户扔掉以下情况的包: 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. Fi
42、rst 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 寄存器设
43、置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)发
44、送包7、包以 128 字节为一个 cell 大小从 CMIC 发往 IP,因为数据传输以 32bit 为边界,传输一个 cell 要 32个 beats。8、包以 32 字节为一个 cell 大小从 EP(egress pipeline)发往 CMIC,因为数据传输以 32bit 为边界,传输一个 cell 要 8 个 beats。第一个 cell 可以多发 8 个 beats 来传送状态信息9、本地或外部 CPU 可以向 53314 插入包,芯片把它当做一般从端口收到的包处理。可能会对它解封装、转发、封装、加 tag、丢弃、发回 CPU 等操作sFlow 流监测1、 除了支持标准的 MIB(
45、RMON、SMON、SNMP)S 外,还支持 RFC3176 SFlow 流监测2、 sFlow 采用达到一定准确度的随机包采样方法来描述数据流的特征3、 sFlow 由代理器和分析器组成, bcm53314 有一个内建的代理器,分析器在软件的应用层实现。Bcm53314 的代理器采用基于时间的随机采样方法对数据流采样。样本包以 sFloe 数据包格式发往软件分析器。4、 独立监测输入和输出数据流,在 SFLOW_ING_THRESHOLD 和 SFLOW_EGR_THRESHOLD 寄存器分别有 16bit 的阈值位5、 每个端口有 24bit 随机数,也有随机数种子字段,可配置。6、 当
46、enable,16 位阈值加上 8 位 0 后与 24 位随机数比较,如果随机数小于或等于阈值,则对这个包采样。7、 样本包有优先级。基于 CPU_CONTROL_2.CPU_SFLOW_PRI 。 DMA Control Block Descriptor 里的 REASON 字段指明包是因为 sFlow 而发往 CPU。CPU_SFLOW_SRC(bit 5) for ingress sFlow and/or CPU_SFLOW_DST (bit 6) for egress sFlow8、 包采样速率从 0%到 0.4%(根据阈值)Note:DMA Control Block Descrip
47、tor:硬件上设计了一个协议,这个协议规定了怎么控制 DMA 传输数据。软件要按照这个协议向这个东西写数据。然后硬件就会自己处理自动 DOS 防护1、 BCM53314 支持检测以下类型的 Denial of Service (DoS) 攻击类型,并且能够通过配置忽略这些攻击包2、 3、 4、 MIN_TCP_Header_Size 可配置为 0 到 255 字节,默认 20 字节(TCP 头不带选项)5、 MAX_ICMPv4_Size 可配置为 0 到 9.6 KB,默认 515 字节。6、 Smurf/Fraggle 类型的 DOS 包可以被 FP 规则检测并丢弃,通过匹配直接 IP 广
48、播地址和相应的ICMP 类型或 UDP 类型。 7、 Ping 冲击或 SYN/ACK 冲击类型的 DOS 攻击可以被 FP 规则检测并限制,通过匹配相应的 ICMP类型或相应的 TCP 控制位8、 当一个包被视为 DOS 攻击类型后必须被丢弃,不管 ARL 转发决议。(但基于 mirror 的转发不受影响),,并且不学习源地址。ETHERNET AV(以太网音频视频)1、 自动检测对端是否有 Ethernet AV 能力2、 通过 LLDP 协议发广告3、 通过 TS 协议进行链路延时测量硬件要求 4、 通过匹配目的 MAC 地址 01-80-C2-00-00-0E,限制所有 LLDP 和 TS 协议包上 CPU5、 TS 协议包被指定与 LLDP 协议相同的地址6、 执行相应的时间标记功能7、 支持各个端口 EAV/NonEAV 模式软件要求8、 执行 LLDP 协议来检测端口对端是否具备 EAV 能力9、 基于 TS 协议测量链路延时来检测一个端口的链接对于 EAV 操作是否在合理延时范围内。10、 仅当对端具备 EAV 能力并且延时在合理范围内时,才把一个端口设置为 EAV 模式