论文部分内容阅读
摘要:本文介绍了如何采用VLAN(Virtual Local Area Network)技术实现EoPDH(Ethernet over PDH)网桥芯片中的业务汇聚功能以及多路以太网共享一个信道传输的功能。讨论了VLAN技术的工作原理,提出了实现方案,并介绍了主要模块的电路设计,通过FPGA验证了设计的可行性。
关键词:以太网;E1;VLAN;PDH;EopDH
VLAN介绍
IEEE于1999年颁布了802,1Q标准,即VLAN协议,规定了VLAN的国际标准实现,从而使得不同厂商之间的VLAN互通成为可能。标准以太网帧和VLAN帧结构如l所示。
与标准的以太网帧头相比,VLAN报文格式在源地址后增加了一个4字节的VLAN标签。
TPID(Tag Protocol Identifier):16比特,是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID取固定值0x8100。
Priority:3比特,它指明了该帧的优先级。一共有8种优先级,0~7。
CFI(Canonical Format Indicator):1比特,当它为O时表示是规范格式,为1时表示是非规范格式帧。
VLAN Identifier(VLAN IDl:12比特,用来表示VLAN的ID标识,一共可有4096个。每个支持802.1Q协议的交换机发出来的数据包中都会包含这个字段,用来指明这个包属于哪一个VLAN。
EOPDH网桥芯片构介绍
本EopDH网桥芯片是为实现多通道以太网映射到PDH而设计的EOPDH汇聚式网桥芯片。它提供4个以太网接口,每路以太网可通过VLAN划分到片内63路完全隔离的VCG通道,每个通道经GFP封装后又可以根据带宽需求映射到1~16路E1。以该芯片为核心,配以少量的外围元器件即可实现具有汇聚功能的多路以太网到多略E1转换器。芯片的内部结构设计如图1所示。
从图1中可知,VLAN的收发处理在以太网接口模块和GFP封装/解封装模块之间完成。在发送方向,从MAC口来的以太网帧经过以太网接收器后提取出相关的VLAN信息及并将以太网净荷数据合并成字节数据流送给VLAN发送模块。VLAN发送模块根据相关要求插入VLAN标签或删除VLAN标签,将以太网数据分发到63个VCG后进行GFP封装。之后,将VCG数据送给VCAT/LCAS协议发送模块,此模块根据ITU-TG.7042-Y1305链路容量自动调整(LCAS)协议和ITU-TG.7043[3]准同步数字体系虚级联(VCAT)协议处理数据后再进行El成帧。最后发送到E1线路上去。在接收方向,从El线路来的数据经El解帧后送给VCAT/LCAS模块,恢复出的VCG数据经过GFP解帧后到VLAN接收模块处理。此模块根据接收VLAN相关要求插入VLAN标签或删除VLAN标签,将恢复出的以太网数据通过以太网发送器发到以太网上。
VLAN模块设计
VLAN模块的设计分为收发两部分。收发功能独立、可分别进行寄存器配置。其发送部分的电路框图如图2所示。
在发送方向上,设计一个发送VLAN表格,如表1所示,所有的发送VLAN操作都以这个表为核心进行。发送VLAN表格包含63个VLAN的匹配信息以及VLAN的删除、插入控制信息和VCG的分配信息。因为要支持4个以太网口到63个VLAN的交叉处理,需要一个专门的调度模块来调度VLAN表格,协调各个操作。使用以太网端口的PORTID和从以太网帧数据帧提取出VLAN信息来索引此表格,如7VLAN表格中的VLAN配置和以太网中提取的VLAN TAG一致,则说明此以太网帧的VLAN匹配。不匹配的帧将被
丢弃,对于匹配的帧进一步处理,如果配置为VLAN删除,则由发送VLAN删除电路将以太网帧中的VLAN TAG删除:如果配置为添加VLAN,则由发送VLAN添加电路根据寄存器配置在数据帧中原VLANTAG前或原VLAN TAG后再插入一级VLAN,形成二级VLAN。经过VLAN处理的数据帧按配置的VCG映射关系放到外部SDRAM中缓存。因为以太网数据的突发性所以需要为以太网来的数据帧提供一个海量存储器。以防止以太网数据的丢失。外部的SDRAM就充当了这个海量存储器的作用。
在发送方向上,如果要实现多路以太网数据共享一个信道传输,需要将上述表格中的VCG assign分配成相同的值即可。这样经过VLAN处理后的以太网帧就会被映射到同一个VCG组中,通过GFP封装后从E1发出。
VLAN接收部分电路结构和发送部分类似。在接收方向上,也需要设计一个接收VLAN表格,如表2所示。接收所有操作围绕接收VLAN表格进行,这个表格包含63个VCG的VLAN配置信息及是否要进行VLAN删除、插入的控制信息和MAC端口对应信息。VCG数据经过GFP解封装后从数据中提取出VLAN信息,使用此VLAN信息索引接O&VLAN表格。如果表格中的VLAN配置和提取出的VLAN信息一致,则说明VLAN匹配。不匹配的帧被丢弃,匹配的帧进一步处理,如果配置为删除,则将收到包中的VLAN TAG删除:如果配置为添加则在原包中的VLAN TAG前或后插入新的VLAN TAG,形成二级VLAN,和发送方向完全类似。经过VLAN处理的包按MAC映射关系存入外部的SDRAM缓存。等到SDRAM中有完整的包后,以太网发送器将数据帧取出通过MAC接口发送。
在接收方向上,如果要实现多业务流的汇聚功能,需要将表格中需要汇聚业务流VLAN对应的MACport_assign配置成相同。这样从El来的多个VCG业务流就可以汇聚到一个MAC口上发送。
电路设计、仿真及FPGA实现
本设计模块作为BoPDH网桥芯片的一部分,根据模块功能定义进行了功能细分。采用高级描述语言VerilogL41来进行代码设计,输入工具采用图形化设计工具Summit。仿真工具采用NC-Verilog,综合布线软件采用的是Xilinx公司提供的Xilinx ISEDesign Sure 12.4。
系统仿真时,编写以太网发生器模型,产生连续带VLAN的以太网帧送给MAc接口,经过芯片发送电路处理后从El侧将信号环回。环回的数据经接收电路处理后从以太网口恢复出以太网帧。发送方向插入VLAN后形成两级VLAN的仿真波形截图如图3所示。数据从E1接收回来从两级VLAN中删除一级VLAN的仿真波形截图如图4所示。
从图3可以看到,以太网帧原数据帧中的VLAN信息为0x8i000000,插入的VLAN也为0x81000000。在具体应用中这个插入的VLAN信息可以根据具体应用由寄存器来设置。
从图4可以看到,经过发送VLAN电路插入形成的两级VLAN被删除掉了一级,只剩下了原测试激励中的VLAN标签。从仿真结果来看,VLAN模块完成了所设计的功能。
最后,将整个芯片在xiIinxSpartan-6的XA6SLX45-3 FGG484上进行FPGA验证。经过FPGA验证、实现了802,1Q标准要求的VLAN功能,电路可工作在100Mhz。
关键词:以太网;E1;VLAN;PDH;EopDH
VLAN介绍
IEEE于1999年颁布了802,1Q标准,即VLAN协议,规定了VLAN的国际标准实现,从而使得不同厂商之间的VLAN互通成为可能。标准以太网帧和VLAN帧结构如l所示。
与标准的以太网帧头相比,VLAN报文格式在源地址后增加了一个4字节的VLAN标签。
TPID(Tag Protocol Identifier):16比特,是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID取固定值0x8100。
Priority:3比特,它指明了该帧的优先级。一共有8种优先级,0~7。
CFI(Canonical Format Indicator):1比特,当它为O时表示是规范格式,为1时表示是非规范格式帧。
VLAN Identifier(VLAN IDl:12比特,用来表示VLAN的ID标识,一共可有4096个。每个支持802.1Q协议的交换机发出来的数据包中都会包含这个字段,用来指明这个包属于哪一个VLAN。
EOPDH网桥芯片构介绍
本EopDH网桥芯片是为实现多通道以太网映射到PDH而设计的EOPDH汇聚式网桥芯片。它提供4个以太网接口,每路以太网可通过VLAN划分到片内63路完全隔离的VCG通道,每个通道经GFP封装后又可以根据带宽需求映射到1~16路E1。以该芯片为核心,配以少量的外围元器件即可实现具有汇聚功能的多路以太网到多略E1转换器。芯片的内部结构设计如图1所示。
从图1中可知,VLAN的收发处理在以太网接口模块和GFP封装/解封装模块之间完成。在发送方向,从MAC口来的以太网帧经过以太网接收器后提取出相关的VLAN信息及并将以太网净荷数据合并成字节数据流送给VLAN发送模块。VLAN发送模块根据相关要求插入VLAN标签或删除VLAN标签,将以太网数据分发到63个VCG后进行GFP封装。之后,将VCG数据送给VCAT/LCAS协议发送模块,此模块根据ITU-TG.7042-Y1305链路容量自动调整(LCAS)协议和ITU-TG.7043[3]准同步数字体系虚级联(VCAT)协议处理数据后再进行El成帧。最后发送到E1线路上去。在接收方向,从El线路来的数据经El解帧后送给VCAT/LCAS模块,恢复出的VCG数据经过GFP解帧后到VLAN接收模块处理。此模块根据接收VLAN相关要求插入VLAN标签或删除VLAN标签,将恢复出的以太网数据通过以太网发送器发到以太网上。
VLAN模块设计
VLAN模块的设计分为收发两部分。收发功能独立、可分别进行寄存器配置。其发送部分的电路框图如图2所示。
在发送方向上,设计一个发送VLAN表格,如表1所示,所有的发送VLAN操作都以这个表为核心进行。发送VLAN表格包含63个VLAN的匹配信息以及VLAN的删除、插入控制信息和VCG的分配信息。因为要支持4个以太网口到63个VLAN的交叉处理,需要一个专门的调度模块来调度VLAN表格,协调各个操作。使用以太网端口的PORTID和从以太网帧数据帧提取出VLAN信息来索引此表格,如7VLAN表格中的VLAN配置和以太网中提取的VLAN TAG一致,则说明此以太网帧的VLAN匹配。不匹配的帧将被
丢弃,对于匹配的帧进一步处理,如果配置为VLAN删除,则由发送VLAN删除电路将以太网帧中的VLAN TAG删除:如果配置为添加VLAN,则由发送VLAN添加电路根据寄存器配置在数据帧中原VLANTAG前或原VLAN TAG后再插入一级VLAN,形成二级VLAN。经过VLAN处理的数据帧按配置的VCG映射关系放到外部SDRAM中缓存。因为以太网数据的突发性所以需要为以太网来的数据帧提供一个海量存储器。以防止以太网数据的丢失。外部的SDRAM就充当了这个海量存储器的作用。
在发送方向上,如果要实现多路以太网数据共享一个信道传输,需要将上述表格中的VCG assign分配成相同的值即可。这样经过VLAN处理后的以太网帧就会被映射到同一个VCG组中,通过GFP封装后从E1发出。
VLAN接收部分电路结构和发送部分类似。在接收方向上,也需要设计一个接收VLAN表格,如表2所示。接收所有操作围绕接收VLAN表格进行,这个表格包含63个VCG的VLAN配置信息及是否要进行VLAN删除、插入的控制信息和MAC端口对应信息。VCG数据经过GFP解封装后从数据中提取出VLAN信息,使用此VLAN信息索引接O&VLAN表格。如果表格中的VLAN配置和提取出的VLAN信息一致,则说明VLAN匹配。不匹配的帧被丢弃,匹配的帧进一步处理,如果配置为删除,则将收到包中的VLAN TAG删除:如果配置为添加则在原包中的VLAN TAG前或后插入新的VLAN TAG,形成二级VLAN,和发送方向完全类似。经过VLAN处理的包按MAC映射关系存入外部的SDRAM缓存。等到SDRAM中有完整的包后,以太网发送器将数据帧取出通过MAC接口发送。
在接收方向上,如果要实现多业务流的汇聚功能,需要将表格中需要汇聚业务流VLAN对应的MACport_assign配置成相同。这样从El来的多个VCG业务流就可以汇聚到一个MAC口上发送。
电路设计、仿真及FPGA实现
本设计模块作为BoPDH网桥芯片的一部分,根据模块功能定义进行了功能细分。采用高级描述语言VerilogL41来进行代码设计,输入工具采用图形化设计工具Summit。仿真工具采用NC-Verilog,综合布线软件采用的是Xilinx公司提供的Xilinx ISEDesign Sure 12.4。
系统仿真时,编写以太网发生器模型,产生连续带VLAN的以太网帧送给MAc接口,经过芯片发送电路处理后从El侧将信号环回。环回的数据经接收电路处理后从以太网口恢复出以太网帧。发送方向插入VLAN后形成两级VLAN的仿真波形截图如图3所示。数据从E1接收回来从两级VLAN中删除一级VLAN的仿真波形截图如图4所示。
从图3可以看到,以太网帧原数据帧中的VLAN信息为0x8i000000,插入的VLAN也为0x81000000。在具体应用中这个插入的VLAN信息可以根据具体应用由寄存器来设置。
从图4可以看到,经过发送VLAN电路插入形成的两级VLAN被删除掉了一级,只剩下了原测试激励中的VLAN标签。从仿真结果来看,VLAN模块完成了所设计的功能。
最后,将整个芯片在xiIinxSpartan-6的XA6SLX45-3 FGG484上进行FPGA验证。经过FPGA验证、实现了802,1Q标准要求的VLAN功能,电路可工作在100Mhz。