-
Bcm53314
笔记
结构
1
、
模块化、管道
2
、
3
、
Intelligent
parser
:检查来自
Gbe
和
CMIC
的包,头
128bit
4
、
L2
交换:选择
VLAN type<
/p>
、查找
VLAN
、
L2
单播、
L2
组播
5
、
CAP(FP)
:可用于
Qos
、
ACL
、
DOS
防御
6
、
Buffer Management
:
Mirror
、
trunk
、
Admission Control
7
、
Traffic Management
:
Queuing
、
Scheduling
< br>、
Shaping
8
、
Mod
ification
:可以由
tunneling
产生
9
、
Gigabit Ethernet Port Interface
Controller (GPIC) block
:可连接
S
GMII
、
SerDes
10
、
MMU
:有一个
512KB Cell
Buffer Pool (CBP)
,支持
IBP
、
HOL
、
pause
IBP
:背压,输入流量过大发
pau
se
帧
HOL
:输出超过
limit
时丢包
p>
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 Eng
ine
用于策略路由、
ACL
,可查找
包字段
13
、
每端
口
MAC
限制:防止
MAC
地址攻击,每端口学习的
MAC
地址数达到限制后
丢包
or
发到
CPU
< br>。
14
、
可以
通过软件手动增加
/
删除
MAC
地址,
遵循地址限制,
除非是静态地址或者组
播地址。
LAG
按照实际成员端口来学习
15
、
端口被加进
trunk
组前腰删除所有
L2 entry
16
、
CA
P
:
17
、
18
、
19
、
20
、
53
314
的
FP(CAP)
有
4
个
slice
,每个<
/p>
512
条规则
物理
slice
被映射到虚拟
slic
e
,虚拟
slice
在虚拟
slice
组里
有一些计数器用来支持
MIB
533
14
支持内部
cpu
和
CMIC
21
、
22
、
Packet Flow
1
、
2
、超大帧!
!
!<
/p>
13K
!
!
!<
/p>
3
、先经过
p
arser
抽取输入逻辑和
CAP
所需
的字段,再检查
tag
4
、
double
tag
:
Stacked
VLAN
也称
QinQ
或
Double VLAN
。
其实现为在
802.1q
协议标签前再次封装<
/p>
802.1q
协议
标签,其中一层标识用户系统网络(
customer net
work
)
,一层标识网络运营网络(
service provider
network
)
,将其扩展实现用户线路标识。
5
、
VLAN
解析
-><
/p>
源地址学习
->
目的地址查找
->
如果是组播包,查找
L2MC
表
6
、通过
PCI
接口连接外部
CPU
7
、
可以从
CPU
端口收发包,
收发过程与其他
Gbe
端口一样,
可能发往逻辑端口、
stacking
端口、
丢包、
或者发回
c
pu
端口
L2
特征和操作
1
、
地址学习:学习未知
SA
2
、
包老化
:丢弃
MMU
里存在超过指定时间的包
3
、
地址老
化:支持软硬件老化,软件可以增加、删除、搜索和增加静态地址
4
、
地址状
态移动:同一个
SA
转移到另一个
po
rt
,需
relearn
5
、
L2M
C
:
线速,
如果在
L2
表找到对应项,
该表项有一个指针指向
L2MC
表,
L2MC
表返回
port bitmap
用作
DA
6
、
L2_
USER_ENTRY
:通过软件设置,静态地址
7
、
802
.1Q
:给不带标记包或
VID=0
的
包加标记、改变标记、选择性丢包、可以识别
GVRP
组播地址
01-80-C2-00-00-21
并把它转发到
cpu
、去掉
untag
端口发出去的包的
tag
8
、
GVR
P
:一个通过组播向其他端口传递端口
VLAN
信息的协议
9
、
STP
:根桥、根端口、计算路径开销、裁剪路径,如果拓扑结构改变则重新计算
10
、
B
PDU
:携带
STP
信息的包
11
、
每<
/p>
个
VLAN
指定一个生成树组表,表里的
条目记载端口状态。
2’b00
=
disable
2’b01
=
blocking
2’b10 =
learning
/li
stening
2’b11 = forwarding
VLAN
1
、
support IEEE 802.1Q tagged, MAC-based,
IP subnet-based, protocol-based, and port-based
VLANs
2
、
TPID
(
Tag Protocol
Identifier
,标签协议标识)
VLAN
Tag
中的一个字段,
IEEE 802.1q
协议规定该
字段的取值为
0x8100
。
用来表示本数据帧是带有
VLAN Tag
的数据。该字段长度为
16bit
。
3
、
如
果包
TPID
与设置的不一致
(POR
T_TAB/IPORT__TPID)
,则认为是
untag
ged
包,如
果一致,检查
VID
p>
是否为
0
,
0
p>
则加上
riority tag
4
、
VLA
N
顺序:
PORT
表:
VLAN_PRECEDENCED
?
0
=
MAC-based
VLAN
has
precedence
over
subnet-based
VLANS
?
1 =
Subnet-based VLANS has precedence over MCA-based
VLANS
5
、
MAC-based VLAN
:根据源
MAC
地址分配
VID
6
、
Protocol Based
VLAN
:根据以太网协议
(frame
type/ethertype)
来分配
VID
7
、
Port-Based VLAN
:根据端口分配
VID
(默认)
8
、
9
、
双标签
:如上图,双标签分别是
S-TAG(
服务标记
)
和
C-TAG(
客户标记<
/p>
)
。客户标记是用户自身的
VLAN
p>
标记,服务标记是
ISP
在传输中使用的标
记
10
、
bcm53314
为
ISP
提供两种方法来区分用户:一种是透明的局域网服务:用
S-TAG
封装带
C-TAG
的用户数据;
另一种是映射服务
(
VLAN
转换)
:
根据输入端口和
VID
p>
来决定
SPVLAN
,
可以带双
TAG
或者用
S-TAG
代替
C-TAG
11
、
12
、
Double-tag
下,有两种可能的地址学习方式:一是根
据
C-TAG
的广播域学习,那样就会有很多重
叠的地址
(bcm53314
不支持这个
)
,另一种方法是根据
S-TAG
< br>的广播域来学习,忽略用户
VLAN
13
、
VL
AN
转换:在
VLAN
转换模式下,对
输入包用
VID
和端口号作为索引查
V
LAN_XLATE
表,如
果找到对应项,根据
VLAN__VID
位来增加
VLAN
tag
或代替原有
tag
。
对输出包则查
EGR_VLAN_XLATE
表,把
SPVID
替换成
CVID
和优先级
14
、
UNI
向
NNI
输入:
包进入输入端口
PORT_TABL
E.
NNI_PORT=0
?
NNI
端口
yes
是
UNI
< br>TPID=VLAN_CT
?
no
Yes
untagged
tagged
分配
S-TAG
信息
CVID=0
?
no
Yes
分配
< br>S-TAG
信息
Priority tagged
分配
S-TAG
信息
15
、
包从输入端口获得
S_TAG
信息,进入输出端口后,根据这些信息加
S-TAG
< br>,
S-TAG
各字段值从以下方
法得到:
?
TPID
:
S-TAG
的
TPID
根据
EGR_VLAN_CONTROL_1[egress port].OUTER_TPID_S EL
,从
EGR_VLAN_CONTROL_1[egres
s port].OUTER_TPID_INDEX
或
EG
R_VLAN[S-VID].OUTER_TPID_INDEX
获得,
2-bit OUTER_TPID_INDEX
用来索引
< br>EGR_OUTER_TPID
表来获取
TPID
值
?
S-VID
:来自输入端口
?
S-PRI and S-DE
:来自输入端口的包优先级和<
/p>
CNG
被映射为
3
位
S-PRI
和
1
< br>位
S-DE
,通过
EGR_PR
I_CNG_MAP
表。
如果
EGR_
VLAN_CONTROL_1[egress port].CFI_AS_CNG[outer TPID
index] =
1
,使用来自
EG
R_PRI_CNG_MAP
表的
S-DE
< br>。否则,来自输入端口的外层
CFI
值用作
S-DE
。
?
Outer
CFI=0
,因为没有外层
CFI
NNI
向
U
NI
输入:
包进入输入端口
PORT_TABL
E.
NNI_PORT=1
?
yes
是
UNI
no
外
TPID=
ING_OUTER_TP
ID
?
内
TPID=
VLAN_
p>
NER_TPID
?
Yes
Yes
单标签
双标签
No
不带标签
CVID=0
?
no
Yes
PORT_TABLE
.P
ORT_DIS_UNTA
G=1
?
分配
S-TAG
< br>信息
Priority tagged
Yes
No
分配
< br>S-TAG
信息
扔掉
发到输出端口
NNI
发往
UNI
,
输出
(1)
:
来自输入端口的包
有
C-TAG
?
Yes
No
EGR_VLAN_CONTR
OL_1[egress
port].REMOVE_INNE
R_TAG =
1
?
EGR_SRC_PORT[loc
al ingress
port].ADD_INNER_T
AG = 1
No
Yes
去掉
C-TAG
Yes
No
加
C-TAG
保留
C-TAG
不加
C-TAG
EGR_VLAN[
S-VID].
UT_PORT_BITMAP[
egress
port] = 1
?
Yes
去掉
S-TAG
下一步
N
NI
发往
UNI
,
输出
(2)
:
上一步
EGR_VLAN[S-VI
D].UT_PORT_
BITMAP[egress
port]
=
0
and
EGR_VLAN_CONTROL_1[egre
ss
port].VT_ENABLE = 1
查表
EGR_VLAN_XLATE
Yes
找到匹配
项?
No
更改最外层的
TAG
的
下列字段:
VID
、<
/p>
PRI
、
CFI
、
TPID
扔
掉
或
去
掉
最
外
层
TAG
或改
TPID
(
视寄
存器配置而定
p>
)
UNI
发往
UNI,
输入过程
?
与
UNI
发往
NNI
的输入过程相同
UNI
发往
UNI,
输出过程
?与
NNI
发往
UNI
的输出过程相同<
/p>
NNI
发往
UNI,
输入过程
?
与
NNI
发往
UNI
的输入过程相同
UNI
发往
UNI,
输出过程
?与
UNI
发往
NNI
的输出过程相同<
/p>
VLAN Mirroring
UNI
输入镜像
输入
:
包输入
UNI
端口转发向
MTP
输出
:
向
M
TP
输出,不修改包
NNI
输入镜像
输入
:
包输入
UNI
端口转发向
MTP
输出
:
向
M
TP
输出,不修改包
Management
VLAN(
管理
VLAN)
网友
3
:
nativ
e vlan
本质来说,就是不带
vlan ID
的
vlan
,无论是
802
.1q
或者
isl
。因为不带
vlan
ID<
/p>
,如何交换机都可以接受和传递它的包,无论是不支持
3
层的还是一个
hub
。
而在此基础上提出了
managerment vlan
。
这个概念其实是源于以前有
isl
和
802.1q
共存环境,
因为这时
候,因为部分
vlan
的
prune
修剪。全部交换机都可以传输的就是
native vlan
,这个
vlan
就变成了管理
vlan
。
NNI
:把管理包当作单
S-TAG
UNI
:用
S-VID
代替管理
VLAN
的
VID
?
在
p>
UNI
输入端口:
管理
VLAN
的
TPID
需要配置成芯
片的内部
TPID
。
使得管理包到达<
/p>
UNI
的时候被
当作
C-tagged
包
VLAN
FP
或
ingress VLAN
translation
必须被配置为把管理
VID
转换成
S-VID
。
?
在
p>
NNI
输入端口:
管理
VLAN tag
的
TPID
需要
配置成允许的外层
TPID
之一使得管理包到达
NNI
端
口时被当作
S-ta
gged
包处理。
?
在
UNI
输出端口:对于管理
VID
,
EGR__PORT_BITMAP
应该被配置为零,来保护管理
VLAN
的
tag
不
被去掉。而且,基于每个端口的
EGR_VLAN_CONTROL__MISS_DR
OP
位和
VT_MISS_UNTAG
都应该为
0
,避免万一
VLAN
转换失败时丢弃管理包和去掉管理包的
tag
。然而,这
样做会导致其他在输出
VLAN
转换表里查找不到的非管理包不被扔掉和不被去掉
tag
。
这不是想要的效
果。因此我们需要确保非管理包在输出
VLAN
转换表里能查找到。因此输出
VLAN
转换表必须配置成
以下其中一种:
-
管理包在表里总是能找到
-
管理包的
VID
被转换成相同的值
?
在
NNI
输出端口:对于管理
VID
,
EGR__PORT_BITMAP
应该被配
置为零,来保护管理
VLAN
的
tag
不被去掉。
EGR_VLAN_CONTROL__TPID_
SEL
应该设置成
1
,这样外层
p>
TPID
就以
EGR__TPID_IND
EX
为索引,从管理
VLAN
的
EGR_OUTER_TPID
寄存器获得。
-
-
-
-
-
-
-
-
-
上一篇:学记全文及翻译
下一篇:论毛泽东思想、邓小平理论、三个代表重要思想的精髓