关于千兆以太网芯片及VLAN浅析
MARVEL出产的高端千兆以太网交换芯片,对每个端口支持不同的交换模式。
包括4种模式:
Secure模式:所带VLAN tag必须存在于VTU表中,且入端口必须是该VLAN成员,否则丢弃报文。
Check模式:所带VLAN tag必须存在于VTU表中,否则丢弃报文。
Fallback模式:入端口报文不丢弃。
802.1Q Disabled:802.1Q关闭,使用端口VLAN模式,所有报文透传。
前3种模式都遵循802.1Q规则,报文进入后按照VLAN表项进行转发,不同就在于进入的时候条件限制,有的未作限制(Fallback模式),有的(Secure模式)要求严格。在实现基于802.1Q的VLAN时采用第1种,Secure模式。报文进来时先识别所带的VLANtag。若所带VLAN tag未存在于VLAN表项中,或者进来的端口不属于该VLAN tag的VLAN成员,报文被丢弃,顺利进入的报文则指定VLAN tag的VID进行转发;若报文中不带VLAN tag,则判断该端口的缺省VLAN(PVID),当端口未加入缺省VLAN,报文被丢弃,当端口已经加入缺省VLAN 时,则指定PVID进行转发。
在实现基于端口的VLAN时采用第4种,802.1Q Disabled。此时端口不识别报文所带的VLAN tag,被认为是不带VLAN tag的报文并被加上它的PVID,结合VLANTable(Port Base VLAN Table)的取值,查找MAC表进行转发。
关于端口隔离:
端口隔离是比VLAN表更底层的隔离,它在802.1Q使能的情况也生效,也就是说配置了隔离的端口即使在同一VLAN中也不相通。
通过端口隔离特性,用户可以对需要进行控制的端口配置端口隔离功能,实现所有需要隔离端口之间业务数据的隔离,既增强了网络的安全性,也为用户提供了灵活的组网方案。
此功能可以通过配置芯片内部VLANTable来实现。
端口类型
6095芯片从逻辑功能上可以实现如下三种的以下三种端口类型:
Access类型,端口只能属于 1 个VLAN,只能接收和发送1个 VLAN 的报文(发送报文不带Tag),一般用于与终端用户之间的连接;
Trunk 类型,端口可以属于多个 VLAN,可以接收和发送多个 VLAN 的报文(发送报文都带Tag),一般用于与交换机之间的连接;
Hybrid类型,端口可以属于多个 VLAN,可以接收和发送多个 VLAN 的报文(Untagged的VLAN发送报文都不带Tag,tagged的VLAN发送的报文都带vlan tag),一般用于特殊场景的连接。
在802.1Q模式下,端口对标签的处理需要在VTU表项中配置标签处理模式,配置VTU Data Register(Reg0x07~09)。也就是说对每条VLAN,一个端口的标签处理方式可以不同,这样的处理才能实现如上描述的Hybrid类型。
不同连接类型的端口加入VLAN的Tagged或Untag成员,Access端口只能加入Untag成员;Trunk端口以Untag成员加入等于自身PVID的VLAN,其余以Tagged方式加入;Hybrid端口按需求加入Untag成员或者Tagged成员。
关于端口PVID
当以太网端口接收到不带VLANTag 的报文时,端口将在缺省VLAN 的范围内传输该报文。Access端口只能属于 1 个VLAN,所以它的缺省VLAN 就是它所在的VLAN;Trunk 端口和Hybrid端口可以属于多个 VLAN,所以需要手工设置端口的缺省VLAN ID。
端口PVID可以通过修改寄存器来实现。
VLAN表项
用户可以将端口加入到指定的VLAN中。执行该配置以后,以太网端口就可以转发指定VLAN 的报文,从而实现本交换机上的VLAN 与对端交换机上相同 VLAN 的互通。
Access端口只能加入到 1 个VLAN 中,Trunk 端口和Hybrid端口可以加入到多个 VLAN 中,端口加入VLAN 时的处理。
报文处理方式
对MARVELL芯片而言,将端口加入VLAN并指定了端口的缺省VLAN后,三类端口对报文的接收和发送会有不同的处理方式:
Access端口收发报文的处理
Trunk端口收发报文的处理
Hybrid端口收发报文的处理
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号
扫描二维码关注杭州卿萃科技FPGA极客空间
关于千兆以太网芯片及VLAN浅析的更多相关文章
- 【重新发布,代码开源】FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片
原创博客,转载请注明出处:[重新发布,代码开源]FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片 - 没落骑士 - 博客园 https://www.cnblogs.com/m ...
- 【小梅哥FPGA进阶学习之旅】基于Altera FPGA 的DDR2+千兆以太网电路设计
DDR2电路设计 在高速大数据的应用中,高速大容量缓存是必不可少的硬件.当前在FPGA系统中使用较为广泛的高速大容量存储器有经典速度较低的单数据速率的SDRAM存储器,以及速度较高的双速率DDR.DD ...
- 【转】简谈基于FPGA的千兆以太网
原文地址: http://blog.chinaaet.com/luhui/p/5100052903 大家好,又到了学习时间了,学习使人快乐.今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较 ...
- 【VS开发】千兆以太网的传输速度
千兆以太网主流标准 千兆以太网络技术早在上世纪90年代末就已成熟,其中,1995年国际标准化组织TIA/EIA颁布了1000Base-TX标准,该标准的目的是把双绞线用于千兆以太网中,其目的是在6类非 ...
- 237-基于Xilinx Kintex-7 XC7K325T 的FMC/千兆以太网/SATA/四路光纤数据转发卡
基于Xilinx Kintex-7 XC7K325T 的FMC/千兆以太网/SATA/四路光纤数据转发卡 一. 板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片, ...
- AC6102 开发板千兆以太网UDP传输实验2
AC6102 开发板千兆以太网UDP传输实验 在芯航线AC6102开发板上,设计了一路GMII接口的千兆以太网电路,通过该以太网电路,用户可以将FPGA采集或运算得到的数据传递给其他设备如PC或服务器 ...
- AC6102 开发板千兆以太网UDP传输实验
AC6102 开发板千兆以太网UDP传输实验 在芯航线AC6102开发板上,设计了一路GMII接口的千兆以太网电路,通过该以太网电路,用户可以将FPGA采集或运算得到的数据传递给其他设备如PC或服务器 ...
- 迅为IMX6开发板支持全网通4G模块丨GPS模块丨WIFI蓝牙丨千兆以太网
迅为i.MX6开发板丨迅为i.MX6Q开发板丨四核imx6开发板丨Cortec-A9开发板丨资料介绍: 特点: 处理器:Freescale Cortex-A9四核i.MX6Q主频1GHz 核心板配置: ...
- 千兆以太网TCP协议的FPGA实现
转自https://blog.csdn.net/zhipao6108/article/details/82386355 千兆以太网TCP协议的FPGA实现 Lzx 2017/4/20 写在前面,这应该 ...
随机推荐
- C++设计模式之-外观模式
意图: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用. 适用性: 1.在设计初期阶段,应该要有意识的将不同的两个层分离,比如经典的三层架构,就需要 ...
- 在微信里面打开链接,显示501 Not Implemented,但是同样的链接在其他浏览器是可以打开的。
在微信里面打开链接,显示501 Not Implemented,但是同样的链接在其他浏览器是可以打开的. 显示: 还原:该链接在2017年之前微信还是可以访问的. 访问的地址格式是:http://xx ...
- LaTex中插入大括号的多行公式
由于近期要发表论文,不得不恶补LaTex.现在需要插入带大括号的多行公式,效果如下: LaTex编辑如下: \begin{equation} \label{eq6} [x_{i}]=\left\{ \ ...
- Android性能优化系列之电量优化
电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情,随着Android开的性能要求越来越高,电量的优化,也显得格外重要,一个耗电的应用,用户肯定会毫不犹豫的进行卸载,所 ...
- Python中方法的缺省参数问题分析
引言: 在Python中可以缺省给方法制定缺省值,但是这个缺省值在某些情况下确是和我们预期不太一致的-... 这个诡异的问题,曾经困然了我几天时间,才最终定位出来-.. 测试代码 from datet ...
- Win10安装Ubuntu16.04 双系统
Tips: 双系统Ubuntu可以使用机器的GPU硬件,虚拟机不可以 压缩卷留的空间尽量大一点,不要相信50G够用 选UEFI,并关闭 Secure Boot,不要选 Legacy 选UEFI,就要在 ...
- learn go anonymous function
package main // 参考文档: // https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/06.8.md im ...
- 程序设计入门-C语言基础知识-翁恺-第五周:函数-详细笔记(五)
目录 第五周:函数 5.1 函数 5-2 使用函数 5.3 课后习题 第五周:函数 5.1 函数 什么是函数? 函数是一块代码,接受零个或多个参数,做一件事情,并返回零个或一个值. 函数声明语法 返回 ...
- Struts标签库详解,非常好的Struts标签详解
Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签: 用来创建能够和Struts 框架和其他相应的HTML 标签交互的H ...
- C++中atof函数的实现和atoi的实现
在C++中有两个系统函数可以实现字符串转浮点型和字符串转整形,下面实现一下这两个函数. #include <iostream> #include <string> using ...