MPCP协议详解

1      MPCP帧结构

MPCP定义了5种消息,称之为MPCP DATA UNITs,

GATEREPORT、REGISTER_RQ、REGISTER、REGISTER_ACK,他们用于OLT和ONU之间的信息交换。所有的MPCPDU为64字节的MAC控制帧,包括以下域:

1、 DA(目的地址),6个字节域,所有的MPCPDU都使用一个共同的多播MAC目的地址,其值为:01-80-C2-00-00-01,但是REGISTER报文除外,其使用ONU的实际MAC地址。


2、 SA(源地址),在OLT中,对应一个GMII接口有多个MAC实例,因此不同的MAC发出的数据都必须携带其对应的SA。

3、 类型域值为8808

4、 Opcode区分MAC控制帧类型。0001为PAUSE帧,0002为GATE帧,0003为REPORT帧,0004为REGISTER_REQ帧,0005为REGISTER帧,0006为REGISTER_ACK帧。

5、 TIMESTAMP,时标;用于同步OLTONUMPCP CLOCK,其参考点为DA的首字节

6、 Opcode-specific field:用于传输特定的MPCP功能,不用的时候置0

7、 FCS,CRC32

1.1 REPORT帧

REPORT帧是ONU用来向OLT上报本地队列状态的。

1.1.1           Queue #n report

这个域的内容表示的不是实际的队列字节长度,其为传送这些字节需要的时间,这个时间还要考虑上前导码、帧间隔、FEC检验域等时间

1.1.2           Report bitmap

Queue有效指示,相应位为1则表示QUEUE域值有效,否则无效。总共对应8个队列。

1.1.3           Number of Queue Sets

由于OLT分配给ONU的时隙不会正好等于ONU中的数据队列的发送时间,因此在时隙边界有可能会浪费部分的带宽(不能传送被切断的以太网帧),所以802.3ah工作组进入了多个queue sets,每个queue set都表示从队列开始的队列指示,但是分别指示了不同的长度,如果OLT分配的时隙中无法发送整个队列的话,则可以选择其中一种queue set来作为给ONU分配时隙的依据。简单而言,就是ONU提供了本地队列长度的多个门限截至位置,这些位置可以给OLT以更加灵活有效的带宽分配依据。

1.2 GATE帧

1.2.1           Number of Grants/flags

Number ofGrants/Flag域中的3比特(比特2~比特0)表示此GATE中携带的窗口授权个数,最多不能超过4个,其值从0变化到4,当为0时表示不进行窗口授权,仅表示一种链接机制,为1时表示携带1个窗口授权参数,为4表示携带4个窗口授权参数。一个常规GATE帧的发送对象为固定的,由LLID指定,最多可分配4个时隙(窗口)。

比特3表示此GATE消息是discovery GATE 还是 normal GATE,为0表示normal GATE。

比特7~比特4表示在对应的授权窗口内需要ONU回告REPORT消息(强制回告)。比特4对应第1个授权窗口,比特7对应第4个授权窗口。一般来讲,如果OLT强制要求ONU回告REPORT消息的话,必须分配一个比原有授权窗口略大的一个窗口参数以适合REPORT消息的传送,如果OLT还是按照原来的参数进行分配的话,ONU的REPORT消息将会抢占正常数据的发送位置,由此可能导致带宽存在浪费的现象。当然,ONU也可自主发出REPORT消息,此时的REPORT消息应该是计算在队列长度中的。

 

1.2.2           Grant #n start time

 

StartTime是以TQ为单位的,32位的计数器,ONU将在此StartTime指定的时刻开启激光器。不过在discovery GATE中指定的startTime仅仅是可以打开激光器的参数值,因为ONU将会在此值上延时一个随机时间后才能打开激光器

1.2.3           Grant #n Length\

在Discovery GATE中的Grant Length用来给ONU计算随机时间范围,在ONU中是根据grantLength减去REGISTER_REQ的传送时间作为随机时间范围的。

1.2.4           Sync time

这个仅在discovery GATE中设置。ONU在指定的TAGCTCDR期间发送IDLE码型。

 

OLT最多一次4个授权窗口,ONU如何知道此授权窗口是给自己的,通过前导码中的逻辑链路标识LLID

1.3 REGISTER_REQ帧

OLT收到REGISTER_REQ帧后有两个重要信息要处理:计算RTT与学习ONU的MAC地址。

1.3.1           FLAGs

Flag=1表示注册请求,Flag=3表示撤销注册请求。其他值均为保留值,OLT接收到保留值是不处理的。

1.3.2           Pending Grants

ONU接收到GATE消息后将把startTime等参数存贮起来等待本地MPCP时钟到点时再根据存贮起来的参数进行数据发送,ONU中会有一个缓存,此pending Grants就是指示这个缓存中剩余空间的,其目的是告诉OLT还能缓存多少个授权窗口参数信息,如果超过则会被ONU丢弃。

1.4 REGISTER帧

REGISTER消息用来为通过注册验证的ONU分配LLID,由于此时链接尚未建立,因此REGISTER消息发送时采用了广播的LLID,但是其MAC地址却是学习到的对应ONU的MAC地址。(此时有其他用户根据广播LLID可以获取MAC数据帧的话就可以把其MAC设置为混杂模式以便监听其他ONU的下行数据了)。由于是MPCP的控制帧,所以大家都可以收到此帧,别人就可以侦听到相应LLID的对应MAC地址。

 

REGISTER消息还能用来撤销注册,OLT发送REGISTER消息给一个已经注册上的ONU时,表示要求其重新注册或者撤销其注册资格。此时OLT发出的REGISTER消息采用唯一的LLID以及多播MAC地址01-80-C2-00-00-01。

1.4.1           Assigned Port

携带唯一的LLID信息。一个PON 调度处理引擎系统中的LLID都是唯一的,也就是说同一个处理平台上的不同PON光口分配的LLID不能有冲突。但是不同的处理系统中(比如两块PON接口板)的LLID可以成各自独立分配系统。

1.4.2           FLAGs

有四种情况,除去这四种情况外的REGISTER报文在ONU处是不处理的。

1、 对已经注册的ONU要求其重新注册;

2、 撤销注册,对已经注册的ONU撤销其注册状态,撤销后ONU将加入未初始化的ONU一类;

3、 注册成功响应,表示ONU注册信息验证通过;

4、 注册未成功响应,表示ONU注册信息验证没有通过;

1.4.3           Sync Time

同REGISTER_REQ中的sync time类似,但是数值可以不同,为经过调整的数值。

1.4.4           Echoed pending grant

表示OLT已经知晓ONU中的缓存空间

1.5 REGISTER_ACK帧

Flags域表示ONU是否响应注册;

Echoed assignedport为REGISTER中分配指定的port的一份拷贝。Synctime也是REGISTER的数据拷贝。

2      Opcode-independent process

MAC控制子层中的处理操作分为两种:Opcode无关的parser控制处理、发送复用处理,以及与Opcode相关的PAUSE帧处理、discovery处理、GATE处理、REPORT处理。其实parser与复用模块也是有与opcode相关的部分。

2.1 Control parser

Control parser负责把接收到的帧进行分类,分发到不同的处理模块进行处理,比如数据帧去业务处理,GATE帧去GATE处理模块等等。OLTONU中的controlparser模块基本相同,唯一的区别在于时标处理方式。

其中guardThresholdOLT=12 TQ,guardThresholdONU=8 TQ

2.2 ONU Control Multiplexer

其中的checksize state处如果发现待传送帧的TQ大于指配的时间窗时,此数据帧(控制帧)必须停止发送,也就是仍然存放在缓存队列中的首地址位置。

2.3 Multi-point transmission control

 

2.4 OLT Control Multiplexer

3      Gating process

Gate process包括OLT产生GATE信息以及ONU接收和处理GATE信息的过程。在OLT侧为Gategeneration process,在ONU侧为Gate reception process(parsing and verifying接收的GATE帧)Gate activation process(发送timing控制)。

3.1 Gate generation at OLT

Gate generation由DBA agent驱动,它决定给分配给ONUstartTimelength参数值,每接收到DBA agent来的请求,Gate generation process都会产生一个GATE信息帧发送给ONU。

Gate信息还能用来实现keep-alive机制,其可以告知ONU,OLT虽然没有下发GATE时间信息,但是OLT中对应的逻辑运转还是正常的。这种情况发生在DBA没有按时50ms)向gate generation process发起请求,那么gate generation process将自动产生GATE信息(grant number=0)给ONU以保持链接。

3.2 Gate reception at ONU

ONU如果1s之内(MPCP clock)没有收到GATE信息,则ONU将撤销注册。

3.3 Gate activation at ONU


802.3ah协议规定,ONU撤销注册时,当前正在发送的帧必须传送完;另有一种意见是立刻中止传送。

4      Reporting process

4.1 Report generation at ONU

Report消息由DBA驱动,当DBA在设定的时间内无发送report消息的请求时,ONU需要自动产生一个空的report消息,以此来告知OLT一个结果:ONU在运转

4.2 Report reception at OLT

1s之内如果收不到ONU的report消息,则认为此ONU下线,必须在本地数据库中撤销其注册登记资料。

5      Discovery process

自动发现机制用来检测新上线的ONU,学习其RTT时间以及MAC地址。这个发现过程分为四个阶段:discovery gategeneration process、Request reception process、Register generation process、final registration process。这四个阶段都是由Discovery Agent来驱动的。

由于OLT的周期性广播discover,未注册的ONU发现后,在允许时间内发送register_req帧。当OLT得到MAC,ONU得到LLID后,至此他们之间的连接注册建立。此后,他们之间的通信为单一链路通信(通过LLID识别)。

5.1 Discovery gate generation process

 

MACR-----MA_CONTROL.request

MACI------MA_CONTROL.indication

UCT-----uncondition

 

5.2 Request reception at OLT

OLT收到REGISTER_REQ帧后有两个重要信息要处理:计算RTT学习ONUMAC地址

5.3 Register generation at OLT

5.4 Final Registration at OLT

5.5 Discovery process at ONU

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值