马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
(以下是对OIF2.1标准进行详细解析。此部分为介绍部分,具体详细解析请关注公众号:用Fpga或Python做点事儿
公众号发布各种接口协议解析和FPGA教程)
FlexE(FlexibleEthernet),灵活以太网,此协议提供一种支持多种以太网MAC速率的机制,MAC速率可以匹配或者不匹配对应PHY的速率。通过Bonding机制可以实现MAC速率大于PHY速率的匹配,通过sub_rate或者channelization机制可以实现MAC速率小于PHY速率的匹配。此协议可以看作是Multi-link GearBox实现协议的概括,去除了对Bonding PHY个数的限制(MLG2.0规定绑定1个或者2个100G PHYs)和对Client速率的约束(MLG协议只支持10G和40G速率的Client)。FlexE 2.1支持FlexE2.0提出的m*50G PHY的FlexE Group。 1.1.需求 注意,协议中的PHY包含了部分PCS的功能: Scramble/De-Scramble,AM , FEC等。 FlexE具备以下特性: 0. ETH PHY的绑定,比如,一个200G的MAC承载在2个100G的PHY上。这里绑定了两个100G的PHY。1. Sub-Rate,比如,一个50G的MAC承载在一个100G的PHY上。2. 在一个PHY或者一组PHY之间的channelization,比如,一个150G的MAC和两个25G的MAC承载在2个绑定的100G PHY上。150GMAC 带宽中的100G承载在2个PHY中的其中一个PHY,另外50G和其他两个25G承载在另外一个100GPHY上,对于第二个PHY,同时承载了3个通道的流量。以上三种应用的混合应用也是存在的,打个比方,一个250G MAC承载在3个100G的PHY组上,这里应用到了bond和sub-rate。 FlexE 应用结构如图所示: 图片见附件 FlexE Group指的是若干个(1~m)绑定PHY的组合。协议规定组成Group的PHY类型有50G/100G/200G/400G。 注意,一个组里的所有PHY必须共用一个时钟,一个组里的PHY的类型必须一致。共用一个时钟是因为如果一个组的PHY不共用一个时钟就会造成不同数据通路上的数据不能正确对齐。组里PHY类型必须一致的原因:AM的插入规则是其中之一,100G PCS插入周期是16K,其余三种速率是20K;其次,不同速率的PCS层数据通路个数也不一样。 组里边任何一个PHY上传送的信息结构称为一个FlexE实例(instance)。协议规定的实例只有50G 和 100G两种。 1~n个FlexE实例承载在由1~m个PHY组成的FlexE 组上。这句话的意思是实例和PHY的个数可以不对等。 50G 的实例只能承载在50G的PHY上,100G的PHY只能携带100G的实例,200G的PHY传输2个100G的实例,400G的PHY传输4个100G的实例。 FlexE实例是一个信息单元,一个实例是50G或100G的容量,能够承载FlexE客户端数据及其相关的开销。FlexE Client是一个基于MAC数据速率的以太网流,它可能对应也可能不对应于任何以太网PHY的速率。协议规定FlexE Group支持的FlexE client的速率为10Gbps,40Gbps或者m*25Gbs,Group可以同时支持者这三个速率,也可以只支持这三种中的任意一种。 这里说明一下,50G和100G实例的处理逻辑很相似,所以后续内容提到的实例不会标明具体类型。 FlexE Shim,俗称FlexE 垫层,负责将Client流量按Calendar配置分发到不同的实例上,同时,将不同实例上来的流量重组成对应Client上的数据流。注意,垫层上传输的数据单元为66比特的数据块。
|