bcm53314笔记 联系客服

发布时间 : 星期日 文章bcm53314笔记更新完毕开始阅读

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的mirror

2、 在以上所有情况下,在NONUCAST_TRUNK_ BLOCK_MASK基础上支持4个输入MTP(Mirror-to-port)和4个输出MTP

3、 Mirror_Control register的M_ENABLE位置位,打开mirror功能。Mirror支持以下功能 4、 输入MTPs和输出MTPs 可以是不同或同一个端口 5、 最多8个MTPs

6、 MTP端口可以是逻辑端口(聚合端口)

7、 不检查VLAV成员,必须是所有VLAN成员 8、 输入的包不修改直接转发

9、 输出包打上VLAN标记再转发

10、 在单端口上允许交换和镜像同时进行,接收到交换和镜像的拷贝。

11、 如果包是被输入和输出镜像,那么输入和输出的拷贝将发送到MTP端口 12、 发送到输入端口的包未经修改

13、 发送到输出端口的包被修改(如果有的话)

打开输入镜像

相应的输入端口PORT[ingress].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 DMA

1、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个beats来传送状态信息 9、本地或外部CPU可以向53314插入包,芯片把它当做一般从端口收到的包处理。可能会对它解封装、转发、封装、加tag、丢弃、发回CPU等操作

sFlow流监测

1、 除了支持标准的MIB(RMON、SMON、SNMP)S外,还支持RFC3176 SFlow流监测 2、 sFlow采用达到一定准确度的随机包采样方法来描述数据流的特征

3、 sFlow由代理器和分析器组成,bcm53314有一个内建的代理器,分析器在软件的应用层实现。Bcm53314的代理器采用基于时间的随机采样方法对数据流采样。样本包以sFloe数据包格式发往软件分析器。

4、 独立监测输入和输出数据流,在SFLOW_ING_THRESHOLD和SFLOW_EGR_THRESHOLD寄存器分别有16bit的阈值位

5、 每个端口有24bit随机数,也有随机数种子字段,可配置。

6、 当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 sFlow 8、 包采样速率从0%到0.4%(根据阈值)

Note:DMA Control Block Descriptor:硬件上设计了一个协议,这个协议规定了怎么控制DMA传输数据。软件要按照这个协议向这个东西写数据。然后硬件就会自己处理