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与设置的不一致(PORT_TAB/IPORT_TAB.OUTER_TPID),则认为是untagged包,如果一致,检查VID是否为0,0则加上riority tag
4、 VLAN顺序: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(客户标记)。客户标记是用户自身的VLAN标记,服务标记是ISP在传输中使用的标记
10、 bcm53314为ISP提供两种方法来区分用户:一种是透明的局域网服务:用S-TAG封装带C-TAG的用户数据;另一种是映射服务(VLAN转换):根据输入端口和VID来决定SPVLAN,可以带双TAG或者用S-TAG代替C-TAG
11、
12、 Double-tag下,有两种可能的地址学习方式:一是根据C-TAG的广播域学习,那样就会有很多重叠的地址(bcm53314不支持这个),另一种方法是根据S-TAG的广播域来学习,忽略用户VLAN
13、 VLAN转换:在VLAN转换模式下,对输入包用VID和端口号作为索引查VLAN_XLATE表,如果找到对应项,根据VLAN_XLATE.ADD_VID位来增加VLAN tag或代替原有tag。对输出包则查EGR_VLAN_XLATE表,把SPVID替换成CVID和优先级
14、
UNI向NNI输入:
包进入输入端口 PORT_TABLE.NNI_PORT=0? NNI端口 yes 是UNI TPID=VLAN_CTRL.INNER.TPID? no Yes untagged tagged 分配S-TAG信息 CVID=0? no Yes 分配S-TAG信息 Priority tagged 分配S-TAG信息 15、
包从输入端口获得S_TAG信息,进入输出端口后,根据这些信息加S-TAG,S-TAG各字段值从以下方法得到:
? TPID: S-TAG的TPID根据EGR_VLAN_CONTROL_1[egress port].OUTER_TPID_SEL,从EGR_VLAN_CONTROL_1[egress port].OUTER_TPID_INDEX 或
EGR_VLAN[S-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_1[egress port].CFI_AS_CNG[outer TPID index] = 1,使用来自EGR_PRI_CNG_MAP 表的S-DE。否则,来自输入端口的外层CFI 值用作S-DE。 ? Outer CFI=0,因为没有外层CFI
NNI向UNI输入:
包进入输入端口 PORT_TABLE.NNI_PORT=1? yes 是UNI no 外TPID= ING_OUTER_TPID? 内TPID= VLAN_CTRL.INNER_TPID? Yes Yes 单标签 双标签 No
不带标签 CVID=0? no Yes PORT_TABLE.PORT_DIS_UNTAG=1? 分配S-TAG信息 Priority tagged Yes
No 分配S-TAG信息 扔掉 发到输出端口
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库bcm53314笔记(2)在线全文阅读。
相关推荐: